diff options
Diffstat (limited to 'src')
213 files changed, 94874 insertions, 40530 deletions
diff --git a/src/alloc.c b/src/alloc.c new file mode 100644 index 000000000..2944bc1c6 --- /dev/null +++ b/src/alloc.c @@ -0,0 +1,210 @@ +#include "global.h" + +static void *sHeapStart; +static u32 sHeapSize; +static u32 malloc_c_unused_0300000c; // needed to align dma3_manager.o(.bss) + +#define MALLOC_SYSTEM_ID 0xA3A3 + +struct MemBlock { + // Whether this block is currently allocated. + bool16 flag; + + // Magic number used for error checking. Should equal MALLOC_SYSTEM_ID. + u16 magic; + + // Size of the block (not including this header struct). + u32 size; + + // Previous block pointer. Equals sHeapStart if this is the first block. + struct MemBlock *prev; + + // Next block pointer. Equals sHeapStart if this is the last block. + struct MemBlock *next; + + // Data in the memory block. (Arrays of length 0 are a GNU extension.) + u8 data[0]; +}; + +void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size) +{ + struct MemBlock *header = (struct MemBlock *)block; + + header->flag = FALSE; + header->magic = MALLOC_SYSTEM_ID; + header->size = size; + header->prev = prev; + header->next = next; +} + +void PutFirstMemBlockHeader(void *block, u32 size) +{ + PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - sizeof(struct MemBlock)); +} + +void *AllocInternal(void *heapStart, u32 size) +{ + struct MemBlock *pos = (struct MemBlock *)heapStart; + struct MemBlock *head = pos; + struct MemBlock *splitBlock; + u32 foundBlockSize; + + // Alignment + if (size & 3) + size = 4 * ((size / 4) + 1); + + for (;;) { + // Loop through the blocks looking for unused block that's big enough. + + if (!pos->flag) { + foundBlockSize = pos->size; + + if (foundBlockSize >= size) { + if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) { + // The block isn't much bigger than the requested size, + // so just use it. + pos->flag = TRUE; + } else { + // The block is significantly bigger than the requested + // size, so split the rest into a separate block. + foundBlockSize -= sizeof(struct MemBlock); + foundBlockSize -= size; + + splitBlock = (struct MemBlock *)(pos->data + size); + + pos->flag = TRUE; + pos->size = size; + + PutMemBlockHeader(splitBlock, pos, pos->next, foundBlockSize); + + pos->next = splitBlock; + + if (splitBlock->next != head) + splitBlock->next->prev = splitBlock; + } + + return pos->data; + } + } + + if (pos->next == head) + return NULL; + + pos = pos->next; + } +} + +void FreeInternal(void *heapStart, void *pointer) +{ + if (pointer) { + struct MemBlock *head = (struct MemBlock *)heapStart; + struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock)); + block->flag = FALSE; + + // If the freed block isn't the last one, merge with the next block + // if it's not in use. + if (block->next != head) { + if (!block->next->flag) { + block->size += sizeof(struct MemBlock) + block->next->size; + block->next->magic = 0; + block->next = block->next->next; + if (block->next != head) + block->next->prev = block; + } + } + + // If the freed block isn't the first one, merge with the previous block + // if it's not in use. + if (block != head) { + if (!block->prev->flag) { + block->prev->next = block->next; + + if (block->next != head) + block->next->prev = block->prev; + + block->magic = 0; + block->prev->size += sizeof(struct MemBlock) + block->size; + } + } + } +} + +void *AllocZeroedInternal(void *heapStart, u32 size) +{ + void *mem = AllocInternal(heapStart, size); + + if (mem != NULL) { + if (size & 3) + size = 4 * ((size / 4) + 1); + + CpuFill32(0, mem, size); + } + + return mem; +} + +bool32 CheckMemBlockInternal(void *heapStart, void *pointer) +{ + struct MemBlock *head = (struct MemBlock *)heapStart; + struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock)); + + if (block->magic != MALLOC_SYSTEM_ID) + return FALSE; + + if (block->next->magic != MALLOC_SYSTEM_ID) + return FALSE; + + if (block->next != head && block->next->prev != block) + return FALSE; + + if (block->prev->magic != MALLOC_SYSTEM_ID) + return FALSE; + + if (block->prev != head && block->prev->next != block) + return FALSE; + + if (block->next != head && block->next != (struct MemBlock *)(block->data + block->size)) + return FALSE; + + return TRUE; +} + +void InitHeap(void *heapStart, u32 heapSize) +{ + sHeapStart = heapStart; + sHeapSize = heapSize; + PutFirstMemBlockHeader(heapStart, heapSize); +} + +void *Alloc(u32 size) +{ + AllocInternal(sHeapStart, size); +} + +void *AllocZeroed(u32 size) +{ + AllocZeroedInternal(sHeapStart, size); +} + +void Free(void *pointer) +{ + FreeInternal(sHeapStart, pointer); +} + +bool32 CheckMemBlock(void *pointer) +{ + return CheckMemBlockInternal(sHeapStart, pointer); +} + +bool32 CheckHeap() +{ + struct MemBlock *pos = (struct MemBlock *)sHeapStart; + + do { + if (!CheckMemBlockInternal(sHeapStart, pos->data)) + return FALSE; + pos = pos->next; + } while (pos != (struct MemBlock *)sHeapStart); + + return TRUE; +} diff --git a/src/apprentice.c b/src/apprentice.c index 499f85094..ec8fea27b 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -9,7 +9,7 @@ #include "item.h" #include "item_menu.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "new_game.h" #include "party_menu.h" @@ -2047,172 +2047,172 @@ NAKED static void sub_81A1224(void) { asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - ldr r1, =gSaveBlock2Ptr\n\ - ldr r3, [r1]\n\ - adds r0, r3, 0\n\ - adds r0, 0xB1\n\ - ldrb r0, [r0]\n\ - lsls r0, 26\n\ - lsrs r0, 28\n\ - adds r7, r1, 0\n\ - cmp r0, 0x2\n\ - bhi _081A1242\n\ - b _081A1362\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + ldr r1, =gSaveBlock2Ptr\n\ + ldr r3, [r1]\n\ + adds r0, r3, 0\n\ + adds r0, 0xB1\n\ + ldrb r0, [r0]\n\ + lsls r0, 26\n\ + lsrs r0, 28\n\ + adds r7, r1, 0\n\ + cmp r0, 0x2\n\ + bhi _081A1242\n\ + b _081A1362\n\ _081A1242:\n\ - movs r5, 0\n\ - movs r2, 0\n\ - adds r0, r3, 0\n\ - adds r0, 0xB8\n\ - ldrb r0, [r0]\n\ - lsls r0, 30\n\ - ldr r1, =gSpecialVar_0x8005\n\ - mov r12, r1\n\ - ldr r1, =gSpecialVar_Result\n\ - mov r8, r1\n\ - cmp r0, 0\n\ - beq _081A127C\n\ - adds r3, r7, 0\n\ + movs r5, 0\n\ + movs r2, 0\n\ + adds r0, r3, 0\n\ + adds r0, 0xB8\n\ + ldrb r0, [r0]\n\ + lsls r0, 30\n\ + ldr r1, =gSpecialVar_0x8005\n\ + mov r12, r1\n\ + ldr r1, =gSpecialVar_Result\n\ + mov r8, r1\n\ + cmp r0, 0\n\ + beq _081A127C\n\ + adds r3, r7, 0\n\ _081A125C:\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x8\n\ - bhi _081A127C\n\ - ldr r0, [r3]\n\ - lsls r1, r2, 2\n\ - adds r0, r1\n\ - adds r0, 0xB8\n\ - ldrb r0, [r0]\n\ - lsls r0, 30\n\ - cmp r0, 0\n\ - bne _081A125C\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + cmp r2, 0x8\n\ + bhi _081A127C\n\ + ldr r0, [r3]\n\ + lsls r1, r2, 2\n\ + adds r0, r1\n\ + adds r0, 0xB8\n\ + ldrb r0, [r0]\n\ + lsls r0, 30\n\ + cmp r0, 0\n\ + bne _081A125C\n\ _081A127C:\n\ - movs r4, 0\n\ - cmp r4, r5\n\ - bcs _081A1322\n\ - ldr r0, [r7]\n\ - adds r0, 0xB1\n\ - ldrb r0, [r0]\n\ - lsls r0, 26\n\ - lsrs r0, 28\n\ - subs r0, 0x3\n\ - cmp r4, r0\n\ - bge _081A1322\n\ - adds r6, r7, 0\n\ - mov r9, r4\n\ + movs r4, 0\n\ + cmp r4, r5\n\ + bcs _081A1322\n\ + ldr r0, [r7]\n\ + adds r0, 0xB1\n\ + ldrb r0, [r0]\n\ + lsls r0, 26\n\ + lsrs r0, 28\n\ + subs r0, 0x3\n\ + cmp r4, r0\n\ + bge _081A1322\n\ + adds r6, r7, 0\n\ + mov r9, r4\n\ _081A1296:\n\ - ldr r3, [r6]\n\ - lsls r0, r4, 2\n\ - adds r2, r3, r0\n\ - adds r0, r2, 0\n\ - adds r0, 0xB8\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 30\n\ - lsrs r0, 30\n\ - cmp r0, 0x1\n\ - bne _081A1308\n\ - lsrs r0, r1, 6\n\ - cmp r0, 0\n\ - beq _081A1308\n\ - adds r0, r2, 0\n\ - adds r0, 0xBA\n\ - ldrh r0, [r0]\n\ - mov r2, r12\n\ - ldrh r2, [r2]\n\ - cmp r0, r2\n\ - bne _081A1308\n\ - adds r0, r3, 0\n\ - adds r0, 0xB1\n\ - ldrb r0, [r0]\n\ - lsls r0, 26\n\ - lsrs r0, 28\n\ - subs r0, 0x3\n\ - lsls r0, 2\n\ - adds r0, r3, r0\n\ - adds r0, 0xB8\n\ - ldrb r2, [r0]\n\ - movs r1, 0x3F\n\ - ands r1, r2\n\ - strb r1, [r0]\n\ - ldr r1, [r6]\n\ - adds r0, r1, 0\n\ - adds r0, 0xB1\n\ - ldrb r0, [r0]\n\ - lsls r0, 26\n\ - lsrs r0, 28\n\ - subs r0, 0x3\n\ - lsls r0, 2\n\ - adds r1, r0\n\ - mov r2, r12\n\ - ldrh r0, [r2]\n\ - adds r1, 0xBA\n\ - strh r0, [r1]\n\ - mov r1, r9\n\ - mov r0, r8\n\ - strh r1, [r0]\n\ - b _081A1362\n\ - .pool\n\ + ldr r3, [r6]\n\ + lsls r0, r4, 2\n\ + adds r2, r3, r0\n\ + adds r0, r2, 0\n\ + adds r0, 0xB8\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 30\n\ + lsrs r0, 30\n\ + cmp r0, 0x1\n\ + bne _081A1308\n\ + lsrs r0, r1, 6\n\ + cmp r0, 0\n\ + beq _081A1308\n\ + adds r0, r2, 0\n\ + adds r0, 0xBA\n\ + ldrh r0, [r0]\n\ + mov r2, r12\n\ + ldrh r2, [r2]\n\ + cmp r0, r2\n\ + bne _081A1308\n\ + adds r0, r3, 0\n\ + adds r0, 0xB1\n\ + ldrb r0, [r0]\n\ + lsls r0, 26\n\ + lsrs r0, 28\n\ + subs r0, 0x3\n\ + lsls r0, 2\n\ + adds r0, r3, r0\n\ + adds r0, 0xB8\n\ + ldrb r2, [r0]\n\ + movs r1, 0x3F\n\ + ands r1, r2\n\ + strb r1, [r0]\n\ + ldr r1, [r6]\n\ + adds r0, r1, 0\n\ + adds r0, 0xB1\n\ + ldrb r0, [r0]\n\ + lsls r0, 26\n\ + lsrs r0, 28\n\ + subs r0, 0x3\n\ + lsls r0, 2\n\ + adds r1, r0\n\ + mov r2, r12\n\ + ldrh r0, [r2]\n\ + adds r1, 0xBA\n\ + strh r0, [r1]\n\ + mov r1, r9\n\ + mov r0, r8\n\ + strh r1, [r0]\n\ + b _081A1362\n\ + .pool\n\ _081A1308:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, r5\n\ - bcs _081A1322\n\ - ldr r0, [r6]\n\ - adds r0, 0xB1\n\ - ldrb r0, [r0]\n\ - lsls r0, 26\n\ - lsrs r0, 28\n\ - subs r0, 0x3\n\ - cmp r4, r0\n\ - blt _081A1296\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, r5\n\ + bcs _081A1322\n\ + ldr r0, [r6]\n\ + adds r0, 0xB1\n\ + ldrb r0, [r0]\n\ + lsls r0, 26\n\ + lsrs r0, 28\n\ + subs r0, 0x3\n\ + cmp r4, r0\n\ + blt _081A1296\n\ _081A1322:\n\ - ldr r2, [r7]\n\ - adds r0, r2, 0\n\ - adds r0, 0xB1\n\ - ldrb r0, [r0]\n\ - lsls r0, 26\n\ - lsrs r0, 28\n\ - subs r0, 0x3\n\ - lsls r0, 2\n\ - adds r2, r0\n\ - adds r2, 0xB8\n\ - ldrb r1, [r2]\n\ - movs r0, 0x3F\n\ - ands r0, r1\n\ - movs r1, 0x40\n\ - orrs r0, r1\n\ - strb r0, [r2]\n\ - ldr r1, [r7]\n\ - adds r0, r1, 0\n\ - adds r0, 0xB1\n\ - ldrb r0, [r0]\n\ - lsls r0, 26\n\ - lsrs r0, 28\n\ - subs r0, 0x3\n\ - lsls r0, 2\n\ - adds r1, r0\n\ - mov r2, r12\n\ - ldrh r0, [r2]\n\ - adds r1, 0xBA\n\ - strh r0, [r1]\n\ - movs r0, 0x1\n\ - mov r1, r8\n\ - strh r0, [r1]\n\ + ldr r2, [r7]\n\ + adds r0, r2, 0\n\ + adds r0, 0xB1\n\ + ldrb r0, [r0]\n\ + lsls r0, 26\n\ + lsrs r0, 28\n\ + subs r0, 0x3\n\ + lsls r0, 2\n\ + adds r2, r0\n\ + adds r2, 0xB8\n\ + ldrb r1, [r2]\n\ + movs r0, 0x3F\n\ + ands r0, r1\n\ + movs r1, 0x40\n\ + orrs r0, r1\n\ + strb r0, [r2]\n\ + ldr r1, [r7]\n\ + adds r0, r1, 0\n\ + adds r0, 0xB1\n\ + ldrb r0, [r0]\n\ + lsls r0, 26\n\ + lsrs r0, 28\n\ + subs r0, 0x3\n\ + lsls r0, 2\n\ + adds r1, r0\n\ + mov r2, r12\n\ + ldrh r0, [r2]\n\ + adds r1, 0xBA\n\ + strh r0, [r1]\n\ + movs r0, 0x1\n\ + mov r1, r8\n\ + strh r0, [r1]\n\ _081A1362:\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ "); } #endif // NONMATCHING diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 3e7064eb5..a88189870 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -463,7 +463,7 @@ static u8 ChooseMoveOrAction_Doubles(void) { if (i == sBattler_AI || gBattleMons[i].hp == 0) { - actionOrMoveIndex[i] = -1; + actionOrMoveIndex[i] = 0xFF; bestMovePointsForTarget[i] = -1; } else diff --git a/src/battle_anim.c b/src/battle_anim.c index e8720fcfb..5e62c0957 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -26,8 +26,6 @@ extern struct MusicPlayerInfo gMPlayInfo_SE2; extern const u16 gMovesWithQuietBGM[]; extern const u8 *const gBattleAnims_Moves[]; -extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; -extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const struct BattleAnimBackground gBattleAnimBackgroundTable[]; // this file's functions @@ -1386,54 +1384,54 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = static void (* const sScriptCmdTable[])(void) = { - ScriptCmd_loadspritegfx, - ScriptCmd_unloadspritegfx, - ScriptCmd_createsprite, - ScriptCmd_createvisualtask, - ScriptCmd_delay, - ScriptCmd_waitforvisualfinish, - ScriptCmd_hang1, - ScriptCmd_hang2, - ScriptCmd_end, - ScriptCmd_playse, - ScriptCmd_monbg, - ScriptCmd_clearmonbg, - ScriptCmd_setalpha, - ScriptCmd_blendoff, - ScriptCmd_call, - ScriptCmd_return, - ScriptCmd_setarg, - ScriptCmd_choosetwoturnanim, - ScriptCmd_jumpifmoveturn, - ScriptCmd_goto, - ScriptCmd_fadetobg, - ScriptCmd_restorebg, - ScriptCmd_waitbgfadeout, - ScriptCmd_waitbgfadein, - ScriptCmd_changebg, - ScriptCmd_playsewithpan, - ScriptCmd_setpan, - ScriptCmd_panse_1B, - ScriptCmd_loopsewithpan, - ScriptCmd_waitplaysewithpan, - ScriptCmd_setbldcnt, - ScriptCmd_createsoundtask, - ScriptCmd_waitsound, - ScriptCmd_jumpargeq, - ScriptCmd_monbg_22, - ScriptCmd_clearmonbg_23, - ScriptCmd_jumpifcontest, - ScriptCmd_fadetobgfromset, - ScriptCmd_panse_26, - ScriptCmd_panse_27, - ScriptCmd_monbgprio_28, - ScriptCmd_monbgprio_29, - ScriptCmd_monbgprio_2A, - ScriptCmd_invisible, - ScriptCmd_visible, - ScriptCmd_doublebattle_2D, - ScriptCmd_doublebattle_2E, - ScriptCmd_stopsound + ScriptCmd_loadspritegfx, + ScriptCmd_unloadspritegfx, + ScriptCmd_createsprite, + ScriptCmd_createvisualtask, + ScriptCmd_delay, + ScriptCmd_waitforvisualfinish, + ScriptCmd_hang1, + ScriptCmd_hang2, + ScriptCmd_end, + ScriptCmd_playse, + ScriptCmd_monbg, + ScriptCmd_clearmonbg, + ScriptCmd_setalpha, + ScriptCmd_blendoff, + ScriptCmd_call, + ScriptCmd_return, + ScriptCmd_setarg, + ScriptCmd_choosetwoturnanim, + ScriptCmd_jumpifmoveturn, + ScriptCmd_goto, + ScriptCmd_fadetobg, + ScriptCmd_restorebg, + ScriptCmd_waitbgfadeout, + ScriptCmd_waitbgfadein, + ScriptCmd_changebg, + ScriptCmd_playsewithpan, + ScriptCmd_setpan, + ScriptCmd_panse_1B, + ScriptCmd_loopsewithpan, + ScriptCmd_waitplaysewithpan, + ScriptCmd_setbldcnt, + ScriptCmd_createsoundtask, + ScriptCmd_waitsound, + ScriptCmd_jumpargeq, + ScriptCmd_monbg_22, + ScriptCmd_clearmonbg_23, + ScriptCmd_jumpifcontest, + ScriptCmd_fadetobgfromset, + ScriptCmd_panse_26, + ScriptCmd_panse_27, + ScriptCmd_monbgprio_28, + ScriptCmd_monbgprio_29, + ScriptCmd_monbgprio_2A, + ScriptCmd_invisible, + ScriptCmd_visible, + ScriptCmd_doublebattle_2D, + ScriptCmd_doublebattle_2E, + ScriptCmd_stopsound }; // code diff --git a/src/battle_anim_80A5C6C.c b/src/battle_anim_80A5C6C.c index 2ac6cca90..9adbdd779 100644 --- a/src/battle_anim_80A5C6C.c +++ b/src/battle_anim_80A5C6C.c @@ -7,7 +7,7 @@ #include "decompress.h" #include "dma3.h" #include "gpu_regs.h" -#include "malloc.h" +#include "alloc.h" #include "palette.h" #include "pokemon_icon.h" #include "sprite.h" @@ -35,7 +35,6 @@ extern const union AffineAnimCmd *gUnknown_082FF6C0[]; // This file's functions. void sub_80A64EC(struct Sprite *sprite); -void sub_80A653C(struct Sprite *sprite); void sub_80A6FB4(struct Sprite *sprite); void sub_80A7144(struct Sprite *sprite); void sub_80A791C(struct Sprite *sprite); @@ -539,7 +538,7 @@ void WaitAnimForDuration(struct Sprite *sprite) void sub_80A64D0(struct Sprite *sprite) { sub_80A64EC(sprite); - sprite->callback = sub_80A653C; + sprite->callback = TranslateSpriteOverDuration; sprite->callback(sprite); } @@ -557,7 +556,7 @@ void sub_80A64EC(struct Sprite *sprite) sprite->data[1] = old; } -void sub_80A653C(struct Sprite *sprite) +void TranslateSpriteOverDuration(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -613,7 +612,7 @@ void sub_80A65EC(struct Sprite *sprite) sprite->callback = sub_80A64D0; } -void sub_80A6630(struct Sprite *sprite) +void TranslateMonBGUntil(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -627,7 +626,7 @@ void sub_80A6630(struct Sprite *sprite) } } -// Same as sub_80A6630, but it operates on sub-pixel values +// Same as TranslateMonBGUntil, but it operates on sub-pixel values // to handle slower translations. void sub_80A6680(struct Sprite *sprite) { diff --git a/src/battle_anim_80D51AC.c b/src/battle_anim_80D51AC.c index 25e07dc3a..51be7bbe9 100644 --- a/src/battle_anim_80D51AC.c +++ b/src/battle_anim_80D51AC.c @@ -11,15 +11,15 @@ void AnimTask_ShakeMon2Step(u8 taskId); void AnimTask_ShakeMonInPlaceStep(u8 taskId); void AnimTask_ShakeAndSinkMonStep(u8 taskId); void sub_80D57B8(u8 taskId); -void DoHorizontalLunge(struct Sprite *sprite); -void ReverseHorizontalLungeDirection(struct Sprite *sprite); -void DoVerticalDip(struct Sprite *sprite); -void ReverseVerticalDipDirection(struct Sprite* sprite); -void SlideMonToOriginalPos(struct Sprite *sprite); -void SlideMonToOriginalPosStep(struct Sprite *sprite); -void SlideMonToOffset(struct Sprite *sprite); -void sub_80D5B48(struct Sprite *sprite); -void sub_80D5C20(struct Sprite *sprite); +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); @@ -28,6 +28,61 @@ 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 @@ -373,7 +428,7 @@ void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) // 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 -void DoHorizontalLunge(struct Sprite *sprite) +static void DoHorizontalLunge(struct Sprite *sprite) { sprite->invisible = TRUE; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -386,14 +441,14 @@ void DoHorizontalLunge(struct Sprite *sprite) sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection); - sprite->callback = sub_80A6630; + sprite->callback = TranslateMonBGUntil; } -void ReverseHorizontalLungeDirection(struct Sprite *sprite) +static void ReverseHorizontalLungeDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[1] = -sprite->data[1]; - sprite->callback = sub_80A6630; + sprite->callback = TranslateMonBGUntil; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -402,7 +457,7 @@ void ReverseHorizontalLungeDirection(struct Sprite *sprite) // arg 0: duration of single dip direction // arg 1: y pixel delta that is applied each frame // arg 2: battler -void DoVerticalDip(struct Sprite *sprite) +static void DoVerticalDip(struct Sprite *sprite) { u8 spriteId; sprite->invisible = TRUE; @@ -413,14 +468,14 @@ void DoVerticalDip(struct Sprite *sprite) sprite->data[3] = spriteId; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection); - sprite->callback = sub_80A6630; + sprite->callback = TranslateMonBGUntil; } -void ReverseVerticalDipDirection(struct Sprite *sprite) +static void ReverseVerticalDipDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[2] = -sprite->data[2]; - sprite->callback = sub_80A6630; + sprite->callback = TranslateMonBGUntil; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -429,7 +484,7 @@ void ReverseVerticalDipDirection(struct Sprite *sprite) // arg 0: 1 = target or 0 = attacker // arg 1: direction (0 = horizontal and vertical, 1 = horizontal only, 2 = vertical only) // arg 2: duration -void SlideMonToOriginalPos(struct Sprite *sprite) +static void SlideMonToOriginalPos(struct Sprite *sprite) { u32 monSpriteId; if (!gBattleAnimArgs[0]) @@ -459,7 +514,7 @@ void SlideMonToOriginalPos(struct Sprite *sprite) sprite->callback = SlideMonToOriginalPosStep; } -void SlideMonToOriginalPosStep(struct Sprite *sprite) +static void SlideMonToOriginalPosStep(struct Sprite *sprite) { s8 monSpriteId; u8 lo; @@ -496,7 +551,7 @@ void SlideMonToOriginalPosStep(struct Sprite *sprite) // arg 2: target y pixel offset // arg 3: mirror vertical translation for opposite battle side // arg 4: duration -void SlideMonToOffset(struct Sprite *sprite) +static void SlideMonToOffset(struct Sprite *sprite) { u8 battler; u8 monSpriteId; @@ -529,7 +584,7 @@ void SlideMonToOffset(struct Sprite *sprite) sprite->callback = sub_80A6680; } -void sub_80D5B48(struct Sprite *sprite) +static void sub_80D5B48(struct Sprite *sprite) { u8 spriteId; u8 battlerId; @@ -573,7 +628,7 @@ void sub_80D5B48(struct Sprite *sprite) } -void sub_80D5C20(struct Sprite *sprite) +static void sub_80D5C20(struct Sprite *sprite) { gSprites[sprite->data[5]].pos2.x = 0; gSprites[sprite->data[5]].pos2.y = 0; diff --git a/src/battle_anim_8170478.c b/src/battle_anim_8170478.c new file mode 100755 index 000000000..94f2c95b5 --- /dev/null +++ b/src/battle_anim_8170478.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 gUnknown_085CE3A0; + +void unref_sub_8170478(u8 taskId) +{ + struct UnknownAnimStruct2 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); + sub_80A6D48(unknownStruct.bgId, gUnknown_08C2EA9C); + sub_80A6CC0(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset); + LoadCompressedPalette(gUnknown_08C2DDA4, unknownStruct.unk8 << 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: + sub_80A7270(spriteId, 0); + gTasks[taskId].data[10] = 0x100; + gTasks[taskId].data[0]++; + break; + case 1: + gTasks[taskId].data[10] += 0x30; + obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0); + sub_80A7E6C(spriteId); + if (gTasks[taskId].data[10] >= 0x2D0) + gTasks[taskId].data[0]++; + break; + case 2: + sub_80A7344(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 = sub_80A82E4(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 (TranslateAnimArc(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: + sub_80A7270(spriteId, 0); + 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; + obj_id_set_rotscale(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: + sub_80A7344(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 (TranslateAnimArc(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) + { + LoadCompressedObjectPicUsingHeap(&gBallOpenParticleSpritesheets[ballId]); + LoadCompressedObjectPaletteUsingHeap(&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 (sub_80A8364(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) + { + LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[233]); + LoadCompressedObjectPaletteUsingHeap(&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(&gUnknown_085CE3A0, x, y, 5); + gSprites[spriteId].oam.tileNum += 4; + } + else + { + spriteId = CreateSprite(&gUnknown_085CE3A0, 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; + + LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[269]); + LoadCompressedObjectPaletteUsingHeap(&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) +{ + InitAnimSpritePos(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 (TranslateAnimArc(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_effects_1.c b/src/battle_anim_effects_1.c new file mode 100644 index 000000000..0f56c05d8 --- /dev/null +++ b/src/battle_anim_effects_1.c @@ -0,0 +1,5520 @@ +#include "global.h" +#include "battle_anim.h" +#include "battle_interface.h" +#include "gpu_regs.h" +#include "palette.h" +#include "random.h" +#include "sound.h" +#include "trig.h" +#include "util.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0}; + +void AnimMovePowderParticle(struct Sprite *); +void sub_80FE8E0(struct Sprite *); +void sub_80FE930(struct Sprite *); +void sub_80FE988(struct Sprite *); +void sub_80FEAD8(struct Sprite *); +void sub_80FEB44(struct Sprite *); +void sub_80FED28(struct Sprite *); +void sub_80FEE78(struct Sprite *); +void sub_80FEF44(struct Sprite *); +void sub_80FEFFC(struct Sprite *); +void AnimLeechSeed(struct Sprite *); +void AnimTranslateLinearSingleSineWave(struct Sprite *); +void AnimMoveTwisterParticle(struct Sprite *); +void sub_80FF374(struct Sprite *); +void sub_80FF698(struct Sprite *); +void sub_80FF768(struct Sprite *); +void sub_80FF7EC(struct Sprite *); +void sub_80FF934(struct Sprite *); +void sub_80FFB18(struct Sprite *); +void sub_80FFBF4(struct Sprite *); +void sub_80FFC70(struct Sprite *); +void sub_80FFCB4(struct Sprite *); +void sub_80FFDBC(struct Sprite *); +void sub_8100640(struct Sprite *); +void sub_8100898(struct Sprite *); +void sub_81009F8(struct Sprite *); +void sub_8100A50(struct Sprite *); +void sub_8100A94(struct Sprite *); +void AnimCuttingSlice(struct Sprite *); +void sub_8100B88(struct Sprite *); +void sub_8100E1C(struct Sprite *); +void sub_8100EF0(struct Sprite *); +void sub_81010CC(struct Sprite *); +void sub_810130C(struct Sprite *); +void sub_810135C(struct Sprite *); +void sub_8101440(struct Sprite *); +void sub_81014F4(struct Sprite *); +void sub_81015AC(struct Sprite *); +void sub_8101898(struct Sprite *); +void sub_8101940(struct Sprite *); +void sub_8101B90(struct Sprite *); +void sub_8101F40(struct Sprite *); +void sub_8101FA8(struct Sprite *); +void sub_8101FF0(struct Sprite *); +void sub_81020D8(struct Sprite *); +void sub_810217C(struct Sprite *); +void sub_8102268(struct Sprite *); +void sub_810234C(struct Sprite *); +void sub_81024E0(struct Sprite *); +void sub_8102540(struct Sprite *); +void sub_8102844(struct Sprite *); +void sub_8102BCC(struct Sprite *); +void sub_8102CD4(struct Sprite *); +void sub_8102EB0(struct Sprite *); +void sub_8102FB8(struct Sprite *); +void sub_8103028(struct Sprite *); +void sub_8103164(struct Sprite *); +void sub_8103208(struct Sprite *); +void sub_8103284(struct Sprite *); +void sub_8103390(struct Sprite *); +static void AnimMovePowderParticleStep(struct Sprite *); +static void sub_80FE9E4(struct Sprite *); +static void sub_80FEB28(struct Sprite *); +static void sub_80FEBFC(struct Sprite *); +static void AnimLeechSeedStep(struct Sprite *); +static void AnimLeechSeedSprouts(struct Sprite *); +static void sub_80FED74(struct Sprite *); +static void sub_80FEECC(struct Sprite *); +static void sub_80FEF98(struct Sprite *); +static void sub_80FF044(struct Sprite *); +static void sub_80FF090(struct Sprite *); +static void AnimTranslateLinearSingleSineWaveStep(struct Sprite *); +static void AnimMoveTwisterParticleStep(struct Sprite *); +static void sub_80FF3B0(struct Sprite *); +static void sub_80FF3EC(struct Sprite *); +static void sub_80FF53C(u8); +static void sub_80FF5CC(u8); +static void sub_80FFD2C(struct Sprite *); +static void sub_80FF8DC(struct Sprite *); +static void sub_80FFE58(struct Sprite *); +static void sub_80FFEC4(struct Sprite *); +static void sub_80FFF7C(struct Sprite *); +static void sub_8100128(u8); +static s16 sub_8100504(struct Sprite *); +static void sub_8100524(struct Task *, u8); +static void sub_80CC408(struct Sprite *); +static void sub_810074C(struct Sprite *); +static void sub_81009A0(struct Sprite *); +static void AnimSliceStep(struct Sprite *); +static void sub_8100E80(struct Sprite *); +static void sub_8100FD4(struct Sprite *); +static void sub_8101138(struct Sprite *); +static void sub_8101298(struct Sprite *, int, int); +static void sub_81014A0(struct Sprite *); +static void sub_8101560(struct Sprite *); +static void sub_81015D4(struct Sprite *); +static void sub_8101684(struct Sprite *); +static void sub_81016B8(struct Sprite *); +static void sub_8101774(struct Sprite *); +static void sub_8101820(struct Sprite *); +static void sub_8101848(struct Sprite *); +static void sub_8101998(struct Sprite *); +static void sub_81019E8(struct Sprite *); +static void sub_8101A74(struct Sprite *); +static void sub_8101AC4(struct Sprite *); +static void sub_8101B84(struct Sprite *); +static void sub_8101AE8(struct Sprite *); +static void sub_8101BA0(struct Sprite *); +static void sub_8101D2C(u8); +static void sub_8101EEC(u8); +static void sub_8102044(struct Sprite *); +static void sub_810207C(struct Sprite *); +static void sub_810208C(struct Sprite *); +static void sub_810213C(struct Sprite *); +static void sub_81021CC(struct Sprite *); +static void sub_810237C(struct Sprite *); +static void sub_8102528(struct Sprite *); +static void sub_8102584(struct Sprite *); +static void sub_810296C(struct Sprite *); +static void sub_8102AE0(u8); +static void sub_8102B3C(struct Sprite *); +static void sub_8102D8C(s16, s16, s16 *, s16 *, s8); +static void sub_8102DE4(struct Sprite *); +static void sub_8102F40(struct Sprite *); +static void sub_81030B0(struct Sprite *); +static void sub_81031D0(struct Sprite *); +static void sub_8103250(struct Sprite *); +static void sub_8103300(struct Sprite *); +static void sub_8103320(struct Sprite *); +static void sub_81033F0(struct Sprite *); +static void sub_810342C(struct Sprite *); + +const union AnimCmd gUnknown_085920F0[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(6, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(10, 5), + ANIMCMD_FRAME(12, 5), + ANIMCMD_FRAME(14, 5), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_08592114[] = +{ + gUnknown_085920F0, +}; + +const struct SpriteTemplate gSleepPowderParticleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SLEEP_POWDER, + .paletteTag = ANIM_TAG_SLEEP_POWDER, + .oam = &gUnknown_08524944, + .anims = gUnknown_08592114, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMovePowderParticle, +}; + +const struct SpriteTemplate gStunSporeParticleSpriteTemplate = +{ + .tileTag = ANIM_TAG_STUN_SPORE, + .paletteTag = ANIM_TAG_STUN_SPORE, + .oam = &gUnknown_08524944, + .anims = gUnknown_08592114, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMovePowderParticle, +}; + +const struct SpriteTemplate gPoisonPowderParticleSpriteTemplate = +{ + .tileTag = ANIM_TAG_POISON_POWDER, + .paletteTag = ANIM_TAG_POISON_POWDER, + .oam = &gUnknown_08524944, + .anims = gUnknown_08592114, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMovePowderParticle, +}; + +const union AnimCmd gUnknown_08592160[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592168[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592170[] = +{ + ANIMCMD_FRAME(2, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592178[] = +{ + ANIMCMD_FRAME(3, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592180[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592188[] = +{ + ANIMCMD_FRAME(5, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592190[] = +{ + ANIMCMD_FRAME(6, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592198[] = +{ + ANIMCMD_FRAME(7, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085921A0[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085921A8[] = +{ + gUnknown_08592160, + gUnknown_08592168, + gUnknown_08592170, + gUnknown_08592178, + gUnknown_08592180, + gUnknown_08592188, + gUnknown_08592190, +}; + +const union AnimCmd *const gUnknown_085921C4[] = +{ + gUnknown_08592198, +}; + +const union AnimCmd *const gUnknown_085921C8[] = +{ + gUnknown_085921A0, +}; + +const union AffineAnimCmd gUnknown_085921CC[] = { + AFFINEANIMCMD_FRAME(-5, -5, 0, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_085921DC[] = { + gUnknown_085921CC, +}; + +const struct SpriteTemplate gUnknown_085921E0 = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gUnknown_08524A8C, + .anims = gUnknown_085921C8, + .images = NULL, + .affineAnims = gUnknown_085921DC, + .callback = sub_80FE8E0, +}; + +const struct SpriteTemplate gUnknown_085921F8 = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gUnknown_08524904, + .anims = gUnknown_085921A8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FE930, +}; + +const struct SpriteTemplate gUnknown_08592210 = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gUnknown_08524904, + .anims = gUnknown_085921C4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FE988, +}; + +const union AffineAnimCmd gUnknown_08592228[] = { + AFFINEANIMCMD_FRAME(320, 320, 0, 0), + AFFINEANIMCMD_FRAME(-14, -14, 0, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gUnknown_08592240[] = { + gUnknown_08592228, +}; + +const struct SpriteTemplate gUnknown_08592244 = +{ + .tileTag = ANIM_TAG_GRAY_ORB, + .paletteTag = ANIM_TAG_GRAY_ORB, + .oam = &gUnknown_085249C4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08592240, + .callback = sub_80FE8E0, +}; + +const union AffineAnimCmd gUnknown_0859225C[] = { + AFFINEANIMCMD_FRAME(-5, -5, 0, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_0859226C[] = { + gUnknown_0859225C, +}; + +const struct SpriteTemplate gUnknown_08592270 = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gUnknown_08524A8C, + .anims = gUnknown_085921C8, + .images = NULL, + .affineAnims = gUnknown_0859226C, + .callback = sub_80FEAD8, +}; + +const struct SpriteTemplate gUnknown_08592288 = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gUnknown_08524904, + .anims = gUnknown_085921A8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FEB44, +}; + +const union AnimCmd gUnknown_085922A0[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085922A8[] = +{ + ANIMCMD_FRAME(4, 7), + ANIMCMD_FRAME(8, 7), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_085922B4[] = +{ + gUnknown_085922A0, + gUnknown_085922A8, +}; + +const struct SpriteTemplate gLeechSeedSpriteTemplate = +{ + .tileTag = ANIM_TAG_SEED, + .paletteTag = ANIM_TAG_SEED, + .oam = &gUnknown_0852490C, + .anims = gUnknown_085922B4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimLeechSeed, +}; + +const union AnimCmd gUnknown_085922D4[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085922DC[] = +{ + ANIMCMD_FRAME(4, 7), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085922E4[] = +{ + gUnknown_085922D4, + gUnknown_085922DC, +}; + +const struct SpriteTemplate gUnknown_085922EC = +{ + .tileTag = ANIM_TAG_SPORE, + .paletteTag = ANIM_TAG_SPORE, + .oam = &gUnknown_0852490C, + .anims = gUnknown_085922E4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FED28, +}; + +const union AnimCmd gUnknown_08592304[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859230C[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592314[] = +{ + gUnknown_08592304, +}; + +const union AnimCmd *const gUnknown_08592318[] = +{ + gUnknown_0859230C, +}; + +const struct SpriteTemplate gUnknown_0859231C = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08592314, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FEE78, +}; + +const struct SpriteTemplate gUnknown_08592334 = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = &gUnknown_08524904, + .anims = gUnknown_08592318, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FEF44, +}; + +const union AnimCmd gUnknown_0859234C[] = +{ + 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(16, 5), + ANIMCMD_FRAME(12, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gUnknown_08592378[] = +{ + ANIMCMD_FRAME(24, 5), + ANIMCMD_FRAME(28, 5), + ANIMCMD_FRAME(32, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592388[] = +{ + gUnknown_0859234C, + gUnknown_08592378, +}; + +const struct SpriteTemplate gUnknown_08592390 = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08592388, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FEFFC, +}; + +const struct SpriteTemplate gUnknown_085923A8 = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08592388, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMoveTwisterParticle, +}; + +const union AnimCmd gUnknown_085923C0[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(0, 3, .hFlip = TRUE), + ANIMCMD_FRAME(0, 3, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(0, 3, .vFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_085923D4[] = +{ + gUnknown_085923C0, +}; + +const struct SpriteTemplate gUnknown_085923D8 = +{ + .tileTag = ANIM_TAG_RAZOR_LEAF, + .paletteTag = ANIM_TAG_RAZOR_LEAF, + .oam = &gUnknown_08524934, + .anims = gUnknown_085923D4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimTranslateLinearSingleSineWave, +}; + +const union AffineAnimCmd gUnknown_085923F0[] = { + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08592400[] = { + gUnknown_085923F0, +}; + +const struct SpriteTemplate gSwiftStarSpriteTemplate = +{ + .tileTag = ANIM_TAG_YELLOW_STAR, + .paletteTag = ANIM_TAG_YELLOW_STAR, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08592400, + .callback = AnimTranslateLinearSingleSineWave, +}; + +const union AnimCmd gUnknown_0859241C[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(96, 4), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592430[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(32, 4, .hFlip = TRUE), + ANIMCMD_FRAME(64, 4, .hFlip = TRUE), + ANIMCMD_FRAME(96, 4, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592444[] = +{ + gUnknown_0859241C, + gUnknown_08592430, +}; + +const union AffineAnimCmd gUnknown_0859244C[] = { + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(-11, 0, 0, 6), + AFFINEANIMCMD_FRAME(11, 0, 0, 6), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859246C[] = { + AFFINEANIMCMD_FRAME(-256, 256, 0, 0), + AFFINEANIMCMD_FRAME(11, 0, 0, 6), + AFFINEANIMCMD_FRAME(-11, 0, 0, 6), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_0859248C[] = { + gUnknown_0859244C, + gUnknown_0859246C, +}; + +const struct SpriteTemplate gUnknown_08592494 = +{ + .tileTag = ANIM_TAG_TENDRILS, + .paletteTag = ANIM_TAG_TENDRILS, + .oam = &gUnknown_0852499C, + .anims = gUnknown_08592444, + .images = NULL, + .affineAnims = gUnknown_0859248C, + .callback = sub_80FF374, +}; + +const union AffineAnimCmd gUnknown_085924AC[] = { + AFFINEANIMCMD_FRAME(0, 0, 0, 0), + AFFINEANIMCMD_FRAME(48, 48, 0, 14), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_085924C4[] = { + AFFINEANIMCMD_FRAME(-16, -16, 0, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_085924D4[] = { + gUnknown_085924AC, + gUnknown_085924C4, +}; + +const struct SpriteTemplate gUnknown_085924DC = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gUnknown_085249CC, + .anims = gUnknown_085921C8, + .images = NULL, + .affineAnims = gUnknown_085924D4, + .callback = sub_80FF698, +}; + +const union AnimCmd gUnknown_085924F4[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(16, 7), + ANIMCMD_FRAME(32, 7), + ANIMCMD_FRAME(48, 7), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592508[] = +{ + ANIMCMD_FRAME(0, 7, .hFlip = TRUE), + ANIMCMD_FRAME(16, 7, .hFlip = TRUE), + ANIMCMD_FRAME(32, 7, .hFlip = TRUE), + ANIMCMD_FRAME(48, 7, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859251C[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(16, 7), + ANIMCMD_FRAME(32, 7), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859252C[] = +{ + ANIMCMD_FRAME(0, 7, .hFlip = TRUE), + ANIMCMD_FRAME(16, 7, .hFlip = TRUE), + ANIMCMD_FRAME(32, 7, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_0859253C[] = +{ + gUnknown_085924F4, + gUnknown_08592508, + gUnknown_0859251C, + gUnknown_0859252C, +}; + +const struct SpriteTemplate gUnknown_0859254C = +{ + .tileTag = ANIM_TAG_ROOTS, + .paletteTag = ANIM_TAG_ROOTS, + .oam = &gUnknown_08524914, + .anims = gUnknown_0859253C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FF768, +}; + +const struct SpriteTemplate gUnknown_08592564 = +{ + .tileTag = ANIM_TAG_ROOTS, + .paletteTag = ANIM_TAG_ROOTS, + .oam = &gUnknown_08524914, + .anims = gUnknown_0859253C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FF7EC, +}; + +const union AnimCmd gUnknown_0859257C[] = +{ + ANIMCMD_FRAME(3, 3), + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_08592588[] = +{ + gUnknown_0859257C, +}; + +const struct SpriteTemplate gUnknown_0859258C = +{ + .tileTag = ANIM_TAG_ORBS, + .paletteTag = ANIM_TAG_ORBS, + .oam = &gUnknown_08524904, + .anims = gUnknown_08592588, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FF934, +}; + +const union AnimCmd gUnknown_085925A4[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085925AC[] = +{ + gUnknown_085925A4, +}; + +const union AffineAnimCmd gUnknown_085925B0[] = { + AFFINEANIMCMD_FRAME(0, 0, -4, 10), + AFFINEANIMCMD_FRAME(0, 0, 4, 20), + AFFINEANIMCMD_FRAME(0, 0, -4, 10), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_085925D0[] = { + AFFINEANIMCMD_FRAME(0, 0, -1, 2), + AFFINEANIMCMD_FRAME(0, 0, 1, 4), + AFFINEANIMCMD_FRAME(0, 0, -1, 4), + AFFINEANIMCMD_FRAME(0, 0, 1, 4), + AFFINEANIMCMD_FRAME(0, 0, -1, 4), + AFFINEANIMCMD_FRAME(0, 0, 1, 2), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08592608[] = { + gUnknown_085925B0, + gUnknown_085925D0, +}; + +const struct SpriteTemplate gUnknown_08592610 = +{ + .tileTag = ANIM_TAG_ITEM_BAG, + .paletteTag = ANIM_TAG_ITEM_BAG, + .oam = &gUnknown_08524974, + .anims = gUnknown_085925AC, + .images = NULL, + .affineAnims = gUnknown_08592608, + .callback = sub_80FFB18, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8592628 = +{ + .tileTag = ANIM_TAG_ITEM_BAG, + .paletteTag = ANIM_TAG_ITEM_BAG, + .oam = &gUnknown_08524974, + .anims = gUnknown_085925AC, + .images = NULL, + .affineAnims = gUnknown_08592608, + .callback = sub_80FFBF4, +}; + +const union AnimCmd gUnknown_08592640[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(8, 4), + ANIMCMD_FRAME(12, 4), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592654[] = +{ + gUnknown_08592640, +}; + +const struct SpriteTemplate gUnknown_08592658 = +{ + .tileTag = ANIM_TAG_GREEN_SPARKLE, + .paletteTag = ANIM_TAG_GREEN_SPARKLE, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08592654, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80FFC70, +}; + +const struct SpriteTemplate gUnknown_08592670 = +{ + .tileTag = ANIM_TAG_ITEM_BAG, + .paletteTag = ANIM_TAG_ITEM_BAG, + .oam = &gUnknown_08524974, + .anims = gUnknown_085925AC, + .images = NULL, + .affineAnims = gUnknown_08592608, + .callback = sub_80FFCB4, +}; + +const union AffineAnimCmd gUnknown_08592688[] = { + AFFINEANIMCMD_FRAME(0, 0, 0, 3), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08592698[] = { + AFFINEANIMCMD_FRAME(0, -10, 0, 3), + AFFINEANIMCMD_FRAME(0, -6, 0, 3), + AFFINEANIMCMD_FRAME(0, -2, 0, 3), + AFFINEANIMCMD_FRAME(0, 0, 0, 3), + AFFINEANIMCMD_FRAME(0, 2, 0, 3), + AFFINEANIMCMD_FRAME(0, 6, 0, 3), + AFFINEANIMCMD_FRAME(0, 10, 0, 3), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085926D8[] = { + gUnknown_08592688, + gUnknown_08592698, + gUnknown_085925B0, + gUnknown_085925D0, +}; + +const struct SpriteTemplate gUnknown_085926E8 = +{ + .tileTag = ANIM_TAG_ITEM_BAG, + .paletteTag = ANIM_TAG_ITEM_BAG, + .oam = &gUnknown_08524974, + .anims = gUnknown_085925AC, + .images = NULL, + .affineAnims = gUnknown_085926D8, + .callback = sub_80FFDBC, +}; + +const s8 gUnknown_08592700[][3] = +{ + {5, 24, 1}, + {0, 4, 0}, + {8, 16, -1}, + {0, 2, 0}, + {8, 16, 1}, + {0, 2, 0}, + {8, 16, 1}, + {0, 2, 0}, + {8, 16, 1}, + {0, 16, 0}, + {0, 0, 127}, +}; + +const union AnimCmd gUnknown_08592724[] = +{ + ANIMCMD_FRAME(28, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859272C[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592734[] = +{ + ANIMCMD_FRAME(20, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859273C[] = +{ + ANIMCMD_FRAME(28, 1, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592744[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859274C[] = +{ + ANIMCMD_FRAME(16, 1, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592754[] = +{ + ANIMCMD_FRAME(28, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_0859275C[] = +{ + gUnknown_08592724, + gUnknown_0859272C, + gUnknown_08592734, + gUnknown_0859273C, + gUnknown_08592744, + gUnknown_0859274C, + gUnknown_08592754, +}; + +const struct SpriteTemplate gUnknown_08592778 = +{ + .tileTag = ANIM_TAG_LEAF, + .paletteTag = ANIM_TAG_LEAF, + .oam = &gUnknown_0852490C, + .anims = gUnknown_0859275C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const union AffineAnimCmd gUnknown_08592790[] = { + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 4, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gUnknown_085927A8[] = { + gUnknown_08592790, +}; + +const struct SpriteTemplate gUnknown_085927AC = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = &gUnknown_08524904, + .anims = gUnknown_08592318, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8100640, +}; + +const struct SpriteTemplate gUnknown_085927C4 = +{ + .tileTag = ANIM_TAG_FLOWER, + .paletteTag = ANIM_TAG_FLOWER, + .oam = &gUnknown_0852496C, + .anims = gUnknown_08592314, + .images = NULL, + .affineAnims = gUnknown_085927A8, + .callback = sub_8100640, +}; + +const union AffineAnimCmd gUnknown_085927DC[] = { + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, -10, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd gUnknown_085927F4[] = { + AFFINEANIMCMD_FRAME(192, 192, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, -12, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd gUnknown_0859280C[] = { + AFFINEANIMCMD_FRAME(143, 143, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, -15, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gUnknown_08592824[] = { + gUnknown_085927DC, +}; + +const union AffineAnimCmd *const gUnknown_08592828[] = { + gUnknown_085927F4, +}; + +const union AffineAnimCmd *const gUnknown_0859282C[] = { + gUnknown_0859280C, +}; + +const struct SpriteTemplate gUnknown_08592830 = +{ + .tileTag = ANIM_TAG_SPARKLE_6, + .paletteTag = ANIM_TAG_SPARKLE_6, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08592824, + .callback = sub_8100640, +}; + +const struct SpriteTemplate gUnknown_08592848 = +{ + .tileTag = ANIM_TAG_SPARKLE_6, + .paletteTag = ANIM_TAG_SPARKLE_6, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08592828, + .callback = sub_8100640, +}; + +const struct SpriteTemplate gUnknown_08592860 = +{ + .tileTag = ANIM_TAG_SPARKLE_6, + .paletteTag = ANIM_TAG_SPARKLE_6, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_0859282C, + .callback = sub_8100640, +}; + +const u16 gMagicalLeafBlendColors[] = +{ + RGB(31, 0, 0), + RGB(31, 19, 0), + RGB(31, 31, 0), + RGB(0, 31, 0), + RGB(5, 14, 31), + RGB(22, 10, 31), + RGB(22, 21, 31), +}; + +const struct SpriteTemplate gUnknown_08592888 = +{ + .tileTag = ANIM_TAG_GREEN_SPIKE, + .paletteTag = ANIM_TAG_GREEN_SPIKE, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8100898, +}; + +const union AnimCmd gUnknown_085928A0[] = +{ + ANIMCMD_FRAME(64, 3), + ANIMCMD_FRAME(80, 3), + ANIMCMD_FRAME(96, 3), + ANIMCMD_FRAME(112, 6), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085928B4[] = +{ + ANIMCMD_FRAME(64, 3, .hFlip = TRUE), + ANIMCMD_FRAME(80, 3, .hFlip = TRUE), + ANIMCMD_FRAME(96, 3, .hFlip = TRUE), + ANIMCMD_FRAME(112, 6, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085928C8[] = +{ + gUnknown_085928A0, + gUnknown_085928B4, +}; + +const struct SpriteTemplate gUnknown_085928D0 = +{ + .tileTag = ANIM_TAG_SLAM_HIT, + .paletteTag = ANIM_TAG_SLAM_HIT, + .oam = &gUnknown_08524914, + .anims = gUnknown_085928C8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8100A50, +}; + +const struct SpriteTemplate gUnknown_085928E8 = +{ + .tileTag = ANIM_TAG_WHIP_HIT, + .paletteTag = ANIM_TAG_WHIP_HIT, + .oam = &gUnknown_08524914, + .anims = gUnknown_085928C8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8100A50, +}; + +const union AnimCmd gUnknown_08592900[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_FRAME(64, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592918[] = +{ + gUnknown_08592900, +}; + +const struct SpriteTemplate gUnknown_0859291C = +{ + .tileTag = ANIM_TAG_UNUSED_HIT, + .paletteTag = ANIM_TAG_UNUSED_HIT, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592918, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81009F8, +}; + +const struct SpriteTemplate gUnknown_08592934 = +{ + .tileTag = ANIM_TAG_UNUSED_HIT_2, + .paletteTag = ANIM_TAG_UNUSED_HIT_2, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592918, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81009F8, +}; + +const union AffineAnimCmd gUnknown_0859294C[] = { + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859295C[] = { + AFFINEANIMCMD_FRAME(256, 256, 32, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859296C[] = { + AFFINEANIMCMD_FRAME(256, 256, 64, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859297C[] = { + AFFINEANIMCMD_FRAME(256, 256, 96, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859298C[] = { + AFFINEANIMCMD_FRAME(256, 256, -128, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859299C[] = { + AFFINEANIMCMD_FRAME(256, 256, -96, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_085929AC[] = { + AFFINEANIMCMD_FRAME(256, 256, -64, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_085929BC[] = { + AFFINEANIMCMD_FRAME(256, 256, -32, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085929CC[] = { + gUnknown_0859294C, + gUnknown_0859295C, + gUnknown_0859296C, + gUnknown_0859297C, + gUnknown_0859298C, + gUnknown_0859299C, + gUnknown_085929AC, + gUnknown_085929BC, +}; + +const struct SpriteTemplate gUnknown_085929EC = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_085929CC, + .callback = sub_8100A94, +}; + +const union AnimCmd gUnknown_08592A04[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(32, 5), + ANIMCMD_FRAME(48, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592A18[] = +{ + gUnknown_08592A04, +}; + +const struct SpriteTemplate gCuttingSliceSpriteTemplate = +{ + .tileTag = ANIM_TAG_CUT, + .paletteTag = ANIM_TAG_CUT, + .oam = &gUnknown_08524A34, + .anims = gUnknown_08592A18, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimCuttingSlice, +}; + +const struct SpriteTemplate gUnknown_08592A34 = +{ + .tileTag = ANIM_TAG_CUT, + .paletteTag = ANIM_TAG_CUT, + .oam = &gUnknown_08524A34, + .anims = gUnknown_08592A18, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8100B88, +}; + +const union AnimCmd gUnknown_08592A4C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A54[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A5C[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A64[] = +{ + ANIMCMD_FRAME(12, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A6C[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A74[] = +{ + ANIMCMD_FRAME(20, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A7C[] = +{ + ANIMCMD_FRAME(0, 1, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A84[] = +{ + ANIMCMD_FRAME(4, 1, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A8C[] = +{ + ANIMCMD_FRAME(8, 1, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592A94[] = +{ + ANIMCMD_FRAME(12, 1, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592A9C[] = +{ + gUnknown_08592A4C, + gUnknown_08592A54, + gUnknown_08592A5C, + gUnknown_08592A64, + gUnknown_08592A6C, + gUnknown_08592A74, + gUnknown_08592A7C, + gUnknown_08592A84, + gUnknown_08592A8C, + gUnknown_08592A94, +}; + +const struct SpriteTemplate gUnknown_08592AC4 = +{ + .tileTag = ANIM_TAG_MUSIC_NOTES, + .paletteTag = ANIM_TAG_MUSIC_NOTES, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08592A9C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8100E1C, +}; + +const struct SpriteTemplate gUnknown_08592ADC = +{ + .tileTag = ANIM_TAG_PROTECT, + .paletteTag = ANIM_TAG_PROTECT, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8100EF0, +}; + +const union AffineAnimCmd gUnknown_08592AF4[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08592B04[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 12), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 6), + AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 24), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 6), + AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 12), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08592B34[] = +{ + gUnknown_08592AF4, + gUnknown_08592B04, +}; + +const struct SpriteTemplate gUnknown_08592B3C = +{ + .tileTag = ANIM_TAG_MILK_BOTTLE, + .paletteTag = ANIM_TAG_MILK_BOTTLE, + .oam = &gUnknown_08524A94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08592B34, + .callback = sub_81010CC, +}; + +const union AnimCmd gUnknown_08592B54[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(16, 7), + ANIMCMD_FRAME(32, 7), + ANIMCMD_FRAME(48, 7), + ANIMCMD_FRAME(64, 7), + ANIMCMD_FRAME(80, 7), + ANIMCMD_FRAME(96, 7), + ANIMCMD_FRAME(112, 7), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_08592B78[] = +{ + gUnknown_08592B54, +}; + +const struct SpriteTemplate gUnknown_08592B7C = +{ + .tileTag = ANIM_TAG_SPARKLE_2, + .paletteTag = ANIM_TAG_SPARKLE_2, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592B78, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810130C, +}; + +const struct SpriteTemplate gUnknown_08592B94 = +{ + .tileTag = ANIM_TAG_SPARKLE_2, + .paletteTag = ANIM_TAG_SPARKLE_2, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592B78, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810135C, +}; + +const union AnimCmd gUnknown_08592BAC[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(4, 10), + ANIMCMD_FRAME(8, 10), + ANIMCMD_FRAME(12, 10), + ANIMCMD_FRAME(16, 26), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(20, 5), + ANIMCMD_FRAME(24, 15), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592BD0[] = +{ + ANIMCMD_FRAME(0, 10, .hFlip = TRUE), + ANIMCMD_FRAME(4, 10, .hFlip = TRUE), + ANIMCMD_FRAME(8, 10, .hFlip = TRUE), + ANIMCMD_FRAME(12, 10, .hFlip = TRUE), + ANIMCMD_FRAME(16, 26, .hFlip = TRUE), + ANIMCMD_FRAME(16, 5, .hFlip = TRUE), + ANIMCMD_FRAME(20, 5, .hFlip = TRUE), + ANIMCMD_FRAME(24, 15, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592BF4[] = +{ + gUnknown_08592BAC, + gUnknown_08592BD0, +}; + +const struct SpriteTemplate gUnknown_08592BFC = +{ + .tileTag = ANIM_TAG_UNUSED_BUBBLE_BURST, + .paletteTag = ANIM_TAG_UNUSED_BUBBLE_BURST, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08592BF4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101440, +}; + +const union AnimCmd gUnknown_08592C14[] = +{ + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592C1C[] = +{ + gUnknown_08592C14, +}; + +const union AffineAnimCmd gUnknown_08592C20[] = +{ + AFFINEANIMCMD_FRAME(0x14, 0x14, -30, 0), + AFFINEANIMCMD_FRAME(0x8, 0x8, 1, 24), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08592C20_2[] = +{ + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 24), + AFFINEANIMCMD_LOOP(10), +}; + +const union AffineAnimCmd gUnknown_08592C50[] = +{ + AFFINEANIMCMD_FRAME(0x14, 0x14, 30, 0), + AFFINEANIMCMD_FRAME(0x8, 0x8, -1, 24), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08592C50_2[] = +{ + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 24), + AFFINEANIMCMD_LOOP(10), +}; + +const union AffineAnimCmd *const gUnknown_08592C80[] = +{ + gUnknown_08592C20, + gUnknown_08592C50, +}; + +const struct SpriteTemplate gUnknown_08592C88 = +{ + .tileTag = ANIM_TAG_LETTER_Z, + .paletteTag = ANIM_TAG_LETTER_Z, + .oam = &gUnknown_08524974, + .anims = gUnknown_08592C1C, + .images = NULL, + .affineAnims = gUnknown_08592C80, + .callback = sub_81014F4, +}; + +const struct SpriteTemplate gUnknown_08592CA0 = +{ + .tileTag = ANIM_TAG_LOCK_ON, + .paletteTag = ANIM_TAG_LOCK_ON, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81015AC, +}; + +const struct SpriteTemplate gUnknown_08592CB8 = +{ + .tileTag = ANIM_TAG_LOCK_ON, + .paletteTag = ANIM_TAG_LOCK_ON, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101898, +}; + +const s8 gUnknown_08592CD0[][2] = +{ + { 64, 64}, + { 0, -64}, + {-64, 64}, + { 32, -32}, +}; + +const struct SpriteTemplate gUnknown_08592CD8 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101940, +}; + +const struct SpriteTemplate gUnknown_08592CF0 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101B90, +}; + +const union AnimCmd gUnknown_08592D08[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592D1C[] = +{ + ANIMCMD_FRAME(48, 4), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592D24[] = +{ + gUnknown_08592D08, + gUnknown_08592D1C, +}; + +const struct SpriteTemplate gUnknown_08592D2C = +{ + .tileTag = ANIM_TAG_SLASH, + .paletteTag = ANIM_TAG_SLASH, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592D24, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101F40, +}; + +const struct SpriteTemplate gUnknown_08592D44 = +{ + .tileTag = ANIM_TAG_SLASH_2, + .paletteTag = ANIM_TAG_SLASH_2, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592D24, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101FA8, +}; + +const struct SpriteTemplate gUnknown_08592D5C = +{ + .tileTag = ANIM_TAG_SLASH_2, + .paletteTag = ANIM_TAG_SLASH_2, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592D24, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101FF0, +}; + +const union AnimCmd gUnknown_08592D74[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(8, 12), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(24, 4), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592D88[] = +{ + gUnknown_08592D74, +}; + +const struct SpriteTemplate gUnknown_08592D8C = +{ + .tileTag = ANIM_TAG_FOCUS_ENERGY, + .paletteTag = ANIM_TAG_FOCUS_ENERGY, + .oam = &gUnknown_08524954, + .anims = gUnknown_08592D88, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81020D8, +}; + +const union AnimCmd gUnknown_08592DA4[] = +{ + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(16, 18), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(16, 6), + ANIMCMD_FRAME(32, 18), + ANIMCMD_FRAME(16, 6), + ANIMCMD_FRAME(32, 6), + ANIMCMD_FRAME(48, 18), + ANIMCMD_FRAME(32, 6), + ANIMCMD_FRAME(48, 6), + ANIMCMD_FRAME(64, 18), + ANIMCMD_FRAME(48, 6), + ANIMCMD_FRAME(64, 54), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592DE0[] = +{ + gUnknown_08592DA4, +}; + +const struct SpriteTemplate gUnknown_08592DE4 = +{ + .tileTag = ANIM_TAG_SPHERE_TO_CUBE, + .paletteTag = ANIM_TAG_SPHERE_TO_CUBE, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592DE0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810217C, +}; + +const struct SpriteTemplate gUnknown_08592DFC = +{ + .tileTag = ANIM_TAG_BLACK_BALL, + .paletteTag = ANIM_TAG_BLACK_BALL, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation, +}; + +const union AnimCmd gUnknown_08592E14[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592E2C[] = +{ + gUnknown_08592E14, +}; + +const struct SpriteTemplate gUnknown_08592E30 = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_GRAY_SMOKE, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592E2C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A77C8, +}; + +const union AnimCmd gUnknown_08592E48[] = +{ + ANIMCMD_FRAME(3, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592E5C[] = +{ + gUnknown_08592E48, +}; + +const union AffineAnimCmd gUnknown_08592E60[] = +{ + AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08592E70[] = +{ + gUnknown_08592E60, +}; + +const struct SpriteTemplate gUnknown_08592E74 = +{ + .tileTag = ANIM_TAG_CONVERSION, + .paletteTag = ANIM_TAG_CONVERSION, + .oam = &gUnknown_08524AE4, + .anims = gUnknown_08592E5C, + .images = NULL, + .affineAnims = gUnknown_08592E70, + .callback = sub_8102268, +}; + +const union AnimCmd gUnknown_08592E8C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(3, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592EA0[] = +{ + gUnknown_08592E8C, +}; + +const struct SpriteTemplate gUnknown_08592EA4 = +{ + .tileTag = ANIM_TAG_CONVERSION, + .paletteTag = ANIM_TAG_CONVERSION, + .oam = &gUnknown_08524AE4, + .anims = gUnknown_08592EA0, + .images = NULL, + .affineAnims = gUnknown_08592E70, + .callback = sub_810234C, +}; + +const struct SpriteTemplate gUnknown_08592EBC = +{ + .tileTag = ANIM_TAG_MOON, + .paletteTag = ANIM_TAG_MOON, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81024E0, +}; + +const union AnimCmd gUnknown_08592ED4[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(8, 8), + ANIMCMD_FRAME(12, 8), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_08592EE8[] = +{ + gUnknown_08592ED4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8592EEC = +{ + .tileTag = ANIM_TAG_GREEN_SPARKLE, + .paletteTag = ANIM_TAG_GREEN_SPARKLE, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08592EE8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8102540, +}; + +const union AnimCmd gUnknown_08592F04[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 5), + ANIMCMD_FRAME(80, 3), + ANIMCMD_FRAME(96, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592F28[] = +{ + gUnknown_08592F04, +}; + +const struct SpriteTemplate gUnknown_08592F2C = +{ + .tileTag = ANIM_TAG_BLUE_STAR, + .paletteTag = ANIM_TAG_BLUE_STAR, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592F28, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A77C8, +}; + +const struct SpriteTemplate gUnknown_08592F44 = +{ + .tileTag = ANIM_TAG_HORN_HIT, + .paletteTag = ANIM_TAG_HORN_HIT, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8102844, +}; + +const union AnimCmd gUnknown_08592F5C[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592F70[] = +{ + gUnknown_08592F5C, +}; + +const struct SpriteTemplate gUnknown_08592F74 = +{ + .tileTag = ANIM_TAG_FANG_ATTACK, + .paletteTag = ANIM_TAG_FANG_ATTACK, + .oam = &gUnknown_08524914, + .anims = gUnknown_08592F70, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8102BCC, +}; + +const union AnimCmd gUnknown_08592F8C[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592F94[] = +{ + ANIMCMD_FRAME(4, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592F9C[] = +{ + ANIMCMD_FRAME(8, 41), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592FA4[] = +{ + ANIMCMD_FRAME(12, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592FAC[] = +{ + ANIMCMD_FRAME(16, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592FB4[] = +{ + ANIMCMD_FRAME(20, 10), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592FBC[] = +{ + ANIMCMD_FRAME(0, 10, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08592FC4[] = +{ + ANIMCMD_FRAME(4, 10, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08592FCC[] = +{ + gUnknown_08592F8C, + gUnknown_08592F94, + gUnknown_08592F9C, + gUnknown_08592FA4, + gUnknown_08592FAC, + gUnknown_08592FB4, + gUnknown_08592FBC, + gUnknown_08592FC4, +}; + +const union AffineAnimCmd gUnknown_08592FEC[] = +{ + AFFINEANIMCMD_FRAME(0xC, 0xC, 0, 16), + AFFINEANIMCMD_FRAME(0xFFF4, 0xFFF4, 0, 16), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08593004[] = +{ + gUnknown_08592FEC, +}; + +const struct SpriteTemplate gUnknown_08593008 = +{ + .tileTag = ANIM_TAG_MUSIC_NOTES, + .paletteTag = ANIM_TAG_MUSIC_NOTES, + .oam = &gUnknown_085249CC, + .anims = gUnknown_08592FCC, + .images = NULL, + .affineAnims = gUnknown_08593004, + .callback = sub_8102CD4, +}; + +const u16 gUnknown_08593020[][6] = +{ + {ANIM_TAG_MUSIC_NOTES, RGB(31, 31, 31), RGB(31, 26, 28), RGB(31, 22, 26), RGB(31, 17, 24), RGB(31, 13, 22)}, + {ANIM_TAG_BENT_SPOON, RGB(31, 31, 31), RGB(25, 31, 26), RGB(20, 31, 21), RGB(15, 31, 16), RGB(10, 31, 12)}, + {ANIM_TAG_SPHERE_TO_CUBE, RGB(31, 31, 31), RGB(31, 31, 24), RGB(31, 31, 17), RGB(31, 31, 10), RGB(31, 31, 3)}, + {ANIM_TAG_LARGE_FRESH_EGG, RGB(31, 31, 31), RGB(26, 28, 31), RGB(21, 26, 31), RGB(16, 24, 31), RGB(12, 22, 31)}, +}; + +const struct SpriteTemplate gUnknown_08593050 = +{ + .tileTag = ANIM_TAG_MUSIC_NOTES, + .paletteTag = ANIM_TAG_MUSIC_NOTES, + .oam = &gUnknown_085249CC, + .anims = gUnknown_08592FCC, + .images = NULL, + .affineAnims = gUnknown_08593004, + .callback = sub_8102EB0, +}; + +const struct SpriteTemplate gUnknown_08593068 = +{ + .tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE, + .paletteTag = ANIM_TAG_PURPLE_HAND_OUTLINE, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8102FB8, +}; + +const union AffineAnimCmd gUnknown_08593080[] = +{ + AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gUnknown_08593098[] = +{ + gUnknown_08593080, +}; + +const struct SpriteTemplate gUnknown_0859309C = +{ + .tileTag = ANIM_TAG_MUSIC_NOTES, + .paletteTag = ANIM_TAG_MUSIC_NOTES, + .oam = &gUnknown_085249CC, + .anims = gUnknown_08592FCC, + .images = NULL, + .affineAnims = gUnknown_08593098, + .callback = sub_8103028, +}; + +const union AnimCmd gUnknown_085930B4[] = +{ + ANIMCMD_FRAME(0, 2, .hFlip = TRUE), + ANIMCMD_FRAME(16, 2, .hFlip = TRUE), + ANIMCMD_FRAME(32, 2, .hFlip = TRUE), + ANIMCMD_FRAME(48, 2, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085930C8[] = +{ + ANIMCMD_FRAME(48, 2, .hFlip = TRUE), + ANIMCMD_FRAME(32, 2, .hFlip = TRUE), + ANIMCMD_FRAME(16, 2, .hFlip = TRUE), + ANIMCMD_FRAME(0, 2, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085930DC[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085930F0[] = +{ + ANIMCMD_FRAME(48, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08593104[] = +{ + gUnknown_085930B4, + gUnknown_085930DC, + gUnknown_085930C8, + gUnknown_085930F0, +}; + +const struct SpriteTemplate gUnknown_08593114 = +{ + .tileTag = ANIM_TAG_THOUGHT_BUBBLE, + .paletteTag = ANIM_TAG_THOUGHT_BUBBLE, + .oam = &gUnknown_08524914, + .anims = gUnknown_08593104, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8103164, +}; + +const union AffineAnimCmd gUnknown_0859312C[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_FRAME(0x1E, 0x1E, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08593144[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 11), + AFFINEANIMCMD_FRAME(0x0, 0x0, -4, 11), + AFFINEANIMCMD_LOOP(2), + AFFINEANIMCMD_FRAME(0xFFE2, 0xFFE2, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08593144_2[] = +{ + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(30, 30, 0, 8), + AFFINEANIMCMD_FRAME(0, 0, 0, 16), + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0, 0, 4, 11), + AFFINEANIMCMD_FRAME(0, 0, -4, 11), + AFFINEANIMCMD_LOOP(2), + AFFINEANIMCMD_FRAME(-30, -30, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085931B4[] = +{ + gUnknown_0859312C, + gUnknown_08593144, +}; + +const struct SpriteTemplate gUnknown_085931BC = +{ + .tileTag = ANIM_TAG_FINGER, + .paletteTag = ANIM_TAG_FINGER, + .oam = &gUnknown_085249D4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_085931B4, + .callback = sub_8103208, +}; + +const struct SpriteTemplate gUnknown_085931D4 = +{ + .tileTag = ANIM_TAG_FINGER, + .paletteTag = ANIM_TAG_FINGER, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_085931B4, + .callback = sub_8103284, +}; + +const union AnimCmd gUnknown_085931EC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085931F4[] = +{ + ANIMCMD_FRAME(0, 1, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085931FC[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859321C[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(16, 4, .hFlip = TRUE), + ANIMCMD_FRAME(32, 4, .hFlip = TRUE), + ANIMCMD_FRAME(16, 4, .hFlip = TRUE), + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(16, 4, .hFlip = TRUE), + ANIMCMD_FRAME(32, 4, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_0859323C[] = +{ + gUnknown_085931EC, + gUnknown_085931F4, + gUnknown_085931FC, + gUnknown_0859321C, +}; + +const struct SpriteTemplate gUnknown_0859324C = +{ + .tileTag = ANIM_TAG_FINGER_2, + .paletteTag = ANIM_TAG_FINGER_2, + .oam = &gUnknown_08524914, + .anims = gUnknown_0859323C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8103390, +}; + +// Animates the falling particles that horizontally wave back and forth. +// Used by Sleep Powder, Stun Spore, and Poison Powder. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: total duration in frames +// arg 3: vertical movement speed (sub-pixel value) +// arg 4: wave amplitude +// arg 5: wave speed +void AnimMovePowderParticle(struct Sprite* sprite) +{ + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + + if (GetBattlerSide(gBattleAnimAttacker)) + { + sprite->data[3] = -gBattleAnimArgs[4]; + } + else + { + sprite->data[3] = gBattleAnimArgs[4]; + } + + sprite->data[4] = gBattleAnimArgs[5]; + sprite->callback = AnimMovePowderParticleStep; +} + +static void AnimMovePowderParticleStep(struct Sprite* sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + sprite->pos2.y = sprite->data[2] >> 8; + sprite->data[2] += sprite->data[1]; + sprite->pos2.x = Sin(sprite->data[5], sprite->data[3]); + sprite->data[5] = (sprite->data[5] + sprite->data[4]) & 0xFF; + } + else + { + DestroyAnimSprite(sprite); + } +} + +void sub_80FE8E0(struct Sprite* sprite) +{ + InitAnimSpritePos(sprite, 1); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); +} + +void sub_80FE930(struct Sprite* sprite) +{ + InitAnimSpritePos(sprite, 1); + StartSpriteAnim(sprite, gBattleAnimArgs[3]); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_80FE988(struct Sprite* sprite) +{ + InitAnimSpritePos(sprite, 1); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + InitAnimLinearTranslation(sprite); + sprite->data[5] = gBattleAnimArgs[3]; + sprite->callback = sub_80FE9E4; + sprite->callback(sprite); +} + +static void sub_80FE9E4(struct Sprite* sprite) +{ + if (TranslateAnimLinear(sprite)) + { + DestroySprite(sprite); + } + else + { + if (sprite->data[5] > 0x7F) + sprite->subpriority = sub_80A82E4(gBattleAnimTarget) + 1; + else + sprite->subpriority = sub_80A82E4(gBattleAnimTarget) + 6; + + sprite->pos2.x += Sin(sprite->data[5], 5); + sprite->pos2.y += Cos(sprite->data[5], 14); + sprite->data[5] = (sprite->data[5] + 15) & 0xFF; + } +} + +void sub_80FEA58(u8 taskId) +{ + gTasks[taskId].data[0]--; + if (gTasks[taskId].data[0] == -1) + { + gTasks[taskId].data[1]++; + gTasks[taskId].data[0] = 6; + gBattleAnimArgs[0] = 15; + gBattleAnimArgs[1] = 0; + gBattleAnimArgs[2] = 80; + gBattleAnimArgs[3] = 0; + CreateSpriteAndAnimate(&gUnknown_08592210, 0, 0, sub_80A82E4(gBattleAnimTarget) + 1); + } + + if (gTasks[taskId].data[1] == 15) + DestroyAnimVisualTask(taskId); +} + +void sub_80FEAD8(struct Sprite* sprite) +{ + sub_80A6980(sprite, TRUE); + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[5] = gBattleAnimArgs[2]; + InitAnimArcTranslation(sprite); + sprite->callback = sub_80FEB28; +} + +static void sub_80FEB28(struct Sprite* sprite) +{ + if (TranslateAnimArc(sprite)) + DestroyAnimSprite(sprite); +} + +void sub_80FEB44(struct Sprite* sprite) +{ + u16 a = Random2(); + u16 b; + + StartSpriteAnim(sprite, a & 7); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + if (GetBattlerSide(gBattleAnimAttacker)) + { + sprite->pos1.x -= 20; + } + else + { + sprite->pos1.x += 20; + } + + b = Random2(); + sprite->data[0] = (b & 31) + 64; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sub_80A7160(sprite); + sprite->data[5] = Random2() & 0xFF; + sprite->data[6] = sprite->subpriority; + sprite->callback = sub_80FEBFC; + sprite->callback(sprite); +} + +static void sub_80FEBFC(struct Sprite* sprite) +{ + if (sub_80A70E8(sprite)) + { + DestroyAnimSprite(sprite); + } + else + { + sprite->pos2.y += Cos(sprite->data[5], 12); + if (sprite->data[5] < 0x7F) + sprite->subpriority = sprite->data[6]; + else + sprite->subpriority = sprite->data[6] + 1; + + sprite->data[5] = (sprite->data[5] + 24) & 0xFF; + } +} + +// seed (sprouts a sapling from a seed.) +// Used by Leech Seed. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: wave amplitude +void AnimLeechSeed(struct Sprite* sprite) +{ + InitAnimSpritePos(sprite, 1); + if (GetBattlerSide(gBattleAnimAttacker)) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[3]; + sprite->data[5] = gBattleAnimArgs[5]; + InitAnimArcTranslation(sprite); + sprite->callback = AnimLeechSeedStep; +} + +static void AnimLeechSeedStep(struct Sprite* sprite) +{ + if (TranslateAnimArc(sprite)) + { + sprite->invisible = 1; + sprite->data[0] = 10; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, AnimLeechSeedSprouts); + } +} + +static void AnimLeechSeedSprouts(struct Sprite* sprite) +{ + sprite->invisible = 0; + StartSpriteAnim(sprite, 1); + sprite->data[0] = 60; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_80FED28(struct Sprite* sprite) +{ + sub_80A6980(sprite, TRUE); + StartSpriteAnim(sprite, gBattleAnimArgs[4]); + if (gBattleAnimArgs[4] == 1) + sprite->oam.objMode = ST_OAM_OBJ_BLEND; + + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[1] = gBattleAnimArgs[2]; + sprite->callback = sub_80FED74; + sprite->callback(sprite); +} + +static void sub_80FED74(struct Sprite* sprite) +{ + sprite->pos2.x = Sin(sprite->data[1], 32); + sprite->pos2.y = Cos(sprite->data[1], -3) + ((sprite->data[2] += 24) >> 8); + if ((u16)(sprite->data[1] - 0x40) < 0x80) + { + sprite->oam.priority = (sub_80A8328(gBattleAnimTarget) & 3); + } + else + { + u8 priority = sub_80A8328(gBattleAnimTarget) + 1; + if (priority > 3) + priority = 3; + + sprite->oam.priority = priority; + } + + sprite->data[1] = (sprite->data[1] + 2) & 0xFF; + if (--sprite->data[0] == -1) + DestroyAnimSprite(sprite); +} + +void sub_80FEE1C(u8 taskId) +{ + if (IsContest() || !IsDoubleBattle()) + { + DestroyAnimVisualTask(taskId); + } + else + { + if (sub_80A8364(gBattleAnimTarget) == 1) + SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 3); + else + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); + + DestroyAnimVisualTask(taskId); + } +} + +void sub_80FEE78(struct Sprite* sprite) +{ + InitAnimSpritePos(sprite, 0); + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + InitAnimLinearTranslation(sprite); + sprite->data[5] = 0x40; + sprite->callback = sub_80FEECC; + sprite->callback(sprite); +} + +static void sub_80FEECC(struct Sprite* sprite) +{ + if (!TranslateAnimLinear(sprite)) + { + sprite->pos2.x += Sin(sprite->data[5], 32); + sprite->pos2.y += Cos(sprite->data[5], -5); + if ((u16)(sprite->data[5] - 0x40) < 0x80) + sprite->subpriority = sub_80A82E4(gBattleAnimAttacker) - 1; + else + sprite->subpriority = sub_80A82E4(gBattleAnimAttacker) + 1; + + sprite->data[5] = (sprite->data[5] + 5) & 0xFF; + } + else + { + DestroyAnimSprite(sprite); + } +} + +void sub_80FEF44(struct Sprite* sprite) +{ + InitAnimSpritePos(sprite, 1); + sprite->data[0] = gBattleAnimArgs[3]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + InitAnimLinearTranslation(sprite); + sprite->data[5] = 0x40; + sprite->callback = sub_80FEF98; + sprite->callback(sprite); +} + +static void sub_80FEF98(struct Sprite* sprite) +{ + if (!TranslateAnimLinear(sprite)) + { + sprite->pos2.x += Sin(sprite->data[5], 8); + if ((u16)(sprite->data[5] - 59) < 5 || (u16)(sprite->data[5] - 187) < 5) + sprite->oam.matrixNum ^= 0x8; + + sprite->data[5] = (sprite->data[5] + 5) & 0xFF; + } + else + { + DestroyAnimSprite(sprite); + } +} + +void sub_80FEFFC(struct Sprite* sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[1] = gBattleAnimArgs[1]; + sprite->data[2] = gBattleAnimArgs[2]; + sprite->callback = sub_80FF044; +} + +static void sub_80FF044(struct Sprite* sprite) +{ + if (!sprite->data[2]) + { + if (sprite->data[1] & 1) + { + sprite->data[0] = 0x80; + sprite->data[1] = 0; + sprite->data[2] = 0; + } + else + { + sprite->data[0] = sprite->data[1] & 1; + sprite->data[1] = sprite->data[1] & 1; + sprite->data[2] = sprite->data[1] & 1; + } + sprite->callback = sub_80FF090; + } + else + { + sprite->data[2]--; + sprite->pos1.x += sprite->data[0]; + sprite->pos1.y += sprite->data[1]; + } +} + +static void sub_80FF090(struct Sprite* sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker)) + sprite->pos2.x = -Sin(sprite->data[0], 25); + else + sprite->pos2.x = Sin(sprite->data[0], 25); + + sprite->data[0] = (sprite->data[0] + 2) & 0xFF; + sprite->data[1]++; + if (!(sprite->data[1] & 1)) + sprite->pos2.y++; + + if (sprite->data[1] > 80) + DestroyAnimSprite(sprite); +} + +// Animates a sprite that moves linearly from one location to another, with a +// single-cycle sine wave added to the y position along the way. +// Used by Razor Leaf and Magical Leaf. +// arg 0: initial x offset +// arg 1: initial y offset +// arg 2: target x offset +// arg 3: target y offset +// arg 4: translation duration +// arg 5: wave amplitude +// arg 6: target between double battle opponents (boolean) +void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) +{ + InitAnimSpritePos(sprite, 1); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->data[0] = gBattleAnimArgs[4]; + if (!gBattleAnimArgs[6]) + { + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + } + else + { + SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); + sprite->data[2] += gBattleAnimArgs[2]; + sprite->data[4] += gBattleAnimArgs[3]; + } + + sprite->data[5] = gBattleAnimArgs[5]; + InitAnimArcTranslation(sprite); + if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) + sprite->data[0] = 1; + else + sprite->data[0] = 0; + + sprite->callback = AnimTranslateLinearSingleSineWaveStep; +} + +static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) +{ + bool8 destroy = FALSE; + s16 a = sprite->data[0]; + s16 b = sprite->data[7]; + s16 r0; + + sprite->data[0] = 1; + TranslateAnimArc(sprite); + r0 = sprite->data[7]; + sprite->data[0] = a; + if (b > 200 && r0 < 56 && sprite->oam.affineParam == 0) + sprite->oam.affineParam++; + + if (sprite->oam.affineParam && sprite->data[0]) + { + sprite->invisible ^= 1; + sprite->oam.affineParam++; + 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 + || sprite->pos1.y + sprite->pos2.y < -16) + destroy = TRUE; + + if (destroy) + DestroyAnimSprite(sprite); +} + +// Animates particles in the Twister move animation. +// arg 0: duration +// arg 1: total y delta (the particles rise upward) +// arg 2: wave period (higher means faster wave) +// arg 3: wave amplitude +// arg 4: speedup frame (particles move faster at the end of the animation) +void AnimMoveTwisterParticle(struct Sprite* sprite) +{ + if (IsDoubleBattle() == TRUE) + SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->pos1.x, &sprite->pos1.y); + + sprite->pos1.y += 32; + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[1] = gBattleAnimArgs[1]; + sprite->data[2] = gBattleAnimArgs[2]; + sprite->data[3] = gBattleAnimArgs[3]; + sprite->data[4] = gBattleAnimArgs[4]; + sprite->callback = AnimMoveTwisterParticleStep; +} + +static void AnimMoveTwisterParticleStep(struct Sprite* sprite) +{ + if (sprite->data[1] == 0xFF) + { + sprite->pos1.y -= 2; + } + else if (sprite->data[1] > 0) + { + sprite->pos1.y -= 2; + sprite->data[1] -= 2; + } + + sprite->data[5] += sprite->data[2]; + if (sprite->data[0] < sprite->data[4]) + sprite->data[5] += sprite->data[2]; + + sprite->data[5] &= 0xFF; + sprite->pos2.x = Cos(sprite->data[5], sprite->data[3]); + sprite->pos2.y = Sin(sprite->data[5], 5); + if (sprite->data[5] < 0x80) + sprite->oam.priority = sub_80A8328(gBattleAnimTarget) - 1; + else + sprite->oam.priority = sub_80A8328(gBattleAnimTarget) + 1; + + if (--sprite->data[0] == 0) + DestroyAnimSprite(sprite); +} + +void sub_80FF374(struct Sprite* sprite) +{ + sub_80A6980(sprite, FALSE); + sprite->affineAnimPaused = 1; + StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); + sprite->data[6] = gBattleAnimArgs[2]; + sprite->data[7] = gBattleAnimArgs[3]; + sprite->callback = sub_80FF3B0; +} + +static void sub_80FF3B0(struct Sprite* sprite) +{ + if ((u16)gBattleAnimArgs[7] == 0xFFFF) + { + sprite->affineAnimPaused = 0; + GetAnimBattlerSpriteId(1); + sprite->data[0] = 0x100; + sprite->callback = sub_80FF3EC; + } +} + +static void sub_80FF3EC(struct Sprite* sprite) +{ + GetAnimBattlerSpriteId(1); + if (!sprite->data[2]) + sprite->data[0] += 11; + else + sprite->data[0] -= 11; + + if (++sprite->data[1] == 6) + { + sprite->data[1] = 0; + sprite->data[2] ^= 1; + } + + if (sprite->affineAnimEnded) + { + if (--sprite->data[7] > 0) + StartSpriteAffineAnim(sprite, sprite->data[6]); + else + DestroyAnimSprite(sprite); + } +} + +void sub_80FF458(u8 taskId) +{ + u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + if (gSprites[spriteId].invisible) + { + DestroyAnimVisualTask(taskId); + } + else + { + sub_80A7270(spriteId, 1); + gTasks[taskId].data[14] = gSprites[spriteId].oam.priority; + gSprites[spriteId].oam.priority = sub_80A8328(gBattleAnimTarget); + spriteId = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); + gTasks[taskId].data[15] = gSprites[spriteId].oam.priority; + gSprites[spriteId].oam.priority = sub_80A8328(BATTLE_PARTNER(gBattleAnimTarget)); + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[11] = 256; + gTasks[taskId].func = sub_80FF53C; + } +} + +static void sub_80FF53C(u8 taskId) +{ + u8 spriteId = GetAnimBattlerSpriteId(1); + gTasks[taskId].data[10] += gTasks[taskId].data[0]; + gSprites[spriteId].pos2.x = gTasks[taskId].data[10] >> 8; + if (GetBattlerSide(gBattleAnimTarget)) + gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x; + + gTasks[taskId].data[11] += 16; + obj_id_set_rotscale(spriteId, gTasks[taskId].data[11], gTasks[taskId].data[11], 0); + sub_80A7E6C(spriteId); + if (--gTasks[taskId].data[1] == 0) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_80FF5CC; + } +} + +static void sub_80FF5CC(u8 taskId) +{ + if ((u16)gBattleAnimArgs[7] == 0xFFFF) + { + if (gTasks[taskId].data[0] == 0) + { + u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); + sub_80A7344(spriteId); + gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].pos2.y = 0; + gSprites[spriteId].oam.priority = gTasks[taskId].data[14]; + spriteId = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); + gSprites[spriteId].oam.priority = gTasks[taskId].data[15]; + gTasks[taskId].data[0]++; + return; + } + } + else + { + if (gTasks[taskId].data[0] == 0) + return; + } + + gTasks[taskId].data[0]++; + if (gTasks[taskId].data[0] == 3) + DestroyAnimVisualTask(taskId); +} + +void sub_80FF698(struct Sprite* sprite) +{ + switch (sprite->data[0]) + { + case 0: + { + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + gBattleAnimArgs[0] *= -1; + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1]; + sprite->invisible = 1; + sprite->data[0]++; + break; + } + case 1: + { + sprite->invisible = 0; + if (sprite->affineAnimEnded) + { + ChangeSpriteAffineAnim(sprite, 1); + sprite->data[0] = 25; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->callback = sub_80A70C0; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + break; + } + } + } +} + +void sub_80FF768(struct Sprite* sprite) +{ + if (!sprite->data[0]) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->pos2.x = gBattleAnimArgs[0]; + sprite->pos2.y = gBattleAnimArgs[1]; + sprite->subpriority = gBattleAnimArgs[2] + 30; + StartSpriteAnim(sprite, gBattleAnimArgs[3]); + sprite->data[2] = gBattleAnimArgs[4]; + sprite->data[0]++; + if (sprite->pos1.y + sprite->pos2.y > 120) + sprite->pos1.y += sprite->pos2.y + sprite->pos1.y - 120; + } + sprite->callback = sub_80FF8DC; +} + +void sub_80FF7EC(struct Sprite *sprite) +{ + s16 p1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + s16 p2 = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + s16 e1 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + s16 e2 = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + + e1 -= p1; + e2 -= p2; + sprite->pos1.x = p1 + e1 * gBattleAnimArgs[0] / 100; + sprite->pos1.y = p2 + e2 * gBattleAnimArgs[0] / 100; + sprite->pos2.x = gBattleAnimArgs[1]; + sprite->pos2.y = gBattleAnimArgs[2]; + sprite->subpriority = gBattleAnimArgs[3] + 30; + StartSpriteAnim(sprite, gBattleAnimArgs[4]); + sprite->data[2] = gBattleAnimArgs[5]; + sprite->callback = sub_80FF8DC; + gUnknown_0203A0F8[0] = sprite->pos1.x; + gUnknown_0203A0F8[1] = sprite->pos1.y; + gUnknown_0203A0F8[2] = e1; + gUnknown_0203A0F8[3] = e2; +} + +static void sub_80FF8DC(struct Sprite* sprite) +{ + if (++sprite->data[0] > (sprite->data[2] - 10)) + sprite->invisible = sprite->data[0] % 2; + + if (sprite->data[0] > sprite->data[2]) + DestroyAnimSprite(sprite); +} + +void sub_80FF934(struct Sprite* sprite) +{ + if (!sprite->data[0]) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + sprite->data[1] = gBattleAnimArgs[2]; + sprite->data[2] = gBattleAnimArgs[3]; + sprite->data[3] = gBattleAnimArgs[4]; + } + + sprite->data[0]++; + sprite->pos2.x = sprite->data[1] * sprite->data[0]; + sprite->pos2.y = Sin((sprite->data[0] * 20) & 0xFF, sprite->data[2]); + if (sprite->data[0] > sprite->data[3]) + DestroyAnimSprite(sprite); +} + +void sub_80FF9B8(struct Sprite* sprite, s16 c) +{ + s32 a = (sprite->pos1.x * 256) | sprite->pos1.y; + s32 b = (sprite->data[6] * 256) | sprite->data[7]; + c *= 256; + sprite->data[5] = a; + sprite->data[6] = b; + sprite->data[7] = c; +} + +bool8 sub_80FF9E0(struct Sprite* sprite) +{ + u16 r10 = (u8)(sprite->data[5] >> 8); + u16 r9 = (u8)sprite->data[5]; + s32 r2 = (u8)(sprite->data[6] >> 8); + s32 r4 = (u8)sprite->data[6]; + s16 r6 = sprite->data[7] >> 8; + s16 r3 = sprite->data[7] & 0xFF; + s16 r4_2; + s16 r0; + s32 var1; + s32 var2; + + if (r2 == 0) + r2 = -32; + else if (r2 == 255) + r2 = 272; + + r4_2 = r4 - r9; + r0 = r2 - r10; + var1 = r0 * r3 / r6; + var2 = r4_2 * r3 / r6; + sprite->pos1.x = var1 + r10; + sprite->pos1.y = var2 + r9; + if (++r3 == r6) + return TRUE; + + sprite->data[7] = (r6 << 8) | r3; + return FALSE; +} + +void sub_80FFA84(struct Sprite* sprite) +{ + if (sprite->data[0] == 10) + StartSpriteAffineAnim(sprite, 1); + + sprite->data[0]++; + if (sprite->data[0] > 50) + DestroyAnimSprite(sprite); +} + +static void sub_80FFAB4(struct Sprite* sprite) +{ + sprite->data[0] += sprite->data[3] * 128 / sprite->data[4]; + if (sprite->data[0] >= 128) + { + sprite->data[1]++; + sprite->data[0] = 0; + } + + sprite->pos2.y = Sin(sprite->data[0] + 128, 30 - sprite->data[1] * 8); + if (sub_80FF9E0(sprite)) + { + sprite->pos2.y = 0; + sprite->data[0] = 0; + sprite->callback = sub_80FFA84; + } +} + +void sub_80FFB18(struct Sprite* sprite) +{ + s16 e1; + s16 e2; + InitAnimSpritePos(sprite, 0); + e1 = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + e2 = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget) + { + sprite->data[6] = e1; + sprite->data[7] = e2 + 10; + sub_80FF9B8(sprite, 60); + sprite->data[3] = 1; + } + else + { + sprite->data[6] = e1; + sprite->data[7] = e2 + 10; + sub_80FF9B8(sprite, 60); + sprite->data[3] = 3; + } + + sprite->data[4] = 60; + sprite->callback = sub_80FFAB4; +} + +static void sub_80FFB90(struct Sprite* sprite) +{ + int zero; + sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); + zero = 0; + if (sprite->data[0] > 0x7F) + { + sprite->data[1]++; + sprite->data[0] = zero; + } + + sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); + if (sub_80FF9E0(sprite)) + { + sprite->pos2.y = zero; + sprite->data[0] = zero; + DestroyAnimSprite(sprite); + } +} + +void sub_80FFBF4(struct Sprite* sprite) +{ + s16 e = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + { + sprite->data[6] = 0; + sprite->data[7] = e + 10; + sub_80FF9B8(sprite, 40); + sprite->data[3] = 3; + sprite->data[4] = 0x3C; + sprite->callback = sub_80FFAB4; + } + else + { + sprite->data[6] = 255; + sprite->data[7] = e + 10; + if (IsContest()) + sprite->data[6] = 0; + + sub_80FF9B8(sprite, 40); + sprite->data[3] = 3; + sprite->data[4] = 0x3C; + sprite->callback = sub_80FFB90; + } +} + +void sub_80FFC70(struct Sprite* sprite) +{ + if (sprite->data[0] == 0) + { + sub_80A6980(sprite, FALSE); + sprite->data[1] = gBattleAnimArgs[2]; + } + + sprite->data[0]++; + sprite->pos2.y = sprite->data[1] * sprite->data[0]; + if (sprite->animEnded) + DestroyAnimSprite(sprite); +} + +void sub_80FFCB4(struct Sprite* sprite) +{ + s16 p1; + s16 p2; + sub_80A6980(sprite, FALSE); + p1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + p2 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + if (BATTLE_PARTNER(gBattleAnimTarget) == gBattleAnimAttacker) + { + sprite->data[6] = p1; + sprite->data[7] = p2 + 10; + sub_80FF9B8(sprite, 60); + sprite->data[3] = 1; + } + else + { + sprite->data[6] = p1; + sprite->data[7] = p2 + 10; + sub_80FF9B8(sprite, 60); + sprite->data[3] = 3; + } + + sprite->data[4] = 60; + sprite->callback = sub_80FFD2C; +} + +static void sub_80FFD2C(struct Sprite* sprite) +{ + int zero; + sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); + zero = 0; + if (sprite->data[0] > 127) + { + sprite->data[1]++; + sprite->data[0] = zero; + } + + sprite->pos2.y = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); + if (sprite->pos2.y == 0) + PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(63)); + + if (sub_80FF9E0(sprite)) + { + sprite->pos2.y = 0; + sprite->data[0] = 0; + sprite->callback = sub_80FFA84; + PlaySE12WithPanning(SE_W145B, BattleAnimAdjustPanning(-64)); + } +} + +void sub_80FFDBC(struct Sprite* sprite) +{ + int a; + int b; + + if (!sprite->data[0]) + { + if (!IsContest()) + { + sprite->data[1] = gBattleAnimArgs[1]; + sprite->pos1.x = 120; + } + else + { + a = gBattleAnimArgs[1] - 32; + if (a < 0) + b = gBattleAnimArgs[1] + 0xDF; + else + b = a; + + sprite->data[1] = a - ((b >> 8) << 8); + sprite->pos1.x = 70; + } + + sprite->pos1.y = gBattleAnimArgs[0]; + sprite->data[2] = gBattleAnimArgs[0]; + sprite->data[4] = 20; + sprite->pos2.x = Cos(sprite->data[1], 60); + sprite->pos2.y = Sin(sprite->data[1], 20); + sprite->callback = sub_80FFE58; + if (sprite->data[1] > 0 && sprite->data[1] < 192) + sprite->subpriority = 31; + else + sprite->subpriority = 29; + } +} + +static void sub_80FFE58(struct Sprite* sprite) +{ + switch (sprite->data[3]) + { + case 0: + if (sprite->data[2] > 78) + { + sprite->data[3] = 1; + StartSpriteAffineAnim(sprite, 1); + break; + } + else + { + sprite->data[2] += sprite->data[4] / 10; + sprite->data[4] += 3; + sprite->pos1.y = sprite->data[2]; + break; + } + break; + case 1: + if (sprite->data[3] && sprite->affineAnimEnded) + { + sprite->data[0] = 0; + sprite->data[2] = 0; + sprite->callback = sub_80FFEC4; + } + break; + } +} + +static void sub_80FFEC4(struct Sprite* sprite) +{ + if (sprite->data[2] == gUnknown_08592700[sprite->data[0]][1]) + { + if (gUnknown_08592700[sprite->data[0]][2] == 127) + { + sprite->data[0] = 0; + sprite->callback = sub_80FFF7C; + } + + sprite->data[2] = 0; + sprite->data[0]++; + } + else + { + sprite->data[2]++; + sprite->data[1] = (gUnknown_08592700[sprite->data[0]][0] * gUnknown_08592700[sprite->data[0]][2] + sprite->data[1]) & 0xFF; + if (!IsContest()) + { + if ((u16)(sprite->data[1] - 1) < 191) + sprite->subpriority = 31; + else + sprite->subpriority = 29; + } + + sprite->pos2.x = Cos(sprite->data[1], 60); + sprite->pos2.y = Sin(sprite->data[1], 20); + } +} + +static void sub_80FFF7C(struct Sprite* sprite) +{ + if (sprite->data[0] > 20) + DestroyAnimSprite(sprite); + + sprite->invisible = sprite->data[0] % 2; + sprite->data[0]++; +} + +void sub_80FFFC0(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[4] = sub_80A82E4(gBattleAnimTarget) - 1; + task->data[6] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + task->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + task->data[10] = sub_80A861C(gBattleAnimTarget, 1); + task->data[11] = sub_80A861C(gBattleAnimTarget, 0); + task->data[5] = (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) ? 1 : -1; + task->data[9] = 56 - (task->data[5] * 64); + task->data[8] = task->data[7] - task->data[9] + task->data[6]; + task->data[2] = CreateSprite(&gUnknown_08592778, task->data[8], task->data[9], task->data[4]); + if (task->data[2] == MAX_SPRITES) + DestroyAnimVisualTask(taskId); + + gSprites[task->data[2]].data[0] = 10; + gSprites[task->data[2]].data[1] = task->data[8]; + gSprites[task->data[2]].data[2] = task->data[6] - (task->data[10] / 2 + 10) * task->data[5]; + gSprites[task->data[2]].data[3] = task->data[9]; + gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5]; + gSprites[task->data[2]].data[5] = sub_8100504(&gSprites[task->data[2]]); + InitAnimArcTranslation(&gSprites[task->data[2]]); + task->func = sub_8100128; +} + +static void sub_8100128(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + struct Sprite* sprite = &gSprites[task->data[2]]; + int a = task->data[0]; + switch (a) + { + case 4: + sub_8100524(task, taskId); + if (TranslateAnimArc(sprite)) + { + task->data[15] = 5; + task->data[0] = 0xFF; + } + break; + case 8: + sub_8100524(task, taskId); + if (TranslateAnimArc(sprite)) + { + task->data[15] = 9; + task->data[0] = 0xFF; + } + break; + case 0: + sub_8100524(task, taskId); + if (TranslateAnimArc(sprite)) + { + task->data[15] = 1; + task->data[0] = 0xFF; + } + break; + case 1: + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0] = 10; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = task->data[6]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = task->data[7]; + sprite->data[5] = sub_8100504(sprite); + task->data[4] += 2; + task->data[3] = a; + sprite->subpriority = task->data[4]; + StartSpriteAnim(sprite, task->data[3]); + InitAnimArcTranslation(sprite); + task->data[0]++; + break; + case 2: + sub_8100524(task, taskId); + if (TranslateAnimArc(sprite)) + { + task->data[15] = 3; + task->data[0] = 0xFF; + } + break; + case 3: + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0] = 10; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = task->data[6] - ((task->data[10] / 2) + 10) * task->data[5]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = task->data[7] - ((task->data[11] / 2) + 10) * task->data[5]; + sprite->data[5] = sub_8100504(sprite); + task->data[3] = 2; + sprite->subpriority = task->data[4]; + StartSpriteAnim(sprite, task->data[3]); + InitAnimArcTranslation(sprite); + task->data[0]++; + break; + case 5: + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0] = 10; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = task->data[6] + ((task->data[10] / 2) + 10) * task->data[5]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = task->data[7] + ((task->data[11] / 2) + 10) * task->data[5]; + sprite->data[5] = sub_8100504(sprite); + task->data[4] -= 2; + task->data[3] = 3; + sprite->subpriority = task->data[4]; + StartSpriteAnim(sprite, task->data[3]); + InitAnimArcTranslation(sprite); + task->data[0]++; + break; + case 6: + sub_8100524(task, taskId); + if (TranslateAnimArc(sprite)) + { + task->data[15] = 7; + task->data[0] = 0xFF; + } + break; + case 7: + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0] = 10; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = task->data[6]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = task->data[7]; + sprite->data[5] = sub_8100504(sprite); + task->data[4] += 2; + task->data[3] = 4; + sprite->subpriority = task->data[4]; + StartSpriteAnim(sprite, task->data[3]); + InitAnimArcTranslation(sprite); + task->data[0]++; + break; + case 9: + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0] = 10; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = task->data[6] - ((task->data[10] / 2) + 10) * task->data[5]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = task->data[7] + ((task->data[11] / 2) + 10) * task->data[5]; + sprite->data[5] = sub_8100504(sprite); + task->data[3] = 5; + sprite->subpriority = task->data[4]; + StartSpriteAnim(sprite, task->data[3]); + InitAnimArcTranslation(sprite); + task->data[0]++; + break; + case 10: + sub_8100524(task, taskId); + if (TranslateAnimArc(sprite)) + { + task->data[15] = 11; + task->data[0] = 0xFF; + } + break; + case 11: + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[0] = 10; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = task->data[8]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = task->data[9]; + sprite->data[5] = sub_8100504(sprite); + task->data[4] -= 2; + task->data[3] = 6; + sprite->subpriority = task->data[4]; + StartSpriteAnim(sprite, task->data[3]); + InitAnimArcTranslation(sprite); + task->data[0]++; + break; + } + case 12: + sub_8100524(task, taskId); + if (TranslateAnimArc(sprite)) + { + DestroySprite(sprite); + task->data[0]++; + } + break; + case 13: + if (task->data[12] == 0) + DestroyAnimVisualTask(taskId); + break; + case 0xFF: + if (++task->data[1] > 5) + { + task->data[1] = 0; + task->data[0] = task->data[15]; + } + break; + } +} + +static s16 sub_8100504(struct Sprite* sprite) +{ + s16 var = 8; + if (sprite->data[4] < sprite->pos1.y) + var = -var; + + return var; +} + +static void sub_8100524(struct Task* task, u8 taskId) +{ + task->data[14]++; + if (task->data[14] > 0) + { + u8 spriteId; + s16 spriteX; + s16 spriteY; + task->data[14] = 0; + spriteX = gSprites[task->data[2]].pos1.x + gSprites[task->data[2]].pos2.x; + spriteY = gSprites[task->data[2]].pos1.y + gSprites[task->data[2]].pos2.y; + spriteId = CreateSprite(&gUnknown_08592778, spriteX, spriteY, task->data[4]); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[6] = taskId; + gSprites[spriteId].data[7] = 12; + gTasks[taskId].data[12]++; + gSprites[spriteId].data[0] = task->data[13] & 1; + gTasks[taskId].data[13]++; + StartSpriteAnim(&gSprites[spriteId], task->data[3]); + gSprites[spriteId].subpriority = task->data[4]; + gSprites[spriteId].callback = sub_80CC408; + } + } +} + +static void sub_80CC408(struct Sprite* sprite) +{ + sprite->data[0]++; + if (sprite->data[0] > 1) + { + sprite->data[0] = 0; + sprite->invisible ^= 1; + sprite->data[1]++; + if (sprite->data[1] > 8) + { + gTasks[sprite->data[6]].data[sprite->data[7]]--; + DestroySprite(sprite); + } + } +} + +void sub_8100640(struct Sprite* sprite) +{ + u8 battler; + if (!gBattleAnimArgs[6]) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; + + if (GetBattlerSide(battler) != 0) + { + sprite->data[4] = 0; + sprite->data[2] = gBattleAnimArgs[3]; + sprite->pos1.x = 0xFFF0; + } + else + { + sprite->data[4] = 1; + sprite->data[2] = -gBattleAnimArgs[3]; + sprite->pos1.x = 0x100; + } + + sprite->data[1] = gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[3] = gBattleAnimArgs[4]; + switch (gBattleAnimArgs[5]) + { + case 0: + sprite->pos1.y = gBattleAnimArgs[0]; + sprite->oam.priority = sub_80A8328(battler); + break; + case 1: + sprite->pos1.y = gBattleAnimArgs[0]; + sprite->oam.priority = sub_80A8328(battler) + 1; + break; + case 2: + sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[0]; + sprite->oam.priority = sub_80A8328(battler); + break; + case 3: + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[0]; + GetAnimBattlerSpriteId(ANIM_TARGET); + sprite->oam.priority = sub_80A8328(battler) + 1; + break; + } + + sprite->callback = sub_810074C; +} + +static void sub_810074C(struct Sprite* sprite) +{ + int a = sprite->data[7]; + sprite->data[7]++; + sprite->pos2.y = (sprite->data[1] * gSineTable[sprite->data[0]]) >> 8; + sprite->pos2.x = sprite->data[2] * a; + sprite->data[0] = (sprite->data[3] * a) & 0xFF; + if (!sprite->data[4]) + { + if (sprite->pos2.x + sprite->pos1.x <= 0xF7) + return; + } + else + { + if (sprite->pos2.x + sprite->pos1.x > -16) + return; + } + + move_anim_8074EE0(sprite); +} + +void sub_81007C4(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + task->data[8] = IndexOfSpritePaletteTag(ANIM_TAG_LEAF) * 16 + 256; + task->data[12] = IndexOfSpritePaletteTag(ANIM_TAG_RAZOR_LEAF) * 16 + 256; + task->data[0]++; + break; + case 1: + if (++task->data[9] >= 0) + { + task->data[9] = 0; + BlendPalette(task->data[8], 16, task->data[10], gMagicalLeafBlendColors[task->data[11]]); + BlendPalette(task->data[12], 16, task->data[10], gMagicalLeafBlendColors[task->data[11]]); + if (++task->data[10] == 17) + { + task->data[10] = 0; + if (++task->data[11] == 7) + task->data[11] = 0; + } + } + break; + } + + if (gBattleAnimArgs[7] == -1) + DestroyAnimVisualTask(taskId); +} + +void sub_8100898(struct Sprite* sprite) +{ + u8 a; + u8 b; + u16 c; + u16 x; + u16 y; + + if (gBattleAnimArgs[4] == 0) + { + DestroyAnimSprite(sprite); + } + else + { + if (gBattleAnimArgs[0] == 0) + { + a = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + b = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + } + else + { + a = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + b = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + } + + sprite->data[0] = gBattleAnimArgs[4]; + if (gBattleAnimArgs[1] == 0) + { + sprite->pos1.x = gBattleAnimArgs[2] + a; + sprite->pos1.y = gBattleAnimArgs[3] + b; + sprite->data[5] = a; + sprite->data[6] = b; + } + else + { + sprite->pos1.x = a; + sprite->pos1.y = b; + sprite->data[5] = gBattleAnimArgs[2] + a; + sprite->data[6] = gBattleAnimArgs[3] + b; + } + + x = sprite->pos1.x; + sprite->data[1] = x * 16; + y = sprite->pos1.y; + sprite->data[2] = y * 16; + sprite->data[3] = (sprite->data[5] - sprite->pos1.x) * 16 / gBattleAnimArgs[4]; + sprite->data[4] = (sprite->data[6] - sprite->pos1.y) * 16 / gBattleAnimArgs[4]; + c = ArcTan2Neg(sprite->data[5] - x, sprite->data[6] - y); + if (IsContest()) + c -= 0x8000; + + sub_80A73E0(sprite, 0, 0x100, 0x100, c); + sprite->callback = sub_81009A0; + } +} + +static void sub_81009A0(struct Sprite* sprite) +{ + if (sprite->data[0]) + { + sprite->data[1] += sprite->data[3]; + sprite->data[2] += sprite->data[4]; + sprite->pos1.x = sprite->data[1] >> 4 ; + sprite->pos1.y = sprite->data[2] >> 4 ; + sprite->data[0]--; + } + else + { + move_anim_8074EE0(sprite); + } +} + +static void sub_81009DC(struct Sprite* sprite) +{ + if (sprite->animEnded) + DestroyAnimSprite(sprite); +} + +void sub_81009F8(struct Sprite* sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != 0) + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + } + else + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + } + + sprite->callback = sub_80A67D8; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_8100A50(struct Sprite* sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) == 0) + StartSpriteAnim(sprite, 1); + + sprite->callback = sub_81009DC; + sub_80A6864(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; +} + +void sub_8100A94(struct Sprite* sprite) +{ + 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]; + StartSpriteAffineAnim(sprite, gBattleAnimArgs[6]); + StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); + sprite->callback = sub_80A66DC; +} + +// Moves the sprite in a diagonally slashing motion across the target mon. +// 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 +void AnimCuttingSlice(struct Sprite* sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) + sprite->pos1.y += 8; + + sprite->callback = AnimSliceStep; + if (gBattleAnimArgs[2] == 0) + { + sprite->pos1.x += gBattleAnimArgs[0]; + } + else + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->hFlip = 1; + } + + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[1] -= 0x400; + sprite->data[2] += 0x400; + sprite->data[5] = gBattleAnimArgs[2]; + if (sprite->data[5] == 1) + sprite->data[1] = -sprite->data[1]; +} + +void sub_8100B88(struct Sprite* sprite) +{ + u8 a; + u8 b; + switch (gBattleAnimArgs[3]) + { + case 1: + a = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 0); + b = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 1); + break; + case 2: + a = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + b = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) + { + a = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 0) + a) / 2; + b = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 1) + b) / 2; + } + break; + case 0: + default: + a = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + b = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + break; + } + + sprite->pos1.x = a; + sprite->pos1.y = b; + if (GetBattlerSide(gBattleAnimTarget) == 0) + sprite->pos1.y += 8; + + sprite->callback = AnimSliceStep; + if (gBattleAnimArgs[2] == 0) + { + sprite->pos1.x += gBattleAnimArgs[0]; + } + else + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->hFlip = 1; + } + + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[1] -= 0x400; + sprite->data[2] += 0x400; + sprite->data[5] = gBattleAnimArgs[2]; + if (sprite->data[5] == 1) + sprite->data[1] = -sprite->data[1]; +} + +static void AnimSliceStep(struct Sprite* sprite) +{ + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + if (sprite->data[5] == 0) + sprite->data[1] += 0x18; + else + sprite->data[1] -= 0x18; + + sprite->data[2] -= 0x18; + sprite->pos2.x = sprite->data[3] >> 8; + sprite->pos2.y = sprite->data[4] >> 8; + sprite->data[0]++; + if (sprite->data[0] == 20) + { + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->data[0] = 3; + sprite->callback = WaitAnimForDuration; + } +} + +void unref_sub_8100D38(struct Sprite* sprite) +{ + if (sprite->data[2] > 1) + { + if (sprite->data[3] & 1) + { + sprite->invisible = 0; + gSprites[sprite->data[0]].invisible = 0; + gSprites[sprite->data[1]].invisible = 0; + } + else + { + sprite->invisible = 1; + gSprites[sprite->data[0]].invisible = 1; + gSprites[sprite->data[1]].invisible = 1; + } + + sprite->data[2] = 0; + sprite->data[3]++; + } + else + { + sprite->data[2]++; + } + + if (sprite->data[3] == 10) + { + DestroySprite(&gSprites[sprite->data[0]]); + DestroySprite(&gSprites[sprite->data[1]]); + DestroyAnimSprite(sprite); + } +} + +void sub_8100E1C(struct Sprite* sprite) +{ + sprite->data[0] = gBattleAnimArgs[2]; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + sprite->pos1.x -= gBattleAnimArgs[0]; + else + sprite->pos1.x += gBattleAnimArgs[0]; + + StartSpriteAnim(sprite, gBattleAnimArgs[5]); + sprite->data[1] = -gBattleAnimArgs[3]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[3] = gBattleAnimArgs[4]; + sprite->callback = sub_8100E80; + sprite->callback(sprite); +} + +static void sub_8100E80(struct Sprite* sprite) +{ + sprite->pos2.x = Cos(sprite->data[0], 100); + sprite->pos2.y = Sin(sprite->data[0], 20); + if (sprite->data[0] < 128) + sprite->subpriority = 0; + else + sprite->subpriority = 14; + + sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; + sprite->data[5] += 0x82; + sprite->pos2.y += sprite->data[5] >> 8; + sprite->data[2]++; + if (sprite->data[2] == sprite->data[3]) + DestroyAnimSprite(sprite); +} + +void sub_8100EF0(struct Sprite* sprite) +{ + if (IsContest()) + gBattleAnimArgs[1] += 8; + + sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest()) + sprite->oam.priority = sub_80A8328(gBattleAnimAttacker) + 1; + else + sprite->oam.priority = sub_80A8328(gBattleAnimAttacker); + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[2] = (IndexOfSpritePaletteTag(ANIM_TAG_PROTECT) << 4) + 0x100; + sprite->data[7] = 16; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7])); + sprite->callback = sub_8100FD4; +} + +static void sub_8100FD4(struct Sprite *sprite) +{ + int a; + int i; + sprite->data[5] += 96; + sprite->pos2.x = -(sprite->data[5] >> 8); + if (++sprite->data[1] > 1) + { + sprite->data[1] = 0; + a = gPlttBufferFaded[sprite->data[2] + 1]; + i = 0; + do + { + gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1]; + } while (i < 6); + + gPlttBufferFaded[sprite->data[2] + 7] = a; + } + + if (sprite->data[7] > 6 && sprite->data[0] >0 && ++sprite->data[6] > 1) + { + sprite->data[6] = 0; + sprite->data[7] -= 1; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7])); + } + + if (sprite->data[0] > 0) + { + sprite->data[0] -= 1; + } + else if (++sprite->data[6] > 1) + { + sprite->data[6] = 0; + sprite->data[7]++; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7])); + if (sprite->data[7] == 16) + { + sprite->invisible = 1; + sprite->callback = sub_80A67F4; + } + } +} + +void sub_81010CC(struct Sprite* sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 0xFFE8; + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[6] = 0; + sprite->data[7] = 16; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); + sprite->callback = sub_8101138; +} + +static void sub_8101138(struct Sprite* sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (++sprite->data[2] > 0) + { + sprite->data[2] = 0; + if (((++sprite->data[1]) & 1) != 0) + { + if (sprite->data[6] <= 15) + sprite->data[6]++; + } + else if (sprite->data[7] > 0) + sprite->data[7]--; + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); + if (sprite->data[6] == 16 && sprite->data[7] == 0) + { + sprite->data[1] = 0; + sprite->data[0]++; + } + } + break; + case 1: + if (++sprite->data[1] > 8) + { + sprite->data[1] = 0; + StartSpriteAffineAnim(sprite, 1); + sprite->data[0]++; + } + break; + case 2: + sub_8101298(sprite, 16, 4); + if (++sprite->data[1] > 2) + { + sprite->data[1] = 0; + sprite->pos1.y++; + } + + if (++sprite->data[2] <= 29) + break; + + if (sprite->data[2] & 1) + { + if (sprite->data[6] > 0) + sprite->data[6]--; + } + else if (sprite->data[7] <= 15) + { + sprite->data[7]++; + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); + if (sprite->data[6] == 0 && sprite->data[7] == 16) + { + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->data[0]++; + } + break; + case 3: + sprite->invisible = 1; + sprite->data[0]++; + break; + case 4: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0)); + DestroyAnimSprite(sprite); + break; + } +} + +static void sub_8101298(struct Sprite* sprite, int unk1, int unk2) +{ + if (sprite->data[3] <= 11) + sprite->data[4] += 2; + + if ((u16)(sprite->data[3] - 0x12) <= 0x17) + sprite->data[4] -= 2; + + if ((sprite->data[3]) > 0x2F) + sprite->data[4] += 2; + + sprite->pos2.x = sprite->data[4] / 9; + sprite->pos2.y = sprite->data[4] / 14; + if (sprite->pos2.y < 0) + sprite->pos2.y *= -1; + + sprite->data[3]++; + if (sprite->data[3] > 0x3B) + sprite->data[3] = 0; +} + +void sub_810130C(struct Sprite* sprite) +{ + if (!gBattleAnimArgs[2]) + sub_80A6838(sprite); + + sub_80A6864(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[5]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = sub_80A656C; +} + +void sub_810135C(struct Sprite* sprite) +{ + u8 battler; + if (!gBattleAnimArgs[2]) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; + + if (IsDoubleBattle() && IsBattlerSpriteVisible(BATTLE_PARTNER(battler))) + { + SetAverageBattlerPositions(battler, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y); + sub_80A6864(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; + } + else + { + if (!gBattleAnimArgs[6]) + { + sprite->pos1.x = GetBattlerSpriteCoord(battler, 0); + sprite->pos1.y = GetBattlerSpriteCoord(battler, 1) + gBattleAnimArgs[1]; + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(battler, 2); + sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) + gBattleAnimArgs[1]; + } + + sub_80A6864(sprite, gBattleAnimArgs[0]); + } + + sprite->data[0] = gBattleAnimArgs[5]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = sub_80A656C; +} + +void sub_8101440(struct Sprite* sprite) +{ + sub_80A6838(sprite); + if (GetBattlerSide(gBattleAnimAttacker) == 0) + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + } + else + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + StartSpriteAnim(sprite, 1); + } + + sprite->callback = sub_81014A0; +} + +static void sub_81014A0(struct Sprite* sprite) +{ + if (++sprite->data[0] > 30) + { + sprite->pos2.y = (30 - sprite->data[0]) / 3; + sprite->pos2.x = Sin(sprite->data[1] * 4, 3); + sprite->data[1]++; + } + + if (sprite->animEnded) + DestroyAnimSprite(sprite); +} + +void sub_81014F4(struct Sprite* sprite) +{ + sub_80A6838(sprite); + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[3] = 1; + } + else + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[3] = 0xFFFF; + StartSpriteAffineAnim(sprite, 1); + } + + sprite->callback = sub_8101560; +} + +static void sub_8101560(struct Sprite* sprite) +{ + sprite->pos2.y = -(sprite->data[0] / 0x28); + sprite->pos2.x = sprite->data[4] / 10; + sprite->data[4] += sprite->data[3] * 2; + sprite->data[0] += sprite->data[1]; + if (++sprite->data[1] > 60) + move_anim_8074EE0(sprite); +} + +void sub_81015AC(struct Sprite* sprite) +{ + sprite->pos1.x -= 32; + sprite->pos1.y -= 32; + sprite->data[0] = 20; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, sub_81015D4); +} + +static void sub_81015D4(struct Sprite* sprite) +{ + switch (sprite->data[5] & 1) + { + case 0: + sprite->data[0] = 1; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, sub_81015D4); + break; + case 1: + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.y = 0; + sprite->pos2.x = 0; + sprite->data[0] = 8; + sprite->data[2] = sprite->pos1.x + gUnknown_08592CD0[sprite->data[5] >> 8][0]; + sprite->data[4] = sprite->pos1.y + gUnknown_08592CD0[sprite->data[5] >> 8][1]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, sub_8101684); + sprite->data[5] += 0x100; + PlaySE12WithPanning(SE_W199, BattleAnimAdjustPanning(63)); + break; + } + + sprite->data[5] ^= 1; +} + +static void sub_8101684(struct Sprite* sprite) +{ + if ((sprite->data[5] >> 8) == 4) + { + sprite->data[0] = 10; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, sub_81016B8); + } + else + { + sprite->callback = sub_81015D4; + } +} + +static void sub_81016B8(struct Sprite* sprite) +{ + s16 a; + s16 b; + if (sprite->oam.affineParam == 0) + { + sprite->data[0] = 3; + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, sub_8101774); + } + else + { + switch (sprite->oam.affineParam) + { + case 1: + a = -8; + b = -8; + break; + case 2: + a = -8; + b = 8; + break; + case 3: + a = 8; + b = -8; + break; + default: + a = 8; + b = 8; + break; + } + + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.y = 0; + sprite->pos2.x = 0; + sprite->data[0] = 6; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + a; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + b; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, sub_8101820); + } +} + +static void sub_8101774(struct Sprite* sprite) +{ + if (sprite->data[2] == 0) + { + if ((sprite->data[1] += 3) > 16) + sprite->data[1] = 16; + } + else if ((sprite->data[1] -= 3) < 0) + { + sprite->data[1] = 0; + } + + BlendPalettes(sub_80A75AC(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31)); + if (sprite->data[1] == 16) + { + int pal; + sprite->data[2]++; + pal = sprite->oam.paletteNum; + LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4); + PlaySE12WithPanning(SE_W043, BattleAnimAdjustPanning(63)); + } + else if (sprite->data[1] == 0) + { + sprite->callback = sub_8101820; + } +} + +static void sub_8101820(struct Sprite* sprite) +{ + if ((u16)gBattleAnimArgs[7] == 0xFFFF) + { + sprite->data[1] = 0; + sprite->data[0] = 0; + sprite->callback = sub_8101848; + } +} + +static void sub_8101848(struct Sprite* sprite) +{ + if (sprite->data[0] % 3 == 0) + { + sprite->data[1]++; + sprite->invisible ^= 1; + } + + sprite->data[0]++; + if (sprite->data[1] == 8) + DestroyAnimSprite(sprite); +} + +void sub_8101898(struct Sprite* sprite) +{ + sprite->oam.affineParam = gBattleAnimArgs[0]; + if ((s16)sprite->oam.affineParam == 1) + { + sprite->pos1.x -= 0x18; + sprite->pos1.y -= 0x18; + } + else if ((s16)sprite->oam.affineParam == 2) + { + sprite->pos1.x -= 0x18; + sprite->pos1.y += 0x18; + sprite->oam.matrixNum = 16; + } + else if ((s16)sprite->oam.affineParam == 3) + { + sprite->pos1.x += 0x18; + sprite->pos1.y -= 0x18; + sprite->oam.matrixNum = 8; + } + else + { + sprite->pos1.x += 0x18; + sprite->pos1.y += 0x18; + sprite->oam.matrixNum = 24; + } + + sprite->oam.tileNum = (sprite->oam.tileNum + 16); + sprite->callback = sub_81015AC; + sprite->callback(sprite); +} + +void sub_8101940(struct Sprite* sprite) +{ + sprite->invisible = 1; + sprite->data[0] = 0; + switch (gBattleAnimArgs[0]) + { + case 0: + sprite->callback = sub_8101998; + break; + case 1: + sprite->callback = sub_8101A74; + break; + case 2: + sprite->callback = sub_8101AC4; + break; + default: + sprite->callback = sub_8101B84; + break; + } +} + +static void sub_8101998(struct Sprite* sprite) +{ + sprite->data[0] = 6; + sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker)) ? 2 : -2; + sprite->data[2] = 0; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; + StoreSpriteCallbackInData6(sprite, sub_81019E8); + sprite->callback = TranslateMonBGUntil; +} + +static void sub_81019E8(struct Sprite* sprite) +{ + if (sprite->data[0] == 0) + { + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; + sub_80A7270(sprite->data[3], 0); + sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00; + sprite->data[5] = 0; + } + + sprite->data[5] += sprite->data[4]; + obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]); + sub_80A73A0(sprite->data[3]); + if (++sprite->data[0] > 3) + { + sprite->data[0] = 0; + sprite->callback = sub_8101B84; + } +} + +static void sub_8101A74(struct Sprite* sprite) +{ + sprite->data[0] = 4; + sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker)) ? -3 : 3; + sprite->data[2] = 0; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; + StoreSpriteCallbackInData6(sprite, sub_8101B84); + sprite->callback = TranslateMonBGUntil; +} + +static void sub_8101AC4(struct Sprite* sprite) +{ + if (++sprite->data[0] > 8) + { + sprite->data[0] = 0; + sprite->callback = sub_8101AE8; + } +} + +static void sub_8101AE8(struct Sprite* sprite) +{ + if (sprite->data[0] == 0) + { + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; + sprite->data[6] = GetBattlerSide(gBattleAnimAttacker); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + sprite->data[4] = 0xFC00; + sprite->data[5] = 0xC00; + } + else + { + sprite->data[4] = 0x400; + sprite->data[5] = 0xF400; + } + } + + sprite->data[5] += sprite->data[4]; + obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]); + sub_80A73A0(sprite->data[3]); + if (++sprite->data[0] > 2) + { + sub_80A7344(sprite->data[3]); + sprite->callback = sub_8101B84; + } +} + +static void sub_8101B84(struct Sprite* sprite) +{ + DestroyAnimSprite(sprite); +} + +void sub_8101B90(struct Sprite *sprite) +{ + sprite->data[0] = 0; + sprite->callback = sub_8101BA0; +} + +static void sub_8101BA0(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->data[1] = 0; + sprite->data[2] = gBattlerSpriteIds[gBattleAnimAttacker]; + sprite->data[3] = GetBattlerSide(gBattleAnimAttacker); + sprite->data[4] = (sprite->data[3] != B_SIDE_PLAYER) ? 0x200 : -0x200; + sprite->data[5] = 0; + sub_80A7270(sprite->data[2], 0); + sprite->data[0]++; + // fall through + case 1: + sprite->data[5] += sprite->data[4]; + obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]); + sub_80A73A0(sprite->data[2]); + if (++sprite->data[1] > 3) + { + sprite->data[1] = 0; + sprite->data[4] *= -1; + sprite->data[0]++; + } + break; + case 2: + sprite->data[5] += sprite->data[4]; + obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]); + sub_80A73A0(sprite->data[2]); + if (++sprite->data[1] > 3) + { + sub_80A7344(sprite->data[2]); + DestroyAnimSprite(sprite); + } + break; + } +} + +void sub_8101C94(u8 taskId) +{ + u8 a; + + gTasks[taskId].data[0] = gBattlerSpriteIds[gBattleAnimAttacker]; + a = GetBattlerSide(gBattleAnimAttacker); + gTasks[taskId].data[1] = a; + gTasks[taskId].data[2] = 0; + switch (gBattleAnimArgs[0]) + { + default: + DestroyAnimVisualTask(taskId); + break; + case 0: + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 8; + gTasks[taskId].data[4] = 0; + gTasks[taskId].data[5] = 3; + if (a == 0) + gTasks[taskId].data[5] *= -1; + + gTasks[taskId].func = sub_8101D2C; + break; + case 1: + gTasks[taskId].data[3] = 8; + gTasks[taskId].data[4] = 0x600; + gTasks[taskId].data[5] = 0xC0; + if (a == 0) + { + gTasks[taskId].data[4] = -gTasks[taskId].data[4]; + gTasks[taskId].data[5] = -gTasks[taskId].data[5]; + } + + gTasks[taskId].func = sub_8101EEC; + break; + } +} + +static void sub_8101D2C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[2]) + { + case 0: + if (task->data[3]) + { + task->data[4] += task->data[5]; + gSprites[task->data[0]].pos2.x = task->data[4]; + task->data[3]--; + } + else + { + task->data[3] = 8; + task->data[4] = 0; + task->data[5] = (task->data[1] == 0) ? -0xC0 : 0xC0; + sub_80A7270(task->data[0], 0); + task->data[2]++; + } + break; + case 1: + if (task->data[3]) + { + task->data[4] += task->data[5]; + obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]); + sub_80A73A0(task->data[0]); + task->data[3]--; + } + else + { + task->data[3] = 8; + task->data[4] = gSprites[task->data[0]].pos2.x; + task->data[5] = (task->data[1] == 0) ? 0x2 : -0x2; + task->data[6] = 1; + task->data[2]++; + } + break; + case 2: + if (task->data[3]) + { + if (task->data[6]) + { + task->data[6]--; + } + else + { + if (task->data[3] & 1) + gSprites[task->data[0]].pos2.x = task->data[4] + task->data[5]; + else + gSprites[task->data[0]].pos2.x = task->data[4] - task->data[5]; + + task->data[6] = 1; + task->data[3]--; + } + } + else + { + gSprites[task->data[0]].pos2.x = task->data[4]; + task->data[3] = 12; + task->data[2]++; + } + break; + case 3: + if (task->data[3]) + { + task->data[3]--; + } + else + { + task->data[3] = 3; + task->data[4] = gSprites[task->data[0]].pos2.x; + task->data[5] = (task->data[1] == 0) ? 8 : -8; + task->data[2]++; + } + break; + case 4: + if (task->data[3]) + { + task->data[4] += task->data[5]; + gSprites[task->data[0]].pos2.x = task->data[4]; + task->data[3]--; + } + else + { + DestroyAnimVisualTask(taskId); + } + break; + } +} + +static void sub_8101EEC(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + if (task->data[3]) + { + task->data[4] -= task->data[5]; + obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]); + sub_80A73A0(task->data[0]); + task->data[3]--; + } + else + { + sub_80A7344(task->data[0]); + DestroyAnimVisualTask(taskId); + } +} + +void sub_8101F40(struct Sprite* sprite) +{ + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[2]; + } + + sprite->data[0] = 0; + sprite->data[1] = 0; + StoreSpriteCallbackInData6(sprite, sub_810208C); + sprite->callback = sub_80A67D8; +} + +void sub_8101FA8(struct Sprite* sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + StoreSpriteCallbackInData6(sprite, sub_8102044); + sprite->callback = sub_80A67D8; +} + +void sub_8101FF0(struct Sprite* sprite) +{ + sprite->pos1.x = sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0 + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + StartSpriteAnim(sprite, 1); + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->callback = sub_810208C; +} + +static void sub_8102044(struct Sprite* sprite) +{ + if (++sprite->data[0] > 8) + { + sprite->data[0] = 12; + sprite->data[1] = 8; + sprite->data[2] = 0; + StoreSpriteCallbackInData6(sprite, sub_810207C); + sprite->callback = TranslateSpriteOverDuration; + } +} + +static void sub_810207C(struct Sprite* sprite) +{ + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->callback = sub_810208C; +} + +static void sub_810208C(struct Sprite* sprite) +{ + if (++sprite->data[0] > 1) + { + sprite->data[0] = 0; + sprite->invisible = !sprite->invisible; + if (++sprite->data[1] > 8) + DestroyAnimSprite(sprite); + } +} + +void sub_81020D8(struct Sprite* sprite) +{ + if (gBattleAnimArgs[0] == 0) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[2]; + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[2]; + } + + sprite->data[0] = 0; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->callback = sub_810213C; +} + +static void sub_810213C(struct Sprite* sprite) +{ + if (++sprite->data[0] > sprite->data[1]) + { + sprite->data[0] = 0; + sprite->pos1.y--; + } + + sprite->pos1.y -= sprite->data[0]; + if (sprite->animEnded) + DestroyAnimSprite(sprite); +} + +void sub_810217C(struct Sprite* sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) - 12; + sprite->data[0] = 0; + sprite->data[1] = 2; + sprite->data[2] = 0; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = BattleAnimAdjustPanning(-64); + sprite->callback = sub_81021CC; +} + +static void sub_81021CC(struct Sprite* sprite) +{ + if (++sprite->data[0] >= sprite->data[1]) + { + sprite->invisible = !sprite->invisible; + if (!sprite->invisible) + { + sprite->data[4]++; + if (!(sprite->data[4] & 1)) + PlaySE12WithPanning(SE_W207B, sprite->data[5]); + } + + sprite->data[0] = 0; + if (++sprite->data[2] > 1) + { + sprite->data[2] = 0; + sprite->data[1]++; + } + } + + if (sprite->animEnded && sprite->data[1] > 16 && sprite->invisible) + DestroyAnimSprite(sprite); +} + +void sub_8102268(struct Sprite* sprite) +{ + if (sprite->data[0] == 0) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[1]; + if (IsContest()) + sprite->pos1.y += 10; + + sprite->data[0]++; + } + + if ((u16)gBattleAnimArgs[7] == 0xFFFF) + DestroyAnimSprite(sprite); +} + +void sub_81022D4(u8 taskId) +{ + if (gTasks[taskId].data[2] == 1) + { + gBattleAnimArgs[7] = 0xFFFF; + gTasks[taskId].data[2]++; + } + else if (gTasks[taskId].data[2] == 2) + { + DestroyAnimVisualTask(taskId); + } + else + { + if (++gTasks[taskId].data[0] == 4) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1]++; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - gTasks[taskId].data[1], gTasks[taskId].data[1])); + if (gTasks[taskId].data[1] == 16) + gTasks[taskId].data[2]++; + } + } +} + +void sub_810234C(struct Sprite* sprite) +{ + sub_80A6980(sprite, FALSE); + sprite->animPaused = 1; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->callback = sub_810237C; +} + +static void sub_810237C(struct Sprite* sprite) +{ + if (sprite->data[0]) + { + sprite->data[0]--; + } + else + { + sprite->animPaused = 0; + sprite->data[0] = 30; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + } +} + +void sub_81023E0(u8 taskId) +{ + if (++gTasks[taskId].data[0] == 4) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1]++; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1])); + if (gTasks[taskId].data[1] == 16) + DestroyAnimVisualTask(taskId); + } +} + +void unref_sub_8102434(u8 taskId) +{ + u8 i; + for (i = 0; i < gBattlersCount; i++) + { + if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == B_SIDE_PLAYER) + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); + + if (gBattleAnimArgs[1] == 1 && GetBattlerSide(i) == B_SIDE_OPPONENT) + SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); + } + + DestroyAnimVisualTask(taskId); +} + +void unref_sub_81024A8(u8 taskId) +{ + u8 i; + for (i = 0; i < gBattlersCount; i++) + SetHealthboxSpriteVisible(gHealthboxSpriteIds[i]); + + DestroyAnimVisualTask(taskId); +} + +void sub_81024E0(struct Sprite* sprite) +{ + if (IsContest()) + { + sprite->pos1.x = 48; + sprite->pos1.y = 40; + } + else + { + sprite->pos1.x = gBattleAnimArgs[0]; + sprite->pos1.y = gBattleAnimArgs[1]; + } + + sprite->oam.shape = 0; + sprite->oam.size = 3; + sprite->data[0] = 0; + sprite->callback = sub_8102528; +} + +static void sub_8102528(struct Sprite* sprite) +{ + if (sprite->data[0]) + DestroyAnimSprite(sprite); +} + +void sub_8102540(struct Sprite* sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = gBattleAnimArgs[1]; + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->data[3] = 0; + sprite->data[4] = 1; + sprite->callback = sub_8102584; +} + +static void sub_8102584(struct Sprite* sprite) +{ + if (++sprite->data[1] > 1) + { + sprite->data[1] = 0; + if (sprite->data[2] < 120) + { + sprite->pos1.y++; + sprite->data[2]++; + } + } + + if (sprite->data[0]) + DestroyAnimSprite(sprite); +} + +void sub_81026A8(u8); + + +void sub_81025C0(u8 taskId) +{ + int a = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; + int b; + int c; + int d; + + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = a; + gTasks[taskId].data[4] = 0; + gTasks[taskId].data[5] = 0; + gTasks[taskId].data[6] = 0; + gTasks[taskId].data[7] = 13; + gTasks[taskId].data[8] = 14; + gTasks[taskId].data[9] = 15; + b = sub_80A76C4(1, 1, 1, 1); + c = a | b; + sub_80A8048(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c); + b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); + d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE); + BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31)); + gTasks[taskId].func = sub_81026A8; + gTasks[taskId].func(taskId); +} + +void sub_81026A8(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + if (++task->data[1] > 0) + { + u16 color; + u16 bitmask; + u16 r3; + u16 i; + u16 j; + task->data[1] = 0; + if (++task->data[2] <= 15) + { + u16 red; + u16 green; + u16 blue; + task->data[4] += task->data[7]; + task->data[5] += task->data[8]; + task->data[6] += task->data[9]; + red = task->data[4] >> 3; + green = task->data[5] >> 3; + blue = task->data[6] >> 3; + color = RGB(red, green, blue); + } + else + { + color = RGB(27, 29, 31); + task->data[0]++; + } + + bitmask = 1; + r3 = 0; + for (i = 0; i <= 15; i++) + { + if (task->data[3] & bitmask) + { + for (j = 1; j <= 15; j++) + { + gPlttBufferFaded[r3 + j] = color; + } + } + + bitmask <<= 1; + r3 += 16; + } + } + break; + case 1: + if (!gPaletteFade.active) + { + u8 spriteId; + for (spriteId = 0; spriteId < MAX_SPRITES; spriteId++) + { + if (gSprites[spriteId].template == &gUnknown_08592EBC || gSprites[spriteId].template == &gBattleAnimSpriteTemplate_8592EEC) + gSprites[spriteId].data[0] = 1; + } + + task->data[1] = 0; + task->data[0]++; + } + break; + case 2: + if (++task->data[1] > 30) + { + BeginNormalPaletteFade((u32)sub_80A8050(task->data[14], task->data[15]), 0, 16, 0, RGB(27, 29, 31)); + task->data[0]++; + } + break; + case 3: + if (!gPaletteFade.active) + DestroyAnimVisualTask(taskId); + break; + } +} + +void sub_8102844(struct Sprite* sprite) +{ + if (gBattleAnimArgs[2] < 2) + gBattleAnimArgs[2] = 2; + + if (gBattleAnimArgs[2] > 0x7F) + gBattleAnimArgs[2] = 0x7F; + + sprite->data[0] = 0; + sprite->data[1] = gBattleAnimArgs[2]; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->data[6] = sprite->pos1.x; + sprite->data[7] = sprite->pos1.y; + if (IsContest()) + { + sprite->oam.matrixNum = 8; + sprite->pos1.x += 40; + sprite->pos1.y += 20; + sprite->data[2] = sprite->pos1.x << 7; + sprite->data[3] = -0x1400 / sprite->data[1]; + sprite->data[4] = sprite->pos1.y << 7; + sprite->data[5] = -0xA00 / sprite->data[1]; + } + else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + sprite->pos1.x -= 40; + sprite->pos1.y += 20; + sprite->data[2] = sprite->pos1.x << 7; + sprite->data[3] = 0x1400 / sprite->data[1]; + sprite->data[4] = sprite->pos1.y << 7; + sprite->data[5] = -0xA00 / sprite->data[1]; + } + else + { + sprite->pos1.x += 40; + sprite->pos1.y -= 20; + sprite->data[2] = sprite->pos1.x << 7; + sprite->data[3] = -0x1400 / sprite->data[1]; + sprite->data[4] = sprite->pos1.y << 7; + sprite->data[5] = 0xA00 / sprite->data[1]; + sprite->oam.matrixNum = 24; + } + + sprite->callback = sub_810296C; +} + +static void sub_810296C(struct Sprite* sprite) +{ + sprite->data[2] += sprite->data[3]; + sprite->data[4] += sprite->data[5]; + sprite->pos1.x = sprite->data[2] >> 7; + sprite->pos1.y = sprite->data[4] >> 7; + if (--sprite->data[1] == 1) + { + sprite->pos1.x = sprite->data[6]; + sprite->pos1.y = sprite->data[7]; + } + + if (sprite->data[1] == 0) + DestroyAnimSprite(sprite); +} + +void sub_81029B4(u8 taskId) +{ + u16 i; + int obj; + u16 r3; + u16 r4; + struct Task* task = &gTasks[taskId]; + task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->data[1] = AllocSpritePalette(ANIM_TAG_BENT_SPOON); + r3 = (task->data[1] * 16) + 0x100; + r4 = (gSprites[task->data[0]].oam.paletteNum + 16) << 4; + for (i = 1; i < 16; i++) + gPlttBufferUnfaded[r3 + i] = gPlttBufferUnfaded[r4 + i]; + + BlendPalette(r3, 16, 11, RGB(0, 0, 0)); + task->data[3] = 0; + i = 0; + while (i < 2 && (obj = duplicate_obj_of_side_rel2move_in_transparent_mode(0)) >= 0) + { + gSprites[obj].oam.paletteNum = task->data[1]; + gSprites[obj].data[0] = 0; + gSprites[obj].data[1] = i << 7; + gSprites[obj].data[2] = taskId; + gSprites[obj].callback = sub_8102B3C; + task->data[3]++; + i++; + } + + task->func = sub_8102AE0; + if (sub_80A8364(gBattleAnimAttacker) == 1) + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); + else + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); +} + +static void sub_8102AE0(u8 taskId) +{ + struct Task* task = &gTasks[taskId]; + if (!task->data[3]) + { + if (sub_80A8364(gBattleAnimAttacker) == 1) + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); + else + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + + FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); + DestroyAnimVisualTask(taskId); + } +} + +static void sub_8102B3C(struct Sprite* sprite) +{ + if (++sprite->data[3] > 1) + { + sprite->data[3] = 0; + sprite->data[0]++; + } + + if (sprite->data[0] > 64) + { + gTasks[sprite->data[2]].data[3]--; + obj_delete_but_dont_free_vram(sprite); + } + else + { + sprite->data[4] = gSineTable[sprite->data[0]] / 6; + sprite->data[5] = gSineTable[sprite->data[0]] / 13; + sprite->data[1] = (sprite->data[1] + sprite->data[5]) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], sprite->data[4]); + } +} + +void sub_8102BCC(struct Sprite* sprite) +{ + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = sub_80A67D8; +} + +void sub_8102BE8(u8 taskId) +{ + u16 i; + u16 j; + u16 index; + + index = IndexOfSpritePaletteTag(gUnknown_08593020[0][0]); + if (index != 0xFF) + { + index = (index << 4) + 0x100; + for (i = 1; i < ARRAY_COUNT(gUnknown_08593020[0]); i++) + gPlttBufferFaded[index + i] = gUnknown_08593020[0][i]; + } + + for (j = 1; j < ARRAY_COUNT(gUnknown_08593020); j++) + { + index = AllocSpritePalette(gUnknown_08593020[j][0]); + if (index != 0xFF) + { + index = (index << 4) + 0x100; + for (i = 1; i < ARRAY_COUNT(gUnknown_08593020[0]); i++) + gPlttBufferFaded[index + i] = gUnknown_08593020[j][i]; + } + } + DestroyAnimVisualTask(taskId); +} + +// clears the rainbow effect for musical notes. +void sub_8102CA0(u8 taskId) +{ + u16 i; + for (i = 1; i < ARRAY_COUNT(gUnknown_08593020); i++) + FreeSpritePaletteByTag(gUnknown_08593020[i][0]); + + DestroyAnimVisualTask(taskId); +} + +void sub_8102CD4(struct Sprite* sprite) +{ + u8 index; + u8 a; + u8 b; + sub_80A6838(sprite); + StartSpriteAnim(sprite, gBattleAnimArgs[0]); + if ((index = IndexOfSpritePaletteTag(gUnknown_08593020[gBattleAnimArgs[1]][0])) != 0xFF) + sprite->oam.paletteNum = index; + + sprite->data[1] = gBattleAnimArgs[1]; + sprite->data[2] = 0; + sprite->data[3] = gBattleAnimArgs[2]; + if (IsContest()) + { + a = 48; + b = 40; + } + else + { + a = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + b = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + } + + sprite->data[4] = sprite->pos1.x << 4; + sprite->data[5] = sprite->pos1.y << 4; + sub_8102D8C(a - sprite->pos1.x, b - sprite->pos1.y, &sprite->data[6], &sprite->data[7], 40); + sprite->callback = sub_8102DE4; +} + +static void sub_8102D8C(s16 a, s16 b, s16* c, s16* d, s8 e) +{ + int f; + int g; + if (a < 0) + e = -e; + + f = a << 8; + g = f / e; + if (g == 0) + g = 1; + + *c = f / g; + *d = (b << 8) / g; +} + +static void sub_8102DE4(struct Sprite* sprite) +{ + int b; + s16 a; + int c; + u8 index; + sprite->data[0]++; + b = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8); + sprite->data[4] += sprite->data[6]; + sprite->data[5] += sprite->data[7]; + sprite->pos1.x = sprite->data[4] >> 4; + sprite->pos1.y = sprite->data[5] >> 4; + sprite->pos2.y = Sin(b, 15); + a = (u16)sprite->pos1.y; + c = (u16)sprite->pos1.x; + + if ((u32)((c + 16) << 16) > (0x110) << 16 || a < -16 || a > 0x80) + { + move_anim_8074EE0(sprite); + } + else + { + if (sprite->data[3] && ++sprite->data[2] > sprite->data[3]) + { + sprite->data[2] = 0; + if (++sprite->data[1] > 3) + sprite->data[1] = 0; + + index = IndexOfSpritePaletteTag(gUnknown_08593020[sprite->data[1]][0]); + if (index != 0xFF) + sprite->oam.paletteNum = index; + } + } +} + +void sub_8102EB0(struct Sprite* sprite) +{ + int a; + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) + { + a = gBattleAnimArgs[1]; + (u16)gBattleAnimArgs[1] = -a; + } + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + StartSpriteAnim(sprite, gBattleAnimArgs[0]); + sprite->data[2] = 0; + sprite->data[3] = 0; + sprite->data[4] = sprite->pos1.x << 4; + sprite->data[5] = sprite->pos1.y << 4; + sprite->data[6] = (gBattleAnimArgs[1] << 4) / 5; + sprite->data[7] = (gBattleAnimArgs[2] << 7) / 5; + sprite->callback = sub_8102F40; +} + +static void sub_8102F40(struct Sprite* sprite) +{ + sprite->data[4] += sprite->data[6]; + sprite->data[5] += sprite->data[7]; + sprite->pos1.x = sprite->data[4] >> 4; + sprite->pos1.y = sprite->data[5] >> 4; + if (sprite->data[0] > 5 && sprite->data[3] == 0) + { + sprite->data[2] = (sprite->data[2] + 16) & 0xFF; + sprite->pos2.x = Cos(sprite->data[2], 18); + sprite->pos2.y = Sin(sprite->data[2], 18); + if (sprite->data[2] == 0) + sprite->data[3] = 1; + } + + if (++sprite->data[0] == 48) + move_anim_8074EE0(sprite); +} + +void sub_8102FB8(struct Sprite* sprite) +{ + s16 a; + if (gBattleAnimArgs[0] == 1) + { + sprite->oam.matrixNum = 8; + a = 16; + } + else + { + a = -16; + } + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + a; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 8; + sprite->data[0] = 8; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_8103028(struct Sprite* sprite) +{ + s16 xDiff; + u8 index; + sub_80A6838(sprite); + sprite->pos1.y += 8; + StartSpriteAnim(sprite, gBattleAnimArgs[1]); + index = IndexOfSpritePaletteTag(gUnknown_08593020[gBattleAnimArgs[2]][0]); + if (index != 0xFF) + sprite->oam.paletteNum = index; + + xDiff = (gBattleAnimArgs[0] == 0) ? -32 : 32; + sprite->data[0] = 40; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = xDiff + sprite->data[1]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = sprite->data[3] - 40; + InitAnimLinearTranslation(sprite); + sprite->data[5] = gBattleAnimArgs[3]; + sprite->callback = sub_81030B0; +} + +static void sub_81030B0(struct Sprite* sprite) +{ + if (TranslateAnimLinear(sprite) == 0) + { + s16 xDiff; + xDiff = Sin(sprite->data[5], 8); + if (sprite->pos2.x < 0) + xDiff = -xDiff; + + sprite->pos2.x += xDiff; + sprite->pos2.y += Sin(sprite->data[5], 4); + sprite->data[5] = (sprite->data[5] + 8) & 0xFF; + } + else + { + DestroyAnimSprite(sprite); + } +} + +void sub_810310C(u8 battler, struct Sprite* sprite) +{ + if (GetBattlerSide(battler) == B_SIDE_PLAYER) + sprite->pos1.x = sub_80A861C(battler, 5) + 8; + else + sprite->pos1.x = sub_80A861C(battler, 4) - 8; + + sprite->pos1.y = GetBattlerSpriteCoord(battler, 3) - (s16)sub_80A861C(battler, 0) / 4; +} + +void sub_8103164(struct Sprite* sprite) +{ + u8 a; + u8 battler; + if (gBattleAnimArgs[0] == 0) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; + + sub_810310C(battler, sprite); + a = (GetBattlerSide(battler) == B_SIDE_PLAYER) ? 0 : 1; + sprite->data[0] = gBattleAnimArgs[1]; + sprite->data[1] = a + 2; + StartSpriteAnim(sprite, a); + StoreSpriteCallbackInData6(sprite, sub_81031D0); + sprite->callback = sub_80A67D8; +} + +static void sub_81031D0(struct Sprite* sprite) +{ + if (--sprite->data[0] == 0) + { + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + StartSpriteAnim(sprite, sprite->data[1]); + sprite->callback = sub_80A67D8; + } +} + +void sub_8103208(struct Sprite* sprite) +{ + u8 battler; + if (gBattleAnimArgs[0] == 0) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; + + sub_810310C(battler, sprite); + sprite->data[0] = 0; + StoreSpriteCallbackInData6(sprite, sub_8103250); + sprite->callback = sub_80A67BC; +} + +static void sub_8103250(struct Sprite* sprite) +{ + if (++sprite->data[0] > 16) + { + StartSpriteAffineAnim(sprite, 1); + StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); + sprite->callback = sub_80A67BC; + } +} + +void sub_8103284(struct Sprite* sprite) +{ + u8 battler; + if (gBattleAnimArgs[0] == 0) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; + + sprite->pos1.x = GetBattlerSpriteCoord(battler, 0); + sprite->pos1.y = sub_80A861C(battler, 2); + if (sprite->pos1.y <= 9) + sprite->pos1.y = 10; + + sprite->data[0] = 1; + sprite->data[1] = 0; + sprite->data[2] = sprite->subpriority; + sprite->data[3] = sprite->subpriority + 4; + sprite->data[4] = 0; + StoreSpriteCallbackInData6(sprite, sub_8103300); + sprite->callback = sub_80A67BC; +} + +static void sub_8103300(struct Sprite* sprite) +{ + if (++sprite->data[4] > 12) + sprite->callback = sub_8103320; +} + +static void sub_8103320(struct Sprite* sprite) +{ + s16 temp; + s16 temp2; + sprite->data[1] += 4; + if (sprite->data[1] > 254) + { + if (--sprite->data[0] == 0) + { + sprite->pos2.x = 0; + sprite->callback = sub_8103250; + return; + } + else + { + sprite->data[1] &= 0xFF; + } + } + + if (sprite->data[1] > 0x4F) + sprite->subpriority = sprite->data[3]; + + if (sprite->data[1] > 0x9F) + sprite->subpriority = sprite->data[2]; + + temp = gSineTable[sprite->data[1]]; + sprite->pos2.x = (temp2 = temp >> 3) + (temp2 >> 1); +} + +void sub_8103390(struct Sprite* sprite) +{ + u8 bank; + if (gBattleAnimArgs[0] == 0) + bank = gBattleAnimAttacker; + else + bank = gBattleAnimTarget; + + sub_810310C(bank, sprite); + if (GetBattlerSide(bank) == B_SIDE_PLAYER) + { + StartSpriteAnim(sprite, 0); + sprite->data[0] = 2; + } + else + { + StartSpriteAnim(sprite, 1); + sprite->data[0] = 3; + } + + sprite->callback = sub_81033F0; +} + +static void sub_81033F0(struct Sprite* sprite) +{ + if (++sprite->data[1] > 10) + { + sprite->data[1] = 0; + StartSpriteAnim(sprite, sprite->data[0]); + StoreSpriteCallbackInData6(sprite, sub_810342C); + sprite->callback = sub_80A67D8; + } +} + +static void sub_810342C(struct Sprite* sprite) +{ + if (++sprite->data[1] > 5) + DestroyAnimSprite(sprite); +} diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 07fb604b8..e5f0cd165 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -389,50 +389,50 @@ void sub_8159308(u8 taskId) NAKED void sub_8159308(u8 taskId) { - asm_unified(" push {r4,r5,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r5, r0, 0\n\ - ldr r1, =gTasks\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r4, r0, r1\n\ - ldrh r2, [r4, 0xE]\n\ - ldrh r0, [r4, 0x1C]\n\ - adds r1, r0, 0x1\n\ - strh r1, [r4, 0x1C]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - movs r3, 0x12\n\ - ldrsh r1, [r4, r3]\n\ - cmp r0, r1\n\ - bne _08159342\n\ - movs r0, 0\n\ - strh r0, [r4, 0x1C]\n\ - ldrh r1, [r4, 0x1E]\n\ - adds r0, r2, r1\n\ - strh r0, [r4, 0x1E]\n\ - movs r2, 0x1E\n\ - ldrsh r0, [r4, r2]\n\ - bl KeepPanInRange\n\ - strh r0, [r4, 0x1E]\n\ + asm_unified(" push {r4,r5,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r5, r0, 0\n\ + ldr r1, =gTasks\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r4, r0, r1\n\ + ldrh r2, [r4, 0xE]\n\ + ldrh r0, [r4, 0x1C]\n\ + adds r1, r0, 0x1\n\ + strh r1, [r4, 0x1C]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + movs r3, 0x12\n\ + ldrsh r1, [r4, r3]\n\ + cmp r0, r1\n\ + bne _08159342\n\ + movs r0, 0\n\ + strh r0, [r4, 0x1C]\n\ + ldrh r1, [r4, 0x1E]\n\ + adds r0, r2, r1\n\ + strh r0, [r4, 0x1E]\n\ + movs r2, 0x1E\n\ + ldrsh r0, [r4, r2]\n\ + bl KeepPanInRange\n\ + strh r0, [r4, 0x1E]\n\ _08159342:\n\ - ldr r1, =gUnknown_02038440\n\ - ldrh r0, [r4, 0x1E]\n\ - strb r0, [r1]\n\ - movs r3, 0x1E\n\ - ldrsh r1, [r4, r3]\n\ - movs r2, 0xC\n\ - ldrsh r0, [r4, r2]\n\ - cmp r1, r0\n\ - bne _0815935A\n\ - adds r0, r5, 0\n\ - bl DestroyAnimVisualTask\n\ + ldr r1, =gUnknown_02038440\n\ + ldrh r0, [r4, 0x1E]\n\ + strb r0, [r1]\n\ + movs r3, 0x1E\n\ + ldrsh r1, [r4, r3]\n\ + movs r2, 0xC\n\ + ldrsh r0, [r4, r2]\n\ + cmp r1, r0\n\ + bne _0815935A\n\ + adds r0, r5, 0\n\ + bl DestroyAnimVisualTask\n\ _0815935A:\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); } #endif diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 11cf46ab5..85ff692b3 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -3,7 +3,7 @@ #include "contest.h" #include "gpu_regs.h" #include "graphics.h" -#include "malloc.h" +#include "alloc.h" #include "palette.h" #include "sound.h" #include "sprite.h" @@ -40,14 +40,14 @@ static void sub_8117FD0(u8); const u16 gUnknown_08597418 = RGB(31, 31, 31); -// no clue what these are... -// possibly some register offsets -const u8 gUnknown_0859741A[] = {0x08, 0x0a, 0x0c, 0x0e}; -const u8 gUnknown_0859741E[] = {0x08, 0x0a, 0x0c, 0x0e}; +// These belong in battle_intro.c, but there putting them there causes 2 bytes of alignment padding +// between the two .rodata segments. Perhaps battle_intro.c actually belongs in this file, too. +const u8 gUnknown_0859741A[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; +const u8 gUnknown_0859741E[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT}; void sub_8116620(u8 taskId) { - u32 selectedPalettes = sub_811583C(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); selectedPalettes |= sub_80A76C4((gBattleAnimArgs[0] >> 7) & 1, (gBattleAnimArgs[0] >> 8) & 1, (gBattleAnimArgs[0] >> 9) & 1, @@ -62,7 +62,7 @@ void sub_8116664(u8 taskId) u8 animBattlers[2]; animBattlers[1] = 0xFF; - selectedPalettes = sub_811583C(1); + selectedPalettes = UnpackSelectedBattleAnimPalettes(1); switch (gBattleAnimArgs[0]) { case 2: @@ -105,7 +105,7 @@ void sub_8116664(u8 taskId) void AnimTask_SetCamouflageBlend(u8 taskId) { - u32 selectedPalettes = sub_811583C(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); switch (gBattleTerrain) { case BATTLE_TERRAIN_GRASS: diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 0cec046e4..8cbc62aab 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -27,7 +27,6 @@ #include "constants/trainers.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern struct UnusedControllerStruct gUnknown_02022D0C; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; @@ -1251,17 +1250,17 @@ static void LinkOpponentHandleDrawTrainerPic(void) || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE) - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_LEAF]; else - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RED]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RED]; } else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE) - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RS_MAY]; else - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RS_BRENDAN]; } else { @@ -1280,17 +1279,17 @@ static void LinkOpponentHandleDrawTrainerPic(void) || (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_LEAF_GREEN) { if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0) - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_LEAF]; else - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RED]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RED]; } else if ((gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_SAPPHIRE) { if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0) - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RS_MAY]; else - trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN]; + trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RS_BRENDAN]; } else { diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 04a3784da..0cd15f39e 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -26,8 +26,6 @@ #include "constants/songs.h" #include "constants/trainers.h" -extern struct UnusedControllerStruct gUnknown_02022D0C; - extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 403cc5eed..c057e8575 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -34,7 +34,6 @@ #include "constants/trainers.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern struct UnusedControllerStruct gUnknown_02022D0C; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 49629198c..2bd5ef365 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -37,7 +37,6 @@ extern u8 gUnknown_0203CEE8; extern u8 gUnknown_0203CEE9; extern u8 gUnknown_0203CF00[]; -extern struct UnusedControllerStruct gUnknown_02022D0C; extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index bd892c922..02dd1383b 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -6,6 +6,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_setup.h" +#include "battle_tower.h" #include "bg.h" #include "data2.h" #include "item_use.h" @@ -26,15 +27,11 @@ #include "constants/songs.h" #include "constants/trainers.h" -extern struct UnusedControllerStruct gUnknown_02022D0C; - extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; extern void sub_81358F4(void); extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern void SetMultiuseSpriteTemplateToPokemon(u16, u8); -extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); // this file's functions static void PlayerPartnerHandleGetMonData(void); diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index b54e61255..0cf3634dc 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -6,6 +6,7 @@ #include "battle_interface.h" #include "battle_message.h" #include "battle_setup.h" +#include "battle_tower.h" #include "battle_tv.h" #include "bg.h" #include "data2.h" @@ -29,14 +30,11 @@ #include "constants/trainers.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern struct UnusedControllerStruct gUnknown_02022D0C; -extern u8 gUnknown_0203C7B4; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); extern u16 sub_8068B48(void); -extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); // this file's functions static void RecordedOpponentHandleGetMonData(void); diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 17b115caa..4d7fdc01e 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -25,16 +25,12 @@ #include "constants/battle_anim.h" #include "constants/songs.h" -extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; -extern u8 gUnknown_0203C7B4; extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern struct UnusedControllerStruct gUnknown_02022D0C; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); // this file's functions static void RecordedPlayerHandleGetMonData(void); diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 1a3a2d53d..5d87c4f90 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -31,9 +31,6 @@ #include "constants/songs.h" #include "constants/trainers.h" -extern s32 gUnknown_0203CD70; -extern struct UnusedControllerStruct gUnknown_02022D0C; - extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 1c6942ead..a6d6e9294 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -13,10 +13,10 @@ #include "constants/abilities.h" #include "constants/species.h" -extern u8 gUnknown_02022D08; -extern u8 gUnknown_02022D09; -extern u8 gUnknown_02022D0A; - +static EWRAM_DATA u8 sLinkSendTaskId = 0; +static EWRAM_DATA u8 sLinkReceiveTaskId = 0; +static EWRAM_DATA u8 sUnknown_02022D0A = 0; +EWRAM_DATA struct UnusedControllerStruct gUnknown_02022D0C = {}; static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {}; extern void sub_81B8D64(u8 battlerId, u8 arg1); // party_menu @@ -681,20 +681,20 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size) static void CreateTasksForSendRecvLinkBuffers(void) { - gUnknown_02022D08 = CreateTask(Task_HandleSendLinkBuffersData, 0); - gTasks[gUnknown_02022D08].data[11] = 0; - gTasks[gUnknown_02022D08].data[12] = 0; - gTasks[gUnknown_02022D08].data[13] = 0; - gTasks[gUnknown_02022D08].data[14] = 0; - gTasks[gUnknown_02022D08].data[15] = 0; + sLinkSendTaskId = CreateTask(Task_HandleSendLinkBuffersData, 0); + gTasks[sLinkSendTaskId].data[11] = 0; + gTasks[sLinkSendTaskId].data[12] = 0; + gTasks[sLinkSendTaskId].data[13] = 0; + gTasks[sLinkSendTaskId].data[14] = 0; + gTasks[sLinkSendTaskId].data[15] = 0; - gUnknown_02022D09 = CreateTask(Task_HandleCopyReceivedLinkBuffersData, 0); - gTasks[gUnknown_02022D09].data[12] = 0; - gTasks[gUnknown_02022D09].data[13] = 0; - gTasks[gUnknown_02022D09].data[14] = 0; - gTasks[gUnknown_02022D09].data[15] = 0; + sLinkReceiveTaskId = CreateTask(Task_HandleCopyReceivedLinkBuffersData, 0); + gTasks[sLinkReceiveTaskId].data[12] = 0; + gTasks[sLinkReceiveTaskId].data[13] = 0; + gTasks[sLinkReceiveTaskId].data[14] = 0; + gTasks[sLinkReceiveTaskId].data[15] = 0; - gUnknown_02022D0A = 0; + sUnknown_02022D0A = 0; } enum @@ -716,24 +716,24 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) s32 i; alignedSize = size - size % 4 + 4; - if (gTasks[gUnknown_02022D08].data[14] + alignedSize + LINK_BUFF_DATA + 1 > BATTLE_BUFFER_LINK_SIZE) + if (gTasks[sLinkSendTaskId].data[14] + alignedSize + LINK_BUFF_DATA + 1 > BATTLE_BUFFER_LINK_SIZE) { - gTasks[gUnknown_02022D08].data[12] = gTasks[gUnknown_02022D08].data[14]; - gTasks[gUnknown_02022D08].data[14] = 0; + gTasks[sLinkSendTaskId].data[12] = gTasks[sLinkSendTaskId].data[14]; + gTasks[sLinkSendTaskId].data[14] = 0; } - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BATTLER] = gActiveBattler; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattlerAttacker; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattlerTarget; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BATTLER_FLAGS] = gAbsentBattlerFlags; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_EFFECT_BATTLER] = gEffectBattler; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_ACTIVE_BATTLER] = gActiveBattler; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_ATTACKER] = gBattlerAttacker; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_TARGET] = gBattlerTarget; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_ABSENT_BATTLER_FLAGS] = gAbsentBattlerFlags; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_EFFECT_BATTLER] = gEffectBattler; for (i = 0; i < size; i++) - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_DATA + i] = data[i]; + gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_DATA + i] = data[i]; - gTasks[gUnknown_02022D08].data[14] = gTasks[gUnknown_02022D08].data[14] + alignedSize + LINK_BUFF_DATA; + gTasks[sLinkSendTaskId].data[14] = gTasks[sLinkSendTaskId].data[14] + alignedSize + LINK_BUFF_DATA; } static void Task_HandleSendLinkBuffersData(u8 taskId) @@ -845,19 +845,19 @@ void sub_8033648(void) #endif r6 = gBlockRecvBuffer[i][2]; - if (gTasks[gUnknown_02022D09].data[14] + 9 + r6 > 0x1000) + if (gTasks[sLinkReceiveTaskId].data[14] + 9 + r6 > 0x1000) { - gTasks[gUnknown_02022D09].data[12] = gTasks[gUnknown_02022D09].data[14]; - gTasks[gUnknown_02022D09].data[14] = 0; + gTasks[sLinkReceiveTaskId].data[12] = gTasks[sLinkReceiveTaskId].data[14]; + gTasks[sLinkReceiveTaskId].data[14] = 0; } - dest = &gLinkBattleRecvBuffer[gTasks[gUnknown_02022D09].data[14]]; + dest = &gLinkBattleRecvBuffer[gTasks[sLinkReceiveTaskId].data[14]]; src = recvBuffer; for (j = 0; j < r6 + 8; j++) dest[j] = src[j]; - gTasks[gUnknown_02022D09].data[14] = gTasks[gUnknown_02022D09].data[14] + r6 + 8; + gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + r6 + 8; } } } diff --git a/src/battle_dome.c b/src/battle_dome.c index 152a11ae8..514b57c97 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -8,7 +8,7 @@ #include "event_data.h" #include "overworld.h" #include "util.h" -#include "malloc.h" +#include "alloc.h" #include "string_util.h" #include "random.h" #include "task.h" @@ -26,6 +26,7 @@ #include "international_string_util.h" #include "trainer_pokemon_sprites.h" #include "scanline_effect.h" +#include "script_pokemon_util_80F87D8.h" #include "graphics.h" #include "constants/species.h" #include "constants/moves.h" @@ -57,19 +58,9 @@ struct UnkStruct_860DD10 }; extern void sub_81B8558(void); -extern u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId); -extern u8 GetFrontierBrainMonEvs(u8, u8); -extern u8 GetFrontierBrainMonNature(u8); -extern void sub_81A4C30(void); -extern u8 sub_81A3610(void); -extern u16 GetFrontierBrainMonSpecies(u8); -extern void ReducePlayerPartyToSelectedMons(void); extern u8 gSelectedOrderFromParty[]; -extern const u16 gBattleFrontierHeldItems[]; -extern const struct FacilityMon gBattleFrontierMons[]; -extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; extern const struct SpriteTemplate gUnknown_0860CFA8; // text @@ -256,361 +247,361 @@ static EWRAM_DATA u8 *sTilemapBuffer = NULL; // Const rom data. static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] = { - [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_KARATE_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DOUBLE_SLAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_COMET_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MEGA_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PAY_DAY] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FIRE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_ICE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_THUNDER_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SCRATCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_VICE_GRIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_GUILLOTINE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_RAZOR_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SWORDS_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, - [MOVE_CUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WING_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WHIRLWIND] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BIND] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_VINE_WHIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_STOMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DOUBLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MEGA_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROLLING_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SAND_ATTACK] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HEADBUTT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_HORN_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FURY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HORN_DRILL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BODY_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_WRAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_TAKE_DOWN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_THRASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DOUBLE_EDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TAIL_WHIP] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_POISON_STING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_TWINEEDLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_PIN_MISSILE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LEER] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_BITE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_GROWL] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROAR] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SING] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SUPERSONIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SONIC_BOOM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DISABLE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ACID] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_EMBER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FLAMETHROWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_MIST] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_GUN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HYDRO_PUMP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0}, - [MOVE_SURF] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0}, - [MOVE_ICE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_BLIZZARD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1}, - [MOVE_PSYBEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_BUBBLE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_AURORA_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_HYPER_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0}, - [MOVE_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DRILL_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SUBMISSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LOW_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_COUNTER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_SEISMIC_TOSS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_STRENGTH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ABSORB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MEGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_LEECH_SEED] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GROWTH] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_RAZOR_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SOLAR_BEAM] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, - [MOVE_POISON_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_STUN_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SLEEP_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PETAL_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_STRING_SHOT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DRAGON_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FIRE_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_THUNDER_SHOCK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_THUNDERBOLT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_THUNDER_WAVE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_THUNDER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, - [MOVE_ROCK_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_EARTHQUAKE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, - [MOVE_FISSURE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, - [MOVE_DIG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TOXIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_CONFUSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_PSYCHIC] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_HYPNOSIS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MEDITATE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_AGILITY] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_QUICK_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TELEPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_NIGHT_SHADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MIMIC] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SCREECH] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DOUBLE_TEAM] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_RECOVER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HARDEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MINIMIZE] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SMOKESCREEN] = {0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CONFUSE_RAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WITHDRAW] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DEFENSE_CURL] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BARRIER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LIGHT_SCREEN] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HAZE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_REFLECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FOCUS_ENERGY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BIDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_METRONOME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_MIRROR_MOVE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_SELF_DESTRUCT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, - [MOVE_EGG_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, - [MOVE_LICK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SMOG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SLUDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_BONE_CLUB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_FIRE_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_WATERFALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CLAMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SWIFT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SKULL_BASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_SPIKE_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CONSTRICT] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_AMNESIA] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_KINESIS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SOFT_BOILED] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HI_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GLARE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DREAM_EATER] = {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_POISON_GAS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BARRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LEECH_LIFE] = {0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_LOVELY_KISS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SKY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_TRANSFORM] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BUBBLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DIZZY_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLASH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PSYWAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SPLASH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ACID_ARMOR] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CRABHAMMER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, - [MOVE_EXPLOSION] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0}, - [MOVE_FURY_SWIPES] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BONEMERANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_REST] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_SLIDE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_HYPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SHARPEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CONVERSION] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_TRI_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SUPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SLASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SUBSTITUTE] = {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_STRUGGLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_SKETCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, - [MOVE_TRIPLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_THIEF] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SPIDER_WEB] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MIND_READER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_NIGHTMARE] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLAME_WHEEL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SNORE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_CURSE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FLAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CONVERSION_2] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AEROBLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_COTTON_SPORE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_REVERSAL] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SPITE] = {0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_POWDER_SNOW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_PROTECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, - [MOVE_MACH_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SCARY_FACE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FAINT_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SWEET_KISS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BELLY_DRUM] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SLUDGE_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, - [MOVE_MUD_SLAP] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_OCTAZOOKA] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SPIKES] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ZAP_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1}, - [MOVE_FORESIGHT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DESTINY_BOND] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_PERISH_SONG] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_ICY_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_DETECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_BONE_RUSH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LOCK_ON] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_OUTRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, - [MOVE_SANDSTORM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GIGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ENDURE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CHARM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROLLOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FALSE_SWIPE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SWAGGER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_MILK_DRINK] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SPARK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FURY_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_STEEL_WING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_MEAN_LOOK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ATTRACT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SLEEP_TALK] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_HEAL_BELL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_RETURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_PRESENT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_FRUSTRATION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SAFEGUARD] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PAIN_SPLIT] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SACRED_FIRE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_MAGNITUDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DYNAMIC_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1}, - [MOVE_MEGAHORN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, - [MOVE_DRAGON_BREATH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_BATON_PASS] = {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ENCORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_PURSUIT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_RAPID_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SWEET_SCENT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_IRON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, - [MOVE_METAL_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_VITAL_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MORNING_SUN] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_SYNTHESIS] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_MOONLIGHT] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_HIDDEN_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CROSS_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0}, - [MOVE_TWISTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_RAIN_DANCE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_SUNNY_DAY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_CRUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_MIRROR_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_PSYCH_UP] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_EXTREME_SPEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ANCIENT_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_SHADOW_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FUTURE_SIGHT] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_SMASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_WHIRLPOOL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_BEAT_UP] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FAKE_OUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_UPROAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_STOCKPILE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SPIT_UP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_SWALLOW] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HEAT_WAVE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, - [MOVE_HAIL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_TORMENT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLATTER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WILL_O_WISP] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MEMENTO] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FACADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FOCUS_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_SMELLING_SALT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FOLLOW_ME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_NATURE_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CHARGE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TAUNT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HELPING_HAND] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TRICK] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROLE_PLAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WISH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ASSIST] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_INGRAIN] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SUPERPOWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0}, - [MOVE_MAGIC_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_RECYCLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_REVENGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_BRICK_BREAK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_YAWN] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_KNOCK_OFF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_ENDEAVOR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ERUPTION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, - [MOVE_SKILL_SWAP] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_IMPRISON] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_REFRESH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_GRUDGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_SNATCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_SECRET_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DIVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ARM_THRUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CAMOUFLAGE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TAIL_GLOW] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_LUSTER_PURGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_MIST_BALL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_FEATHER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TEETER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_BLAZE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_MUD_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ICE_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_NEEDLE_ARM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SLACK_OFF] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HYPER_VOICE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_POISON_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_CRUSH_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_BLAST_BURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_HYDRO_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_METEOR_MASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, - [MOVE_ASTONISH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_WEATHER_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AROMATHERAPY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_FAKE_TEARS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AIR_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_OVERHEAT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_ODOR_SLEUTH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SILVER_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_METAL_SOUND] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GRASS_WHISTLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_TICKLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_COSMIC_POWER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_SPOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, - [MOVE_SIGNAL_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SHADOW_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_EXTRASENSORY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SKY_UPPERCUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SAND_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SHEER_COLD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, - [MOVE_MUDDY_WATER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, - [MOVE_BULLET_SEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AERIAL_ACE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ICICLE_SPEAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_IRON_DEFENSE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BLOCK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_HOWL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DRAGON_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FRENZY_PLANT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_BULK_UP] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BOUNCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1}, - [MOVE_MUD_SHOT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_POISON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_COVET] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_VOLT_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0}, - [MOVE_MAGICAL_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CALM_MIND] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LEAF_BLADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DRAGON_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SHOCK_WAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_PULSE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DOOM_DESIRE] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_KARATE_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DOUBLE_SLAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_COMET_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MEGA_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PAY_DAY] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FIRE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_ICE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_THUNDER_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SCRATCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_VICE_GRIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_GUILLOTINE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_RAZOR_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SWORDS_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + [MOVE_CUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WING_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WHIRLWIND] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BIND] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_VINE_WHIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_STOMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DOUBLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MEGA_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROLLING_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SAND_ATTACK] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HEADBUTT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_HORN_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FURY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HORN_DRILL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BODY_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_WRAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_TAKE_DOWN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_THRASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DOUBLE_EDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TAIL_WHIP] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_POISON_STING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_TWINEEDLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_PIN_MISSILE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LEER] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_BITE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_GROWL] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROAR] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SING] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SUPERSONIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SONIC_BOOM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DISABLE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ACID] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_EMBER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FLAMETHROWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_MIST] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_GUN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HYDRO_PUMP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0}, + [MOVE_SURF] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0}, + [MOVE_ICE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_BLIZZARD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1}, + [MOVE_PSYBEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_BUBBLE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_AURORA_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_HYPER_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0}, + [MOVE_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DRILL_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SUBMISSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LOW_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_COUNTER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_SEISMIC_TOSS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_STRENGTH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ABSORB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MEGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_LEECH_SEED] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GROWTH] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_RAZOR_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SOLAR_BEAM] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, + [MOVE_POISON_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_STUN_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SLEEP_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PETAL_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_STRING_SHOT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DRAGON_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FIRE_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_THUNDER_SHOCK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_THUNDERBOLT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_THUNDER_WAVE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_THUNDER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, + [MOVE_ROCK_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_EARTHQUAKE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, + [MOVE_FISSURE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + [MOVE_DIG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TOXIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_CONFUSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_PSYCHIC] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_HYPNOSIS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MEDITATE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_AGILITY] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_QUICK_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TELEPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_NIGHT_SHADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MIMIC] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SCREECH] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DOUBLE_TEAM] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_RECOVER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HARDEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MINIMIZE] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SMOKESCREEN] = {0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CONFUSE_RAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WITHDRAW] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DEFENSE_CURL] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BARRIER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LIGHT_SCREEN] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HAZE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_REFLECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FOCUS_ENERGY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BIDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_METRONOME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_MIRROR_MOVE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_SELF_DESTRUCT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, + [MOVE_EGG_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, + [MOVE_LICK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SMOG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SLUDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_BONE_CLUB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_FIRE_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_WATERFALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CLAMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SWIFT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SKULL_BASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_SPIKE_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CONSTRICT] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_AMNESIA] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_KINESIS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SOFT_BOILED] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HI_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GLARE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DREAM_EATER] = {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_POISON_GAS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BARRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LEECH_LIFE] = {0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_LOVELY_KISS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SKY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_TRANSFORM] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BUBBLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DIZZY_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLASH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PSYWAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SPLASH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ACID_ARMOR] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CRABHAMMER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, + [MOVE_EXPLOSION] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0}, + [MOVE_FURY_SWIPES] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BONEMERANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_REST] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_SLIDE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_HYPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SHARPEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CONVERSION] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_TRI_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SUPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SLASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SUBSTITUTE] = {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_STRUGGLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_SKETCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + [MOVE_TRIPLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_THIEF] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SPIDER_WEB] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MIND_READER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_NIGHTMARE] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLAME_WHEEL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SNORE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_CURSE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FLAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CONVERSION_2] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AEROBLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_COTTON_SPORE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_REVERSAL] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SPITE] = {0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_POWDER_SNOW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_PROTECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, + [MOVE_MACH_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SCARY_FACE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FAINT_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SWEET_KISS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BELLY_DRUM] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SLUDGE_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, + [MOVE_MUD_SLAP] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_OCTAZOOKA] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SPIKES] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ZAP_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1}, + [MOVE_FORESIGHT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DESTINY_BOND] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_PERISH_SONG] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_ICY_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_DETECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_BONE_RUSH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LOCK_ON] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_OUTRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, + [MOVE_SANDSTORM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GIGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ENDURE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CHARM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROLLOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FALSE_SWIPE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SWAGGER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_MILK_DRINK] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SPARK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FURY_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_STEEL_WING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_MEAN_LOOK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ATTRACT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SLEEP_TALK] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_HEAL_BELL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_RETURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_PRESENT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_FRUSTRATION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SAFEGUARD] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PAIN_SPLIT] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SACRED_FIRE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_MAGNITUDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DYNAMIC_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1}, + [MOVE_MEGAHORN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, + [MOVE_DRAGON_BREATH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_BATON_PASS] = {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ENCORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_PURSUIT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_RAPID_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SWEET_SCENT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_IRON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, + [MOVE_METAL_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_VITAL_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MORNING_SUN] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_SYNTHESIS] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_MOONLIGHT] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_HIDDEN_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CROSS_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0}, + [MOVE_TWISTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_RAIN_DANCE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_SUNNY_DAY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_CRUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_MIRROR_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_PSYCH_UP] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_EXTREME_SPEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ANCIENT_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_SHADOW_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FUTURE_SIGHT] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_SMASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_WHIRLPOOL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_BEAT_UP] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FAKE_OUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_UPROAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_STOCKPILE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SPIT_UP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_SWALLOW] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HEAT_WAVE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, + [MOVE_HAIL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_TORMENT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLATTER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WILL_O_WISP] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MEMENTO] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FACADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FOCUS_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_SMELLING_SALT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FOLLOW_ME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_NATURE_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CHARGE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TAUNT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HELPING_HAND] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TRICK] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROLE_PLAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WISH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ASSIST] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_INGRAIN] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SUPERPOWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0}, + [MOVE_MAGIC_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_RECYCLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_REVENGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_BRICK_BREAK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_YAWN] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_KNOCK_OFF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_ENDEAVOR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ERUPTION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, + [MOVE_SKILL_SWAP] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_IMPRISON] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_REFRESH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_GRUDGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_SNATCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_SECRET_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DIVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ARM_THRUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CAMOUFLAGE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TAIL_GLOW] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_LUSTER_PURGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_MIST_BALL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_FEATHER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TEETER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_BLAZE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_MUD_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ICE_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_NEEDLE_ARM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SLACK_OFF] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HYPER_VOICE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_POISON_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_CRUSH_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_BLAST_BURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_HYDRO_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_METEOR_MASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, + [MOVE_ASTONISH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_WEATHER_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AROMATHERAPY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_FAKE_TEARS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AIR_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_OVERHEAT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_ODOR_SLEUTH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SILVER_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_METAL_SOUND] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GRASS_WHISTLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_TICKLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_COSMIC_POWER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_SPOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, + [MOVE_SIGNAL_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SHADOW_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_EXTRASENSORY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SKY_UPPERCUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SAND_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SHEER_COLD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + [MOVE_MUDDY_WATER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, + [MOVE_BULLET_SEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AERIAL_ACE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ICICLE_SPEAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_IRON_DEFENSE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BLOCK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_HOWL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DRAGON_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FRENZY_PLANT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_BULK_UP] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BOUNCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1}, + [MOVE_MUD_SHOT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_POISON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_COVET] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_VOLT_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0}, + [MOVE_MAGICAL_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CALM_MIND] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LEAF_BLADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DRAGON_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SHOCK_WAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_PULSE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DOOM_DESIRE] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, }; static const u8 gUnknown_0860C988[][DOME_TOURNAMENT_TRAINERS_COUNT] = @@ -3148,239 +3139,239 @@ NAKED static s32 GetTypeEffectivenessPoints(s32 move, s32 species, s32 arg2) { 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, 0x8\n\ - adds r3, r0, 0\n\ - adds r4, r1, 0\n\ - str r2, [sp]\n\ - movs r6, 0\n\ - movs r2, 0x14\n\ - cmp r3, 0\n\ - beq _0818FFF0\n\ - ldr r0, =0x0000ffff\n\ - cmp r3, r0\n\ - beq _0818FFF0\n\ - ldr r0, =gBattleMoves\n\ - lsls r1, r3, 1\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r3, r1, r0\n\ - ldrb r0, [r3, 0x1]\n\ - cmp r0, 0\n\ - bne _0818FFFC\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\ + adds r3, r0, 0\n\ + adds r4, r1, 0\n\ + str r2, [sp]\n\ + movs r6, 0\n\ + movs r2, 0x14\n\ + cmp r3, 0\n\ + beq _0818FFF0\n\ + ldr r0, =0x0000ffff\n\ + cmp r3, r0\n\ + beq _0818FFF0\n\ + ldr r0, =gBattleMoves\n\ + lsls r1, r3, 1\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r3, r1, r0\n\ + ldrb r0, [r3, 0x1]\n\ + cmp r0, 0\n\ + bne _0818FFFC\n\ _0818FFF0:\n\ - movs r0, 0\n\ - b _08190156\n\ - .pool\n\ + movs r0, 0\n\ + b _08190156\n\ + .pool\n\ _0818FFFC:\n\ - ldr r1, =gBaseStats\n\ - lsls r0, r4, 3\n\ - subs r0, r4\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x6]\n\ - mov r10, r1\n\ - ldrb r1, [r0, 0x7]\n\ - mov r9, r1\n\ - ldrb r0, [r0, 0x16]\n\ - mov r8, r0\n\ - ldrb r3, [r3, 0x2]\n\ - str r3, [sp, 0x4]\n\ - cmp r0, 0x1A\n\ - bne _0819002C\n\ - cmp r3, 0x4\n\ - bne _0819002C\n\ - ldr r0, [sp]\n\ - cmp r0, 0x1\n\ - bne _081900AA\n\ - movs r2, 0x8\n\ - b _081900A4\n\ - .pool\n\ + ldr r1, =gBaseStats\n\ + lsls r0, r4, 3\n\ + subs r0, r4\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r1, [r0, 0x6]\n\ + mov r10, r1\n\ + ldrb r1, [r0, 0x7]\n\ + mov r9, r1\n\ + ldrb r0, [r0, 0x16]\n\ + mov r8, r0\n\ + ldrb r3, [r3, 0x2]\n\ + str r3, [sp, 0x4]\n\ + cmp r0, 0x1A\n\ + bne _0819002C\n\ + cmp r3, 0x4\n\ + bne _0819002C\n\ + ldr r0, [sp]\n\ + cmp r0, 0x1\n\ + bne _081900AA\n\ + movs r2, 0x8\n\ + b _081900A4\n\ + .pool\n\ _0819002C:\n\ - ldr r0, =gTypeEffectiveness\n\ - adds r1, r6, r0\n\ - ldrb r0, [r1]\n\ - ldr r7, =gTypeEffectiveness\n\ - cmp r0, 0xFF\n\ - beq _081900A4\n\ - adds r4, r1, 0\n\ + ldr r0, =gTypeEffectiveness\n\ + adds r1, r6, r0\n\ + ldrb r0, [r1]\n\ + ldr r7, =gTypeEffectiveness\n\ + cmp r0, 0xFF\n\ + beq _081900A4\n\ + adds r4, r1, 0\n\ _0819003A:\n\ - ldrb r0, [r4]\n\ - cmp r0, 0xFE\n\ - beq _08190096\n\ - ldrb r0, [r4]\n\ - ldr r1, [sp, 0x4]\n\ - cmp r0, r1\n\ - bne _08190096\n\ - ldrb r0, [r4, 0x1]\n\ - adds r5, r6, 0x1\n\ - cmp r0, r10\n\ - bne _0819006C\n\ - adds r1, r6, 0x2\n\ - mov r0, r8\n\ - cmp r0, 0x19\n\ - bne _0819005E\n\ - ldrb r0, [r4, 0x2]\n\ - cmp r0, 0x28\n\ - bne _0819006C\n\ + ldrb r0, [r4]\n\ + cmp r0, 0xFE\n\ + beq _08190096\n\ + ldrb r0, [r4]\n\ + ldr r1, [sp, 0x4]\n\ + cmp r0, r1\n\ + bne _08190096\n\ + ldrb r0, [r4, 0x1]\n\ + adds r5, r6, 0x1\n\ + cmp r0, r10\n\ + bne _0819006C\n\ + adds r1, r6, 0x2\n\ + mov r0, r8\n\ + cmp r0, 0x19\n\ + bne _0819005E\n\ + ldrb r0, [r4, 0x2]\n\ + cmp r0, 0x28\n\ + bne _0819006C\n\ _0819005E:\n\ - adds r0, r1, r7\n\ - ldrb r0, [r0]\n\ - muls r0, r2\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r2, r0, 0\n\ + adds r0, r1, r7\n\ + ldrb r0, [r0]\n\ + muls r0, r2\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r2, r0, 0\n\ _0819006C:\n\ - adds r0, r5, r7\n\ - ldrb r0, [r0]\n\ - cmp r0, r9\n\ - bne _08190096\n\ - cmp r10, r9\n\ - beq _08190096\n\ - adds r1, r6, 0x2\n\ - mov r0, r8\n\ - cmp r0, 0x19\n\ - bne _08190088\n\ - adds r0, r1, r7\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x28\n\ - bne _08190096\n\ + adds r0, r5, r7\n\ + ldrb r0, [r0]\n\ + cmp r0, r9\n\ + bne _08190096\n\ + cmp r10, r9\n\ + beq _08190096\n\ + adds r1, r6, 0x2\n\ + mov r0, r8\n\ + cmp r0, 0x19\n\ + bne _08190088\n\ + adds r0, r1, r7\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x28\n\ + bne _08190096\n\ _08190088:\n\ - adds r0, r1, r7\n\ - ldrb r0, [r0]\n\ - muls r0, r2\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r2, r0, 0\n\ + adds r0, r1, r7\n\ + ldrb r0, [r0]\n\ + muls r0, r2\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r2, r0, 0\n\ _08190096:\n\ - adds r4, 0x3\n\ - adds r6, 0x3\n\ - ldr r1, =gTypeEffectiveness\n\ - adds r0, r6, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0xFF\n\ - bne _0819003A\n\ + adds r4, 0x3\n\ + adds r6, 0x3\n\ + ldr r1, =gTypeEffectiveness\n\ + adds r0, r6, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0xFF\n\ + bne _0819003A\n\ _081900A4:\n\ - ldr r0, [sp]\n\ - cmp r0, 0x1\n\ - beq _081900E0\n\ + ldr r0, [sp]\n\ + cmp r0, 0x1\n\ + beq _081900E0\n\ _081900AA:\n\ - ldr r1, [sp]\n\ - cmp r1, 0x1\n\ - bgt _081900BC\n\ - cmp r1, 0\n\ - beq _081900C4\n\ - b _08190154\n\ - .pool\n\ + ldr r1, [sp]\n\ + cmp r1, 0x1\n\ + bgt _081900BC\n\ + cmp r1, 0\n\ + beq _081900C4\n\ + b _08190154\n\ + .pool\n\ _081900BC:\n\ - ldr r0, [sp]\n\ - cmp r0, 0x2\n\ - beq _08190114\n\ - b _08190154\n\ + ldr r0, [sp]\n\ + cmp r0, 0x2\n\ + beq _08190114\n\ + b _08190154\n\ _081900C4:\n\ - cmp r2, 0xA\n\ - beq _08190146\n\ - cmp r2, 0xA\n\ - ble _08190146\n\ - cmp r2, 0x28\n\ - beq _0819014A\n\ - cmp r2, 0x28\n\ - bgt _081900DA\n\ - cmp r2, 0x14\n\ - beq _08190104\n\ - b _08190146\n\ + cmp r2, 0xA\n\ + beq _08190146\n\ + cmp r2, 0xA\n\ + ble _08190146\n\ + cmp r2, 0x28\n\ + beq _0819014A\n\ + cmp r2, 0x28\n\ + bgt _081900DA\n\ + cmp r2, 0x14\n\ + beq _08190104\n\ + b _08190146\n\ _081900DA:\n\ - cmp r2, 0x50\n\ - bne _08190146\n\ - b _08190100\n\ + cmp r2, 0x50\n\ + bne _08190146\n\ + b _08190100\n\ _081900E0:\n\ - cmp r2, 0xA\n\ - beq _08190104\n\ - cmp r2, 0xA\n\ - bgt _081900F2\n\ - cmp r2, 0\n\ - beq _08190100\n\ - cmp r2, 0x5\n\ - beq _0819014A\n\ - b _08190146\n\ + cmp r2, 0xA\n\ + beq _08190104\n\ + cmp r2, 0xA\n\ + bgt _081900F2\n\ + cmp r2, 0\n\ + beq _08190100\n\ + cmp r2, 0x5\n\ + beq _0819014A\n\ + b _08190146\n\ _081900F2:\n\ - cmp r2, 0x28\n\ - beq _08190108\n\ - cmp r2, 0x28\n\ - ble _08190146\n\ - cmp r2, 0x50\n\ - beq _0819010E\n\ - b _08190146\n\ + cmp r2, 0x28\n\ + beq _08190108\n\ + cmp r2, 0x28\n\ + ble _08190146\n\ + cmp r2, 0x50\n\ + beq _0819010E\n\ + b _08190146\n\ _08190100:\n\ - movs r2, 0x8\n\ - b _08190154\n\ + movs r2, 0x8\n\ + b _08190154\n\ _08190104:\n\ - movs r2, 0x2\n\ - b _08190154\n\ + movs r2, 0x2\n\ + b _08190154\n\ _08190108:\n\ - movs r2, 0x2\n\ - negs r2, r2\n\ - b _08190154\n\ + movs r2, 0x2\n\ + negs r2, r2\n\ + b _08190154\n\ _0819010E:\n\ - movs r2, 0x4\n\ - negs r2, r2\n\ - b _08190154\n\ + movs r2, 0x4\n\ + negs r2, r2\n\ + b _08190154\n\ _08190114:\n\ - cmp r2, 0xA\n\ - beq _08190146\n\ - cmp r2, 0xA\n\ - bgt _08190126\n\ - cmp r2, 0\n\ - beq _0819013A\n\ - cmp r2, 0x5\n\ - beq _08190140\n\ - b _08190146\n\ + cmp r2, 0xA\n\ + beq _08190146\n\ + cmp r2, 0xA\n\ + bgt _08190126\n\ + cmp r2, 0\n\ + beq _0819013A\n\ + cmp r2, 0x5\n\ + beq _08190140\n\ + b _08190146\n\ _08190126:\n\ - cmp r2, 0x28\n\ - beq _0819014E\n\ - cmp r2, 0x28\n\ - bgt _08190134\n\ - cmp r2, 0x14\n\ - beq _0819014A\n\ - b _08190146\n\ + cmp r2, 0x28\n\ + beq _0819014E\n\ + cmp r2, 0x28\n\ + bgt _08190134\n\ + cmp r2, 0x14\n\ + beq _0819014A\n\ + b _08190146\n\ _08190134:\n\ - cmp r2, 0x50\n\ - beq _08190152\n\ - b _08190146\n\ + cmp r2, 0x50\n\ + beq _08190152\n\ + b _08190146\n\ _0819013A:\n\ - movs r2, 0x10\n\ - negs r2, r2\n\ - b _08190154\n\ + movs r2, 0x10\n\ + negs r2, r2\n\ + b _08190154\n\ _08190140:\n\ - movs r2, 0x8\n\ - negs r2, r2\n\ - b _08190154\n\ + movs r2, 0x8\n\ + negs r2, r2\n\ + b _08190154\n\ _08190146:\n\ - movs r2, 0\n\ - b _08190154\n\ + movs r2, 0\n\ + b _08190154\n\ _0819014A:\n\ - movs r2, 0x4\n\ - b _08190154\n\ + movs r2, 0x4\n\ + b _08190154\n\ _0819014E:\n\ - movs r2, 0xC\n\ - b _08190154\n\ + movs r2, 0xC\n\ + b _08190154\n\ _08190152:\n\ - movs r2, 0x14\n\ + movs r2, 0x14\n\ _08190154:\n\ - adds r0, r2, 0\n\ + adds r0, r2, 0\n\ _08190156:\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 {r1}\n\ - bx 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 {r1}\n\ + bx r1\n\ "); } #endif // NONMATCHING @@ -4791,7 +4782,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) i = 0; if (trainerId == TRAINER_PLAYER) - j = gFacilityClassToTrainerClass[FACILITY_CLASS_PKMN_TRAINER_BRENDAN]; + j = gFacilityClassToTrainerClass[FACILITY_CLASS_BRENDAN]; else if (trainerId == TRAINER_FRONTIER_BRAIN) j = GetDomeBrainTrainerClass(); else @@ -6204,58 +6195,58 @@ static void sub_8194F58(void) monLevel = 50; for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) - { - monTypesBits = 0; - statSums[i] = 0; - ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); - for (j = 0; j < 3; j++) - { - CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, - monLevel, ivs, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature, - statValues); - - statSums[i] += statValues[STAT_ATK]; - statSums[i] += statValues[STAT_DEF]; - statSums[i] += statValues[STAT_SPATK]; - statSums[i] += statValues[STAT_SPDEF]; - statSums[i] += statValues[STAT_SPEED]; - statSums[i] += statValues[STAT_HP]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2]; - } - - // Because GF hates temporary vars, trainerId acts like monTypesCount here. - for (trainerId = 0, j = 0; j < 32; j++) - { - if (monTypesBits & 1) - trainerId++; - monTypesBits >>= 1; - } - statSums[i] += (trainerId * monLevel) / 20; - } - - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT - 1; i++) - { - for (j = i + 1; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++) - { - if (statSums[i] < statSums[j]) - { - SwapDomeTrainers(i, j, statSums); - } - else if (statSums[i] == statSums[j]) - { + { + monTypesBits = 0; + statSums[i] = 0; + ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + for (j = 0; j < 3; j++) + { + CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, + monLevel, ivs, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread, + gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature, + statValues); + + statSums[i] += statValues[STAT_ATK]; + statSums[i] += statValues[STAT_DEF]; + statSums[i] += statValues[STAT_SPATK]; + statSums[i] += statValues[STAT_SPDEF]; + statSums[i] += statValues[STAT_SPEED]; + statSums[i] += statValues[STAT_HP]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2]; + } + + // Because GF hates temporary vars, trainerId acts like monTypesCount here. + for (trainerId = 0, j = 0; j < 32; j++) + { + if (monTypesBits & 1) + trainerId++; + monTypesBits >>= 1; + } + statSums[i] += (trainerId * monLevel) / 20; + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT - 1; i++) + { + for (j = i + 1; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++) + { + if (statSums[i] < statSums[j]) + { + SwapDomeTrainers(i, j, statSums); + } + else if (statSums[i] == statSums[j]) + { if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId) SwapDomeTrainers(i, j, statSums); - } - } - } + } + } + } - Free(statSums); - Free(statValues); + Free(statSums); + Free(statValues); - for (i = 0; i < 4; i++) + for (i = 0; i < 4; i++) DecideRoundWinners(i); gSaveBlock2Ptr->frontier.lvlMode = lvlMode; diff --git a/src/battle_factory.c b/src/battle_factory.c index 1d7fbafc9..a693acfb6 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -13,11 +13,6 @@ #include "constants/trainers.h" #include "constants/moves.h" -extern const struct FacilityMon gBattleFrontierMons[]; -extern const struct FacilityMon gSlateportBattleTentMons[]; -extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; -extern const u16 gBattleFrontierHeldItems[]; - // IWRAM bss static IWRAM_DATA bool8 gUnknown_03001288; diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 42a9b579c..60b233daf 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -10,7 +10,7 @@ #include "palette.h" #include "task.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "bg.h" #include "gpu_regs.h" #include "string_util.h" diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 6f9d2db80..8d7ed2dce 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -6,7 +6,7 @@ #include "constants/battle_anim.h" #include "battle_interface.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "graphics.h" #include "random.h" #include "util.h" diff --git a/src/battle_interface.c b/src/battle_interface.c index c7eb11293..9fd8e116a 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -543,11 +543,11 @@ enum static const u16 sStatusIconColors[] = { - RGB(24, 12, 24), // PAL_STATUS_PSN - RGB(23, 23, 3), // PAL_STATUS_PAR - RGB(20, 20, 17), // PAL_STATUS_SLP - RGB(17, 22, 28), // PAL_STATUS_FRZ - RGB(28, 14, 10) // PAL_STATUS_BRN + [PAL_STATUS_PSN] = RGB(24, 12, 24), + [PAL_STATUS_PAR] = RGB(23, 23, 3), + [PAL_STATUS_SLP] = RGB(20, 20, 17), + [PAL_STATUS_FRZ] = RGB(17, 22, 28), + [PAL_STATUS_BRN] = RGB(28, 14, 10), }; static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2 @@ -647,225 +647,225 @@ NAKED static void sub_8072308(s16 arg0, u16 *arg1, u8 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, 0x4\n\ - adds r7, r1, 0\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - mov r10, r2\n\ - movs r3, 0\n\ - movs r2, 0\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + adds r7, r1, 0\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + mov r10, r2\n\ + movs r3, 0\n\ + movs r2, 0\n\ _08072324:\n\ - lsls r0, r3, 24\n\ - asrs r0, 24\n\ - mov r3, sp\n\ - adds r1, r3, r0\n\ - strb r2, [r1]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x3\n\ - ble _08072324\n\ - movs r3, 0x3\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - mov r9, r0\n\ - mov r8, sp\n\ + lsls r0, r3, 24\n\ + asrs r0, 24\n\ + mov r3, sp\n\ + adds r1, r3, r0\n\ + strb r2, [r1]\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x3\n\ + ble _08072324\n\ + movs r3, 0x3\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + mov r9, r0\n\ + mov r8, sp\n\ _08072344:\n\ - lsls r0, r5, 16\n\ - asrs r6, r0, 16\n\ - cmp r6, 0\n\ - ble _08072372\n\ - lsls r4, r3, 24\n\ - asrs r4, 24\n\ - mov r1, sp\n\ - adds r5, r1, r4\n\ - adds r0, r6, 0\n\ - movs r1, 0xA\n\ - bl __modsi3\n\ - strb r0, [r5]\n\ - adds r0, r6, 0\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - subs r4, 0x1\n\ - lsls r4, 24\n\ - lsrs r3, r4, 24\n\ - b _08072344\n\ + lsls r0, r5, 16\n\ + asrs r6, r0, 16\n\ + cmp r6, 0\n\ + ble _08072372\n\ + lsls r4, r3, 24\n\ + asrs r4, 24\n\ + mov r1, sp\n\ + adds r5, r1, r4\n\ + adds r0, r6, 0\n\ + movs r1, 0xA\n\ + bl __modsi3\n\ + strb r0, [r5]\n\ + adds r0, r6, 0\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + subs r4, 0x1\n\ + lsls r4, 24\n\ + lsrs r3, r4, 24\n\ + b _08072344\n\ _08072372:\n\ - lsls r1, r3, 24\n\ - asrs r0, r1, 24\n\ - cmp r0, r9\n\ - ble _08072396\n\ - movs r4, 0xFF\n\ - movs r3, 0x1\n\ - negs r3, r3\n\ + lsls r1, r3, 24\n\ + asrs r0, r1, 24\n\ + cmp r0, r9\n\ + ble _08072396\n\ + movs r4, 0xFF\n\ + movs r3, 0x1\n\ + negs r3, r3\n\ _08072380:\n\ - asrs r2, r1, 24\n\ - mov r5, sp\n\ - adds r1, r5, r2\n\ - ldrb r0, [r1]\n\ - orrs r0, r4\n\ - strb r0, [r1]\n\ - subs r2, 0x1\n\ - lsls r1, r2, 24\n\ - asrs r0, r1, 24\n\ - cmp r0, r3\n\ - bgt _08072380\n\ + asrs r2, r1, 24\n\ + mov r5, sp\n\ + adds r1, r5, r2\n\ + ldrb r0, [r1]\n\ + orrs r0, r4\n\ + strb r0, [r1]\n\ + subs r2, 0x1\n\ + lsls r1, r2, 24\n\ + asrs r0, r1, 24\n\ + cmp r0, r3\n\ + bgt _08072380\n\ _08072396:\n\ - mov r1, r8\n\ - ldrb r0, [r1, 0x3]\n\ - cmp r0, 0xFF\n\ - bne _080723A2\n\ - movs r0, 0\n\ - strb r0, [r1, 0x3]\n\ + mov r1, r8\n\ + ldrb r0, [r1, 0x3]\n\ + cmp r0, 0xFF\n\ + bne _080723A2\n\ + movs r0, 0\n\ + strb r0, [r1, 0x3]\n\ _080723A2:\n\ - mov r2, r10\n\ - cmp r2, 0\n\ - bne _08072432\n\ - movs r3, 0\n\ - movs r1, 0\n\ - movs r6, 0xFC\n\ - lsls r6, 8\n\ - movs r5, 0x1E\n\ - mov r12, r5\n\ + mov r2, r10\n\ + cmp r2, 0\n\ + bne _08072432\n\ + movs r3, 0\n\ + movs r1, 0\n\ + movs r6, 0xFC\n\ + lsls r6, 8\n\ + movs r5, 0x1E\n\ + mov r12, r5\n\ _080723B4:\n\ - lsls r1, 24\n\ - asrs r2, r1, 24\n\ - mov r0, sp\n\ - adds r5, r0, r2\n\ - ldrb r0, [r5]\n\ - mov r8, r1\n\ - cmp r0, 0xFF\n\ - bne _080723EA\n\ - lsls r1, r2, 1\n\ - adds r1, r7\n\ - ldrh r2, [r1]\n\ - adds r0, r6, 0\n\ - ands r0, r2\n\ - mov r2, r12\n\ - orrs r0, r2\n\ - strh r0, [r1]\n\ - lsls r3, 24\n\ - asrs r1, r3, 23\n\ - adds r1, r7\n\ - adds r1, 0x40\n\ - ldrh r2, [r1]\n\ - adds r0, r6, 0\n\ - ands r0, r2\n\ - mov r5, r12\n\ - orrs r0, r5\n\ - strh r0, [r1]\n\ - b _0807241A\n\ + lsls r1, 24\n\ + asrs r2, r1, 24\n\ + mov r0, sp\n\ + adds r5, r0, r2\n\ + ldrb r0, [r5]\n\ + mov r8, r1\n\ + cmp r0, 0xFF\n\ + bne _080723EA\n\ + lsls r1, r2, 1\n\ + adds r1, r7\n\ + ldrh r2, [r1]\n\ + adds r0, r6, 0\n\ + ands r0, r2\n\ + mov r2, r12\n\ + orrs r0, r2\n\ + strh r0, [r1]\n\ + lsls r3, 24\n\ + asrs r1, r3, 23\n\ + adds r1, r7\n\ + adds r1, 0x40\n\ + ldrh r2, [r1]\n\ + adds r0, r6, 0\n\ + ands r0, r2\n\ + mov r5, r12\n\ + orrs r0, r5\n\ + strh r0, [r1]\n\ + b _0807241A\n\ _080723EA:\n\ - lsls r2, 1\n\ - adds r2, r7\n\ - ldrh r0, [r2]\n\ - adds r1, r6, 0\n\ - ands r1, r0\n\ - ldrb r0, [r5]\n\ - adds r0, 0x14\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ - lsls r4, r3, 24\n\ - asrs r3, r4, 24\n\ - lsls r2, r3, 1\n\ - adds r2, r7\n\ - adds r2, 0x40\n\ - ldrh r0, [r2]\n\ - adds r1, r6, 0\n\ - ands r1, r0\n\ - mov r5, sp\n\ - adds r0, r5, r3\n\ - ldrb r0, [r0]\n\ - adds r0, 0x34\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ - adds r3, r4, 0\n\ + lsls r2, 1\n\ + adds r2, r7\n\ + ldrh r0, [r2]\n\ + adds r1, r6, 0\n\ + ands r1, r0\n\ + ldrb r0, [r5]\n\ + adds r0, 0x14\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ + lsls r4, r3, 24\n\ + asrs r3, r4, 24\n\ + lsls r2, r3, 1\n\ + adds r2, r7\n\ + adds r2, 0x40\n\ + ldrh r0, [r2]\n\ + adds r1, r6, 0\n\ + ands r1, r0\n\ + mov r5, sp\n\ + adds r0, r5, r3\n\ + ldrb r0, [r0]\n\ + adds r0, 0x34\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ + adds r3, r4, 0\n\ _0807241A:\n\ - movs r0, 0x80\n\ - lsls r0, 17\n\ - add r0, r8\n\ - lsrs r1, r0, 24\n\ - movs r2, 0x80\n\ - lsls r2, 17\n\ - adds r0, r3, r2\n\ - lsrs r3, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x3\n\ - ble _080723B4\n\ - b _08072496\n\ + movs r0, 0x80\n\ + lsls r0, 17\n\ + add r0, r8\n\ + lsrs r1, r0, 24\n\ + movs r2, 0x80\n\ + lsls r2, 17\n\ + adds r0, r3, r2\n\ + lsrs r3, r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x3\n\ + ble _080723B4\n\ + b _08072496\n\ _08072432:\n\ - movs r3, 0\n\ - movs r4, 0xFC\n\ - lsls r4, 8\n\ - movs r6, 0x1E\n\ + movs r3, 0\n\ + movs r4, 0xFC\n\ + lsls r4, 8\n\ + movs r6, 0x1E\n\ _0807243A:\n\ - lsls r1, r3, 24\n\ - asrs r2, r1, 24\n\ - mov r3, sp\n\ - adds r5, r3, r2\n\ - ldrb r0, [r5]\n\ - adds r3, r1, 0\n\ - cmp r0, 0xFF\n\ - bne _08072466\n\ - lsls r1, r2, 1\n\ - adds r1, r7\n\ - ldrh r2, [r1]\n\ - adds r0, r4, 0\n\ - ands r0, r2\n\ - orrs r0, r6\n\ - strh r0, [r1]\n\ - adds r1, 0x40\n\ - ldrh r2, [r1]\n\ - adds r0, r4, 0\n\ - ands r0, r2\n\ - orrs r0, r6\n\ - strh r0, [r1]\n\ - b _08072488\n\ + lsls r1, r3, 24\n\ + asrs r2, r1, 24\n\ + mov r3, sp\n\ + adds r5, r3, r2\n\ + ldrb r0, [r5]\n\ + adds r3, r1, 0\n\ + cmp r0, 0xFF\n\ + bne _08072466\n\ + lsls r1, r2, 1\n\ + adds r1, r7\n\ + ldrh r2, [r1]\n\ + adds r0, r4, 0\n\ + ands r0, r2\n\ + orrs r0, r6\n\ + strh r0, [r1]\n\ + adds r1, 0x40\n\ + ldrh r2, [r1]\n\ + adds r0, r4, 0\n\ + ands r0, r2\n\ + orrs r0, r6\n\ + strh r0, [r1]\n\ + b _08072488\n\ _08072466:\n\ - lsls r2, 1\n\ - adds r2, r7\n\ - ldrh r0, [r2]\n\ - adds r1, r4, 0\n\ - ands r1, r0\n\ - ldrb r0, [r5]\n\ - adds r0, 0x14\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ - adds r2, 0x40\n\ - ldrh r0, [r2]\n\ - adds r1, r4, 0\n\ - ands r1, r0\n\ - ldrb r0, [r5]\n\ - adds r0, 0x34\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ + lsls r2, 1\n\ + adds r2, r7\n\ + ldrh r0, [r2]\n\ + adds r1, r4, 0\n\ + ands r1, r0\n\ + ldrb r0, [r5]\n\ + adds r0, 0x14\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ + adds r2, 0x40\n\ + ldrh r0, [r2]\n\ + adds r1, r4, 0\n\ + ands r1, r0\n\ + ldrb r0, [r5]\n\ + adds r0, 0x34\n\ + orrs r1, r0\n\ + strh r1, [r2]\n\ _08072488:\n\ - movs r5, 0x80\n\ - lsls r5, 17\n\ - adds r0, r3, r5\n\ - lsrs r3, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x3\n\ - ble _0807243A\n\ + movs r5, 0x80\n\ + lsls r5, 17\n\ + adds r0, r3, r5\n\ + lsrs r3, r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x3\n\ + ble _0807243A\n\ _08072496:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided"); } diff --git a/src/battle_intro.c b/src/battle_intro.c index 0ccc7e828..736e35a87 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -1,21 +1,728 @@ #include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_main.h" +#include "battle_setup.h" +#include "bg.h" +#include "gpu_regs.h" +#include "main.h" +#include "scanline_effect.h" #include "task.h" +#include "trig.h" +#include "constants/trainers.h" -extern void task_battle_intro_80BC47C(u8); -extern void task00_battle_intro_80BC6C8(u8); -extern void task_battle_intro_80BC47C(u8); -extern void task_battle_intro_anim(u8); - -const TaskFunc gUnknown_08597424[] = -{ - task_battle_intro_80BC47C, - task_battle_intro_80BC47C, - task00_battle_intro_80BC6C8, - task00_battle_intro_80BC6C8, - task00_battle_intro_80BC6C8, - task_battle_intro_80BC47C, - task_battle_intro_80BC47C, - task_battle_intro_80BC47C, - task_battle_intro_anim, - task_battle_intro_anim, +static EWRAM_DATA u16 sBgCnt = 0; + +extern const u8 gUnknown_0859741A[]; +extern const u8 gUnknown_0859741E[]; + +static void BattleIntroSlide1(u8); +static void BattleIntroSlide2(u8); +static void BattleIntroSlide3(u8); +static void BattleIntroSlideLink(u8); +static void BattleIntroSlidePartner(u8); + +static const TaskFunc sBattleIntroSlideFuncs[] = +{ + BattleIntroSlide1, // BATTLE_TERRAIN_GRASS + BattleIntroSlide1, // BATTLE_TERRAIN_LONG_GRASS + BattleIntroSlide2, // BATTLE_TERRAIN_SAND + BattleIntroSlide2, // BATTLE_TERRAIN_UNDERWATER + BattleIntroSlide2, // BATTLE_TERRAIN_WATER + BattleIntroSlide1, // BATTLE_TERRAIN_POND + BattleIntroSlide1, // BATTLE_TERRAIN_MOUNTAIN + BattleIntroSlide1, // BATTLE_TERRAIN_CAVE + BattleIntroSlide3, // BATTLE_TERRAIN_BUILDING + BattleIntroSlide3, // BATTLE_TERRAIN_PLAIN }; + +void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value) +{ + if (bgId < 4) + { + sBgCnt = GetGpuReg(gUnknown_0859741A[bgId]); + switch (attributeId) + { + case BG_ANIM_SCREEN_SIZE: + ((struct BgCnt *)&sBgCnt)->screenSize = value; + break; + case BG_ANIM_AREA_OVERFLOW_MODE: + ((struct BgCnt *)&sBgCnt)->areaOverflowMode = value; + break; + case BG_ANIM_MOSAIC: + ((struct BgCnt *)&sBgCnt)->mosaic = value; + break; + case BG_ANIM_CHAR_BASE_BLOCK: + ((struct BgCnt *)&sBgCnt)->charBaseBlock = value; + break; + case BG_ANIM_PRIORITY: + ((struct BgCnt *)&sBgCnt)->priority = value; + break; + case BG_ANIM_PALETTES_MODE: + ((struct BgCnt *)&sBgCnt)->palettes = value; + break; + case BG_ANIM_SCREEN_BASE_BLOCK: + ((struct BgCnt *)&sBgCnt)->screenBaseBlock = value; + break; + } + + SetGpuReg(gUnknown_0859741A[bgId], sBgCnt); + } +} + +int GetAnimBgAttribute(u8 bgId, u8 attributeId) +{ + u16 bgCnt; + + if (bgId < 4) + { + bgCnt = GetGpuReg(gUnknown_0859741E[bgId]); + switch (attributeId) + { + case BG_ANIM_SCREEN_SIZE: + return ((struct BgCnt *)&bgCnt)->screenSize; + case BG_ANIM_AREA_OVERFLOW_MODE: + return ((struct BgCnt *)&bgCnt)->areaOverflowMode; + case BG_ANIM_MOSAIC: + return ((struct BgCnt *)&bgCnt)->mosaic; + case BG_ANIM_CHAR_BASE_BLOCK: + return ((struct BgCnt *)&bgCnt)->charBaseBlock; + case BG_ANIM_PRIORITY: + return ((struct BgCnt *)&bgCnt)->priority; + case BG_ANIM_PALETTES_MODE: + return ((struct BgCnt *)&bgCnt)->palettes; + case BG_ANIM_SCREEN_BASE_BLOCK: + return ((struct BgCnt *)&bgCnt)->screenBaseBlock; + } + } + + return 0; +} + +void HandleIntroSlide(u8 terrain) +{ + u8 taskId; + + if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gPartnerTrainerId != TRAINER_STEVEN_PARTNER) + { + taskId = CreateTask(BattleIntroSlidePartner, 0); + } + else if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + taskId = CreateTask(BattleIntroSlideLink, 0); + } + else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + taskId = CreateTask(BattleIntroSlide3, 0); + } + else if ((gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) && gGameVersion != VERSION_RUBY) + { + terrain = BATTLE_TERRAIN_UNDERWATER; + taskId = CreateTask(BattleIntroSlide2, 0); + } + else + { + taskId = CreateTask(sBattleIntroSlideFuncs[terrain], 0); + } + + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = terrain; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = 0; + gTasks[taskId].data[5] = 0; + gTasks[taskId].data[6] = 0; +} + +void sub_811828C(u8 taskId) +{ + DestroyTask(taskId); + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 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); +} + +static void BattleIntroSlide1(u8 taskId) +{ + int i; + + gBattle_BG1_X += 6; + switch (gTasks[taskId].data[0]) + { + case 0: + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gTasks[taskId].data[2] = 16; + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[2] = 1; + gTasks[taskId].data[0]++; + } + break; + case 1: + if (--gTasks[taskId].data[2] == 0) + { + gTasks[taskId].data[0]++; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + } + break; + case 2: + gBattle_WIN0V -= 0xFF; + if ((gBattle_WIN0V & 0xFF00) == 0x3000) + { + gTasks[taskId].data[0]++; + gTasks[taskId].data[2] = 240; + gTasks[taskId].data[3] = 32; + gIntroSlideFlags &= ~1; + } + break; + case 3: + if (gTasks[taskId].data[3]) + { + gTasks[taskId].data[3]--; + } + else + { + if (gTasks[taskId].data[1] == 1) + { + if (gBattle_BG1_Y != 0xFFB0) + gBattle_BG1_Y -= 2; + } + else + { + if (gBattle_BG1_Y != 0xFFC8) + gBattle_BG1_Y -= 1; + } + } + + if (gBattle_WIN0V & 0xFF00) + gBattle_WIN0V -= 0x3FC; + + if (gTasks[taskId].data[2]) + gTasks[taskId].data[2] -= 2; + + // Scanline settings have already been set in CB2_InitBattleInternal() + for (i = 0; i < 80; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2]; + + for (; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2]; + + if (!gTasks[taskId].data[2]) + { + gScanlineEffect.state = 3; + gTasks[taskId].data[0]++; + CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE); + SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0); + SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0); + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); + } + break; + case 4: + sub_811828C(taskId); + break; + } +} + +static void BattleIntroSlide2(u8 taskId) +{ + int i; + + switch (gTasks[taskId].data[1]) + { + case 2: + case 4: + gBattle_BG1_X += 8; + break; + case 3: + gBattle_BG1_X += 6; + break; + } + + if (gTasks[taskId].data[1] == 4) + { + gBattle_BG1_Y = Cos2(gTasks[taskId].data[6]) / 512 - 8; + if (gTasks[taskId].data[6] < 180) + gTasks[taskId].data[6] += 4; + else + gTasks[taskId].data[6] += 6; + + if (gTasks[taskId].data[6] == 360) + gTasks[taskId].data[6] = 0; + } + + switch (gTasks[taskId].data[0]) + { + case 0: + gTasks[taskId].data[4] = 16; + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gTasks[taskId].data[2] = 16; + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[2] = 1; + gTasks[taskId].data[0]++; + } + break; + case 1: + if (--gTasks[taskId].data[2] == 0) + { + gTasks[taskId].data[0]++; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + } + break; + case 2: + gBattle_WIN0V -= 0xFF; + if ((gBattle_WIN0V & 0xFF00) == 0x3000) + { + gTasks[taskId].data[0]++; + gTasks[taskId].data[2] = 240; + gTasks[taskId].data[3] = 32; + gTasks[taskId].data[5] = 1; + gIntroSlideFlags &= ~1; + } + break; + case 3: + if (gTasks[taskId].data[3]) + { + if (--gTasks[taskId].data[3] == 0) + { + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(15, 0)); + SetGpuReg(REG_OFFSET_BLDY, 0); + } + } + else + { + if ((gTasks[taskId].data[4] & 0x1F) && --gTasks[taskId].data[5] == 0) + { + gTasks[taskId].data[4] += 0xFF; + gTasks[taskId].data[5] = 4; + } + } + + if (gBattle_WIN0V & 0xFF00) + gBattle_WIN0V -= 0x3FC; + + if (gTasks[taskId].data[2]) + gTasks[taskId].data[2] -= 2; + + // Scanline settings have already been set in CB2_InitBattleInternal() + for (i = 0; i < 80; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2]; + + for (; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2]; + + if (!gTasks[taskId].data[2]) + { + gScanlineEffect.state = 3; + gTasks[taskId].data[0]++; + CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE); + SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0); + SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0); + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); + } + break; + case 4: + sub_811828C(taskId); + break; + } + + if (gTasks[taskId].data[0] != 4) + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0)); +} + +static void BattleIntroSlide3(u8 taskId) +{ + int i; + + gBattle_BG1_X += 8; + switch (gTasks[taskId].data[0]) + { + case 0: + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8)); + SetGpuReg(REG_OFFSET_BLDY, 0); + gTasks[taskId].data[4] = BLDALPHA_BLEND(8, 8); + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + gTasks[taskId].data[2] = 16; + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[2] = 1; + gTasks[taskId].data[0]++; + } + break; + case 1: + if (--gTasks[taskId].data[2] == 0) + { + gTasks[taskId].data[0]++; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + } + break; + case 2: + gBattle_WIN0V -= 0xFF; + if ((gBattle_WIN0V & 0xFF00) == 0x3000) + { + gTasks[taskId].data[0]++; + gTasks[taskId].data[2] = 240; + gTasks[taskId].data[3] = 32; + gTasks[taskId].data[5] = 1; + gIntroSlideFlags &= ~1; + } + break; + case 3: + if (gTasks[taskId].data[3]) + { + gTasks[taskId].data[3]--; + } + else + { + if ((gTasks[taskId].data[4] & 0xF) && --gTasks[taskId].data[5] == 0) + { + gTasks[taskId].data[4] += 0xFF; + gTasks[taskId].data[5] = 6; + } + } + + if (gBattle_WIN0V & 0xFF00) + gBattle_WIN0V -= 0x3FC; + + if (gTasks[taskId].data[2]) + gTasks[taskId].data[2] -= 2; + + // Scanline settings have already been set in CB2_InitBattleInternal() + for (i = 0; i < 80; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2]; + + for (; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2]; + + if (!gTasks[taskId].data[2]) + { + gScanlineEffect.state = 3; + gTasks[taskId].data[0]++; + CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE); + SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0); + SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0); + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); + } + break; + case 4: + sub_811828C(taskId); + break; + } + + if (gTasks[taskId].data[0] != 4) + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[4], 0)); +} + +static void BattleIntroSlideLink(u8 taskId) +{ + int i; + + if (gTasks[taskId].data[0] > 1 && !gTasks[taskId].data[4]) + { + u16 var0 = gBattle_BG1_X & 0x8000; + if (var0 || gBattle_BG1_X < 80) + { + gBattle_BG1_X += 3; + gBattle_BG2_X -= 3; + } + else + { + CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE); + CpuFill32(0, (void *)BG_SCREEN_ADDR(30), BG_SCREEN_SIZE); + gTasks[taskId].data[4] = 1; + } + } + + switch (gTasks[taskId].data[0]) + { + case 0: + gTasks[taskId].data[2] = 32; + gTasks[taskId].data[0]++; + break; + case 1: + if (--gTasks[taskId].data[2] == 0) + { + gTasks[taskId].data[0]++; + gSprites[gBattleStruct->field_7D].oam.objMode = ST_OAM_OBJ_WINDOW; + gSprites[gBattleStruct->field_7D].callback = sub_8038B74; + gSprites[gBattleStruct->field_7E].oam.objMode = ST_OAM_OBJ_WINDOW; + gSprites[gBattleStruct->field_7E].callback = sub_8038B74; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2); + } + break; + case 2: + gBattle_WIN0V -= 0xFF; + if ((gBattle_WIN0V & 0xFF00) == 0x3000) + { + gTasks[taskId].data[0]++; + gTasks[taskId].data[2] = 240; + gTasks[taskId].data[3] = 32; + gIntroSlideFlags &= ~1; + } + break; + case 3: + if (gBattle_WIN0V & 0xFF00) + gBattle_WIN0V -= 0x3FC; + + if (gTasks[taskId].data[2]) + gTasks[taskId].data[2] -= 2; + + // Scanline settings have already been set in CB2_InitBattleInternal() + for (i = 0; i < 80; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].data[2]; + + for (; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].data[2]; + + if (!gTasks[taskId].data[2]) + { + gScanlineEffect.state = 3; + gTasks[taskId].data[0]++; + SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0); + SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0); + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); + } + break; + case 4: + sub_811828C(taskId); + break; + } +} + +static void BattleIntroSlidePartner(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + gTasks[taskId].data[2] = 1; + gTasks[taskId].data[0]++; + break; + case 1: + if (--gTasks[taskId].data[2] == 0) + { + gTasks[taskId].data[0]++; + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); + SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3 | 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); + gBattle_BG0_Y = -48; + gBattle_BG1_X = 240; + gBattle_BG2_X = -240; + } + break; + case 2: + gBattle_WIN0V += 0x100; + if ((gBattle_WIN0V & 0xFF00) != 0x100) + gBattle_WIN0V--; + + if ((gBattle_WIN0V & 0xFF00) == 0x2000) + { + gTasks[taskId].data[0]++; + gTasks[taskId].data[2] = 240; + gIntroSlideFlags &= ~1; + } + break; + case 3: + if ((gBattle_WIN0V & 0xFF00) != 0x4C00) + gBattle_WIN0V += 0x3FC; + + if (gTasks[taskId].data[2]) + gTasks[taskId].data[2] -= 2; + + gBattle_BG1_X = gTasks[taskId].data[2]; + gBattle_BG2_X = -gTasks[taskId].data[2]; + if (!gTasks[taskId].data[2]) + gTasks[taskId].data[0]++; + break; + case 4: + gBattle_BG0_Y += 2; + gBattle_BG2_Y += 2; + if ((gBattle_WIN0V & 0xFF00) != 0x5000) + gBattle_WIN0V += 0xFF; + + if (!gBattle_BG0_Y) + { + CpuFill32(0, (void *)BG_SCREEN_ADDR(28), BG_SCREEN_SIZE * 4); + SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) & ~DISPCNT_WIN1_ON); + SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0); + SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0); + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT256x512); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(30) | BGCNT_TXT512x256); + gScanlineEffect.state = 3; + gTasks[taskId].data[0]++; + } + break; + case 5: + sub_811828C(taskId); + break; + } +} + +void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 tilesOffset) +{ + int i, j; + u8 battler = GetBattlerAtPosition(battlerPosition); + int offset = tilesOffset; + CpuCopy16(gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * gBattleMonForms[battler], arg5, BG_SCREEN_SIZE); + LoadBgTiles(bgId, arg5, 0x1000, tilesOffset); + for (i = arg2; i < arg2 + 8; i++) + { + for (j = arg1; j < arg1 + 8; j++) + { + arg6[i * 32 + j] = offset | (arg4 << 12); + offset++; + } + } + + LoadBgTilemap(bgId, arg6, BG_SCREEN_SIZE, 0); +} + +#ifdef NONMATCHING +void unref_sub_8119094(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7) +{ + int i, j; + int offset; + DmaCopy16(3, gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * arg3, (void *)BG_SCREEN_ADDR(0) + arg5, BG_SCREEN_SIZE); + offset = (arg5 >> 5) - (arg7 << 9); + for (i = arg1; i < arg1 + 8; i++) + { + for (j = arg0; j < arg0 + 8; j++) + { + ((u16 *)BG_VRAM)[i * 32 + j + (arg6 * 0x400) + arg0] = offset | (arg4 << 12); + offset++; + } + } +} +#else +NAKED +void unref_sub_8119094(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + ldr r4, [sp, 0x24]\n\ + ldr r5, [sp, 0x28]\n\ + mov r8, r5\n\ + ldr r5, [sp, 0x2C]\n\ + ldr r6, [sp, 0x30]\n\ + mov r9, r6\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r12, r0\n\ + lsls r1, 24\n\ + lsls r2, 24\n\ + lsls r3, 24\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + mov r10, r4\n\ + mov r7, r8\n\ + lsls r7, 16\n\ + lsrs r6, r7, 16\n\ + lsls r5, 24\n\ + lsrs r5, 24\n\ + mov r0, r9\n\ + lsls r0, 24\n\ + mov r9, r0\n\ + ldr r4, =0x040000d4\n\ + ldr r0, =gMonSpritesGfxPtr\n\ + ldr r0, [r0]\n\ + lsrs r2, 22\n\ + adds r0, 0x4\n\ + adds r0, r2\n\ + lsrs r3, 13\n\ + ldr r0, [r0]\n\ + adds r0, r3\n\ + str r0, [r4]\n\ + movs r0, 0xC0\n\ + lsls r0, 19\n\ + adds r6, r0\n\ + str r6, [r4, 0x4]\n\ + ldr r0, =0x80000400\n\ + str r0, [r4, 0x8]\n\ + ldr r0, [r4, 0x8]\n\ + adds r2, r7, 0\n\ + lsrs r2, 21\n\ + mov r6, r9\n\ + lsrs r6, 15\n\ + subs r4, r2, r6\n\ + lsrs r0, r1, 24\n\ + adds r1, r0, 0\n\ + adds r1, 0x8\n\ + cmp r0, r1\n\ + bge _08119148\n\ + mov r9, r1\n\ + mov r7, r12\n\ + lsls r7, 1\n\ + mov r8, r7\n\ + lsls r5, 11\n\ + str r5, [sp]\n\ +_08119110:\n\ + mov r2, r12\n\ + adds r3, r2, 0\n\ + adds r3, 0x8\n\ + adds r5, r0, 0x1\n\ + cmp r2, r3\n\ + bge _08119142\n\ + mov r1, r10\n\ + lsls r6, r1, 12\n\ + lsls r0, 6\n\ + movs r7, 0xC0\n\ + lsls r7, 19\n\ + adds r0, r7\n\ + ldr r1, [sp]\n\ + adds r0, r1, r0\n\ + mov r7, r8\n\ + adds r1, r7, r0\n\ + subs r2, r3, r2\n\ +_08119132:\n\ + adds r0, r4, 0\n\ + orrs r0, r6\n\ + strh r0, [r1]\n\ + adds r4, 0x1\n\ + adds r1, 0x2\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bne _08119132\n\ +_08119142:\n\ + adds r0, r5, 0\n\ + cmp r0, r9\n\ + blt _08119110\n\ +_08119148:\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); +} +#endif diff --git a/src/battle_main.c b/src/battle_main.c index 8bdd2220b..fb2e5105a 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -23,7 +23,7 @@ #include "link_rfu.h" #include "load_save.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "m4a.h" #include "palette.h" #include "party_menu.h" @@ -81,7 +81,7 @@ extern const u8 *const gBattlescriptsForBallThrow[]; extern const u8 *const gBattlescriptsForRunningByItem[]; extern const u8 *const gBattlescriptsForUsingItem[]; extern const u8 *const gBattlescriptsForSafariActions[]; -extern const struct ScanlineEffectParams gUnknown_0831AC70; +extern const struct ScanlineEffectParams gBattleIntroSlideScanlineEffectParams; // strings extern const u8 gText_LinkStandby3[]; @@ -451,10 +451,10 @@ const struct TrainerMoney gTrainerMoneyTable[] = {TRAINER_CLASS_AROMA_LADY, 10}, {TRAINER_CLASS_RUIN_MANIAC, 15}, {TRAINER_CLASS_INTERVIEWER, 12}, - {TRAINER_CLASS_TUBER_1, 1}, - {TRAINER_CLASS_TUBER_2, 1}, + {TRAINER_CLASS_TUBER_F, 1}, + {TRAINER_CLASS_TUBER_M, 1}, {TRAINER_CLASS_SIS_AND_BRO, 3}, - {TRAINER_CLASS_COOLTRAINER_1, 12}, + {TRAINER_CLASS_COOLTRAINER, 12}, {TRAINER_CLASS_HEX_MANIAC, 6}, {TRAINER_CLASS_LADY, 50}, {TRAINER_CLASS_BEAUTY, 20}, @@ -507,35 +507,35 @@ const struct TrainerMoney gTrainerMoneyTable[] = static void (* const sTurnActionsFuncsTable[])(void) = { - HandleAction_UseMove, // B_ACTION_USE_MOVE - HandleAction_UseItem, // B_ACTION_USE_ITEM - HandleAction_Switch, // B_ACTION_SWITCH - HandleAction_Run, // B_ACTION_RUN - HandleAction_WatchesCarefully, // B_ACTION_SAFARI_WATCH_CAREFULLY - HandleAction_SafariZoneBallThrow, // B_ACTION_SAFARI_BALL - HandleAction_ThrowPokeblock, // B_ACTION_SAFARI_POKEBLOCK - HandleAction_GoNear, // B_ACTION_SAFARI_GO_NEAR - HandleAction_SafariZoneRun, // B_ACTION_SAFARI_RUN - HandleAction_WallyBallThrow, // B_ACTION_WALLY_THROW - HandleAction_RunBattleScript, // B_ACTION_EXEC_SCRIPT - HandleAction_Action11, // not sure about this one - HandleAction_ActionFinished, // B_ACTION_FINISHED - HandleAction_NothingIsFainted, // B_ACTION_NOTHING_FAINTED + [B_ACTION_USE_MOVE] = HandleAction_UseMove, + [B_ACTION_USE_ITEM] = HandleAction_UseItem, + [B_ACTION_SWITCH] = HandleAction_Switch, + [B_ACTION_RUN] = HandleAction_Run, + [B_ACTION_SAFARI_WATCH_CAREFULLY] = HandleAction_WatchesCarefully, + [B_ACTION_SAFARI_BALL] = HandleAction_SafariZoneBallThrow, + [B_ACTION_SAFARI_POKEBLOCK] = HandleAction_ThrowPokeblock, + [B_ACTION_SAFARI_GO_NEAR] = HandleAction_GoNear, + [B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun, + [B_ACTION_WALLY_THROW] = HandleAction_WallyBallThrow, + [B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript, + [11] = HandleAction_Action11, // not sure about this one + [B_ACTION_FINISHED] = HandleAction_ActionFinished, + [B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted, }; static void (* const sEndTurnFuncsTable[])(void) = { - HandleEndTurn_ContinueBattle, // battle outcome 0 - HandleEndTurn_BattleWon, // B_OUTCOME_WON - HandleEndTurn_BattleLost, // B_OUTCOME_LOST - HandleEndTurn_BattleLost, // B_OUTCOME_DREW - HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN - HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED - HandleEndTurn_MonFled, // B_OUTCOME_MON_FLED - HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT - HandleEndTurn_FinishBattle, // B_OUTCOME_NO_SAFARI_BALLS - HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED - HandleEndTurn_FinishBattle, // B_OUTCOME_MON_TELEPORTED + [0] = HandleEndTurn_ContinueBattle, //B_OUTCOME_NONE? + [B_OUTCOME_WON] = HandleEndTurn_BattleWon, + [B_OUTCOME_LOST] = HandleEndTurn_BattleLost, + [B_OUTCOME_DREW] = HandleEndTurn_BattleLost, + [B_OUTCOME_RAN] = HandleEndTurn_RanFromBattle, + [B_OUTCOME_PLAYER_TELEPORTED] = HandleEndTurn_FinishBattle, + [B_OUTCOME_MON_FLED] = HandleEndTurn_MonFled, + [B_OUTCOME_CAUGHT] = HandleEndTurn_FinishBattle, + [B_OUTCOME_NO_SAFARI_BALLS] = HandleEndTurn_FinishBattle, + [B_OUTCOME_FORFEITED] = HandleEndTurn_FinishBattle, + [B_OUTCOME_MON_TELEPORTED] = HandleEndTurn_FinishBattle, }; const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$"); @@ -633,7 +633,7 @@ static void CB2_InitBattleInternal(void) gScanlineEffectRegBuffers[1][i] = 0xFF10; } - ScanlineEffect_SetParams(gUnknown_0831AC70); + ScanlineEffect_SetParams(gBattleIntroSlideScanlineEffectParams); } ResetPaletteFade(); @@ -3071,7 +3071,7 @@ static void BattleStartClearSetData(void) *(gBattleStruct->AI_monToSwitchIntoId + i) = PARTY_SIZE; } - gBattleStruct->field_DF = 0; + gBattleStruct->givenExpMons = 0; gBattleStruct->field_92 = 0; gRandomTurnNumber = Random(); @@ -3192,7 +3192,7 @@ void SwitchInClearSetData(void) gBattleResources->flags->flags[gActiveBattler] = 0; gCurrentMove = 0; - gBattleStruct->field_DA = 0xFF; + gBattleStruct->arenaTurnCounter = 0xFF; ClearBattlerMoveHistory(gActiveBattler); ClearBattlerAbilityHistory(gActiveBattler); @@ -3610,85 +3610,85 @@ NAKED static void BattleIntroOpponent1SendsOutMonAnimation(void) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r2, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 17\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0803B298\n\ - movs r0, 0x80\n\ - lsls r0, 18\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0803B298\n\ - movs r1, 0x80\n\ - lsls r1, 24\n\ - ands r1, r2\n\ - negs r0, r1\n\ - orrs r0, r1\n\ - lsrs r5, r0, 31\n\ - b _0803B29A\n\ - .pool\n\ + push {r4-r6,lr}\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r2, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 17\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0803B298\n\ + movs r0, 0x80\n\ + lsls r0, 18\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0803B298\n\ + movs r1, 0x80\n\ + lsls r1, 24\n\ + ands r1, r2\n\ + negs r0, r1\n\ + orrs r0, r1\n\ + lsrs r5, r0, 31\n\ + b _0803B29A\n\ + .pool\n\ _0803B288:\n\ - ldr r1, =gBattleMainFunc\n\ - ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\ - b _0803B2F0\n\ - .pool\n\ + ldr r1, =gBattleMainFunc\n\ + ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\ + b _0803B2F0\n\ + .pool\n\ _0803B298:\n\ - movs r5, 0x1\n\ + movs r5, 0x1\n\ _0803B29A:\n\ - ldr r0, =gBattleControllerExecFlags\n\ - ldr r2, [r0]\n\ - cmp r2, 0\n\ - bne _0803B2F2\n\ - ldr r0, =gActiveBattler\n\ - strb r2, [r0]\n\ - ldr r1, =gBattlersCount\n\ - adds r4, r0, 0\n\ - ldrb r1, [r1]\n\ - cmp r2, r1\n\ - bcs _0803B2EC\n\ - adds r6, r4, 0\n\ + ldr r0, =gBattleControllerExecFlags\n\ + ldr r2, [r0]\n\ + cmp r2, 0\n\ + bne _0803B2F2\n\ + ldr r0, =gActiveBattler\n\ + strb r2, [r0]\n\ + ldr r1, =gBattlersCount\n\ + adds r4, r0, 0\n\ + ldrb r1, [r1]\n\ + cmp r2, r1\n\ + bcs _0803B2EC\n\ + adds r6, r4, 0\n\ _0803B2B2:\n\ - ldrb r0, [r4]\n\ - bl GetBattlerPosition\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, r5\n\ - bne _0803B2D8\n\ - movs r0, 0\n\ - bl BtlController_EmitIntroTrainerBallThrow\n\ - ldrb r0, [r4]\n\ - bl MarkBattlerForControllerExec\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00008040\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803B288\n\ + ldrb r0, [r4]\n\ + bl GetBattlerPosition\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, r5\n\ + bne _0803B2D8\n\ + movs r0, 0\n\ + bl BtlController_EmitIntroTrainerBallThrow\n\ + ldrb r0, [r4]\n\ + bl MarkBattlerForControllerExec\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + ldr r1, =0x00008040\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803B288\n\ _0803B2D8:\n\ - ldrb r0, [r6]\n\ - adds r0, 0x1\n\ - strb r0, [r6]\n\ - ldr r1, =gBattlersCount\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r4, =gActiveBattler\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc _0803B2B2\n\ + ldrb r0, [r6]\n\ + adds r0, 0x1\n\ + strb r0, [r6]\n\ + ldr r1, =gBattlersCount\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r4, =gActiveBattler\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + bcc _0803B2B2\n\ _0803B2EC:\n\ - ldr r1, =gBattleMainFunc\n\ - ldr r0, =BattleIntroRecordMonsToDex\n\ + ldr r1, =gBattleMainFunc\n\ + ldr r0, =BattleIntroRecordMonsToDex\n\ _0803B2F0:\n\ - str r0, [r1]\n\ + str r0, [r1]\n\ _0803B2F2:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ .syntax divided"); } #endif // NONMATCHING @@ -3994,7 +3994,7 @@ void BattleTurnPassed(void) if (gBattleResults.battleTurnCounter < 0xFF) { gBattleResults.battleTurnCounter++; - gBattleStruct->field_DA++; + gBattleStruct->arenaTurnCounter++; } for (i = 0; i < gBattlersCount; i++) @@ -4013,7 +4013,7 @@ void BattleTurnPassed(void) if (gBattleTypeFlags & BATTLE_TYPE_PALACE) BattleScriptExecute(BattleScript_82DB881); - else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0) + else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->arenaTurnCounter == 0) BattleScriptExecute(BattleScript_ArenaTurnBeginning); } @@ -4591,10 +4591,10 @@ static void sub_803CDF8(void) void SwapTurnOrder(u8 id1, u8 id2) { - u32 temp; + u32 temp; - SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp); - SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp); + SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp); + SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp); } u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) @@ -5594,7 +5594,7 @@ bool8 TryRunFromBattle(u8 battler) if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) { - gLastUsedItem = gBattleMons[battler].item ; + gLastUsedItem = gBattleMons[battler].item; gProtectStructs[battler].fleeFlag = 1; effect++; } diff --git a/src/battle_message.c b/src/battle_message.c index 47c4cbe1d..75f9b1da8 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -71,58 +71,58 @@ static const u8 sText_ABoosted[] = _(" a boosted"); static const u8 sText_PkmnGrewToLv[] = _("{B_BUFF1} grew to\nLV. {B_BUFF2}!{UNKNOWN_A}\p"); static const u8 sText_PkmnLearnedMove[] = _("{B_BUFF1} learned\n{B_BUFF2}!{UNKNOWN_A}\p"); static const u8 sText_TryToLearnMove1[] = _("{B_BUFF1} is trying to\nlearn {B_BUFF2}.\p"); -static const u8 sText_TryToLearnMove2[] = _("But, {B_BUFF1} can’t learn\nmore than four moves.\p"); +static const u8 sText_TryToLearnMove2[] = _("But, {B_BUFF1} can't learn\nmore than four moves.\p"); static const u8 sText_TryToLearnMove3[] = _("Delete a move to make\nroom for {B_BUFF2}?"); static const u8 sText_PkmnForgotMove[] = _("{B_BUFF1} forgot\n{B_BUFF2}.\p"); static const u8 sText_StopLearningMove[] = _("{PAUSE 32}Stop learning\n{B_BUFF2}?"); static const u8 sText_DidNotLearnMove[] = _("{B_BUFF1} did not learn\n{B_BUFF2}.\p"); static const u8 sText_UseNextPkmn[] = _("Use next POKéMON?"); -static const u8 sText_AttackMissed[] = _("{B_ATK_NAME_WITH_PREFIX}’s\nattack missed!"); +static const u8 sText_AttackMissed[] = _("{B_ATK_NAME_WITH_PREFIX}'s\nattack missed!"); static const u8 sText_PkmnProtectedItself[] = _("{B_DEF_NAME_WITH_PREFIX}\nprotected itself!"); static const u8 sText_AvoidedDamage[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\ndamage with {B_DEF_ABILITY}!"); static const u8 sText_PkmnMakesGroundMiss[] = _("{B_DEF_NAME_WITH_PREFIX} makes GROUND\nmoves miss with {B_DEF_ABILITY}!"); static const u8 sText_PkmnAvoidedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\nthe attack!"); -static const u8 sText_ItDoesntAffect[] = _("It doesn’t affect\n{B_DEF_NAME_WITH_PREFIX}…"); +static const u8 sText_ItDoesntAffect[] = _("It doesn't affect\n{B_DEF_NAME_WITH_PREFIX}…"); static const u8 sText_AttackerFainted[] = _("{B_ATK_NAME_WITH_PREFIX}\nfainted!\p"); static const u8 sText_TargetFainted[] = _("{B_DEF_NAME_WITH_PREFIX}\nfainted!\p"); static const u8 sText_PlayerGotMoney[] = _("{B_PLAYER_NAME} got ¥{B_BUFF1}\nfor winning!\p"); static const u8 sText_PlayerWhiteout[] = _("{B_PLAYER_NAME} is out of\nusable POKéMON!\p"); static const u8 sText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); static const u8 sText_PreventsEscape[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p"); -static const u8 sText_CantEscape2[] = _("Can’t escape!\p"); -static const u8 sText_AttackerCantEscape[] = _("{B_ATK_NAME_WITH_PREFIX} can’t escape!"); +static const u8 sText_CantEscape2[] = _("Can't escape!\p"); +static const u8 sText_AttackerCantEscape[] = _("{B_ATK_NAME_WITH_PREFIX} can't escape!"); static const u8 sText_HitXTimes[] = _("Hit {B_BUFF1} time(s)!"); static const u8 sText_PkmnFellAsleep[] = _("{B_EFF_NAME_WITH_PREFIX}\nfell asleep!"); -static const u8 sText_PkmnMadeSleep[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); +static const u8 sText_PkmnMadeSleep[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); static const u8 sText_PkmnAlreadyAsleep[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready asleep!"); static const u8 sText_PkmnAlreadyAsleep2[] = _("{B_ATK_NAME_WITH_PREFIX} is\nalready asleep!"); -static const u8 sText_PkmnWasntAffected[] = _("{B_DEF_NAME_WITH_PREFIX}\nwasn’t affected!"); +static const u8 sText_PkmnWasntAffected[] = _("{B_DEF_NAME_WITH_PREFIX}\nwasn't affected!"); static const u8 sText_PkmnWasPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX}\nwas poisoned!"); -static const u8 sText_PkmnPoisonedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\npoisoned {B_EFF_NAME_WITH_PREFIX}!"); +static const u8 sText_PkmnPoisonedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\npoisoned {B_EFF_NAME_WITH_PREFIX}!"); static const u8 sText_PkmnHurtByPoison[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby poison!"); static const u8 sText_PkmnAlreadyPoisoned[] = _("{B_DEF_NAME_WITH_PREFIX} is already\npoisoned."); static const u8 sText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} is badly\npoisoned!"); static const u8 sText_PkmnEnergyDrained[] = _("{B_DEF_NAME_WITH_PREFIX} had its\nenergy drained!"); static const u8 sText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} was burned!"); -static const u8 sText_PkmnBurnedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!"); +static const u8 sText_PkmnBurnedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!"); static const u8 sText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its burn!"); static const u8 sText_PkmnAlreadyHasBurn[] = _("{B_DEF_NAME_WITH_PREFIX} already\nhas a burn."); static const u8 sText_PkmnWasFrozen[] = _("{B_EFF_NAME_WITH_PREFIX} was\nfrozen solid!"); -static const u8 sText_PkmnFrozenBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nfroze {B_EFF_NAME_WITH_PREFIX} solid!"); +static const u8 sText_PkmnFrozenBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nfroze {B_EFF_NAME_WITH_PREFIX} solid!"); static const u8 sText_PkmnIsFrozen[] = _("{B_ATK_NAME_WITH_PREFIX} is\nfrozen solid!"); static const u8 sText_PkmnWasDefrosted[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndefrosted!"); static const u8 sText_PkmnWasDefrosted2[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted!"); static const u8 sText_PkmnWasDefrostedBy[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted by {B_CURRENT_MOVE}!"); static const u8 sText_PkmnWasParalyzed[] = _("{B_EFF_NAME_WITH_PREFIX} is paralyzed!\nIt may be unable to move!"); -static const u8 sText_PkmnWasParalyzedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nparalyzed {B_EFF_NAME_WITH_PREFIX}!\lIt may be unable to move!"); -static const u8 sText_PkmnIsParalyzed[] = _("{B_ATK_NAME_WITH_PREFIX} is paralyzed!\nIt can’t move!"); +static const u8 sText_PkmnWasParalyzedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nparalyzed {B_EFF_NAME_WITH_PREFIX}!\lIt may be unable to move!"); +static const u8 sText_PkmnIsParalyzed[] = _("{B_ATK_NAME_WITH_PREFIX} is paralyzed!\nIt can't move!"); static const u8 sText_PkmnIsAlreadyParalyzed[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready paralyzed!"); static const u8 sText_PkmnHealedParalysis[] = _("{B_DEF_NAME_WITH_PREFIX} was\nhealed of paralysis!"); -static const u8 sText_PkmnDreamEaten[] = _("{B_DEF_NAME_WITH_PREFIX}’s\ndream was eaten!"); -static const u8 sText_StatsWontIncrease[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\nwon’t go higher!"); -static const u8 sText_StatsWontDecrease[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\nwon’t go lower!"); -static const u8 sText_TeamStoppedWorking[] = _("Your team’s {B_BUFF1}\nstopped working!"); -static const u8 sText_FoeStoppedWorking[] = _("The foe’s {B_BUFF1}\nstopped working!"); +static const u8 sText_PkmnDreamEaten[] = _("{B_DEF_NAME_WITH_PREFIX}'s\ndream was eaten!"); +static const u8 sText_StatsWontIncrease[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\nwon't go higher!"); +static const u8 sText_StatsWontDecrease[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\nwon't go lower!"); +static const u8 sText_TeamStoppedWorking[] = _("Your team's {B_BUFF1}\nstopped working!"); +static const u8 sText_FoeStoppedWorking[] = _("The foe's {B_BUFF1}\nstopped working!"); static const u8 sText_PkmnIsConfused[] = _("{B_ATK_NAME_WITH_PREFIX} is\nconfused!"); static const u8 sText_PkmnHealedConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} snapped\nout of confusion!"); static const u8 sText_PkmnWasConfused[] = _("{B_EFF_NAME_WITH_PREFIX} became\nconfused!"); @@ -134,14 +134,14 @@ static const u8 sText_PkmnBlownAway[] = _("{B_DEF_NAME_WITH_PREFIX} was\nblown a static const u8 sText_PkmnChangedType[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto the {B_BUFF1} type!"); static const u8 sText_PkmnFlinched[] = _("{B_ATK_NAME_WITH_PREFIX} flinched!"); static const u8 sText_PkmnRegainedHealth[] = _("{B_DEF_NAME_WITH_PREFIX} regained\nhealth!"); -static const u8 sText_PkmnHPFull[] = _("{B_DEF_NAME_WITH_PREFIX}’s\nHP is full!"); -static const u8 sText_PkmnRaisedSpDef[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised SP. DEF!"); -static const u8 sText_PkmnRaisedSpDefALittle[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised SP. DEF a little!"); -static const u8 sText_PkmnRaisedDef[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised DEFENSE!"); -static const u8 sText_PkmnRaisedDefALittle[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised DEFENSE a little!"); -static const u8 sText_PkmnCoveredByVeil[] = _("{B_ATK_PREFIX2}’s party is covered\nby a veil!"); -static const u8 sText_PkmnUsedSafeguard[] = _("{B_DEF_NAME_WITH_PREFIX}’s party is protected\nby SAFEGUARD!"); -static const u8 sText_PkmnSafeguardExpired[] = _("{B_ATK_PREFIX3}’s party is no longer\nprotected by SAFEGUARD!"); +static const u8 sText_PkmnHPFull[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nHP is full!"); +static const u8 sText_PkmnRaisedSpDef[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised SP. DEF!"); +static const u8 sText_PkmnRaisedSpDefALittle[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised SP. DEF a little!"); +static const u8 sText_PkmnRaisedDef[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised DEFENSE!"); +static const u8 sText_PkmnRaisedDefALittle[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised DEFENSE a little!"); +static const u8 sText_PkmnCoveredByVeil[] = _("{B_ATK_PREFIX2}'s party is covered\nby a veil!"); +static const u8 sText_PkmnUsedSafeguard[] = _("{B_DEF_NAME_WITH_PREFIX}'s party is protected\nby SAFEGUARD!"); +static const u8 sText_PkmnSafeguardExpired[] = _("{B_ATK_PREFIX3}'s party is no longer\nprotected by SAFEGUARD!"); static const u8 sText_PkmnWentToSleep[] = _("{B_ATK_NAME_WITH_PREFIX} went\nto sleep!"); static const u8 sText_PkmnSleptHealthy[] = _("{B_ATK_NAME_WITH_PREFIX} slept and\nbecame healthy!"); static const u8 sText_PkmnWhippedWhirlwind[] = _("{B_ATK_NAME_WITH_PREFIX} whipped\nup a whirlwind!"); @@ -152,7 +152,7 @@ static const u8 sText_PkmnFlewHigh[] = _("{B_ATK_NAME_WITH_PREFIX} flew\nup high static const u8 sText_PkmnDugHole[] = _("{B_ATK_NAME_WITH_PREFIX} dug a hole!"); static const u8 sText_PkmnHidUnderwater[] = _("{B_ATK_NAME_WITH_PREFIX} hid\nunderwater!"); static const u8 sText_PkmnSprangUp[] = _("{B_ATK_NAME_WITH_PREFIX} sprang up!"); -static const u8 sText_PkmnSqueezedByBind[] = _("{B_DEF_NAME_WITH_PREFIX} was squeezed by\n{B_ATK_NAME_WITH_PREFIX}’s BIND!"); +static const u8 sText_PkmnSqueezedByBind[] = _("{B_DEF_NAME_WITH_PREFIX} was squeezed by\n{B_ATK_NAME_WITH_PREFIX}'s BIND!"); static const u8 sText_PkmnTrappedInVortex[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nin the vortex!"); static const u8 sText_PkmnTrappedBySandTomb[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nby SAND TOMB!"); static const u8 sText_PkmnWrappedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was WRAPPED by\n{B_ATK_NAME_WITH_PREFIX}!"); @@ -167,21 +167,21 @@ static const u8 sText_PkmnHitWithRecoil[] = _("{B_ATK_NAME_WITH_PREFIX} is hit\n static const u8 sText_PkmnProtectedItself2[] = _("{B_ATK_NAME_WITH_PREFIX} protected\nitself!"); static const u8 sText_PkmnBuffetedBySandstorm[] = _("{B_ATK_NAME_WITH_PREFIX} is buffeted\nby the sandstorm!"); static const u8 sText_PkmnPeltedByHail[] = _("{B_ATK_NAME_WITH_PREFIX} is pelted\nby HAIL!"); -static const u8 sText_PkmnsXWoreOff[] = _("{B_ATK_PREFIX1}’s {B_BUFF1}\nwore off!"); +static const u8 sText_PkmnsXWoreOff[] = _("{B_ATK_PREFIX1}'s {B_BUFF1}\nwore off!"); static const u8 sText_PkmnSeeded[] = _("{B_DEF_NAME_WITH_PREFIX} was seeded!"); static const u8 sText_PkmnEvadedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} evaded\nthe attack!"); -static const u8 sText_PkmnSappedByLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX}’s health is\nsapped by LEECH SEED!"); +static const u8 sText_PkmnSappedByLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX}'s health is\nsapped by LEECH SEED!"); static const u8 sText_PkmnFastAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} is fast\nasleep."); static const u8 sText_PkmnWokeUp[] = _("{B_ATK_NAME_WITH_PREFIX} woke up!"); -static const u8 sText_PkmnUproarKeptAwake[] = _("But {B_SCR_ACTIVE_NAME_WITH_PREFIX}’s UPROAR\nkept it awake!"); +static const u8 sText_PkmnUproarKeptAwake[] = _("But {B_SCR_ACTIVE_NAME_WITH_PREFIX}'s UPROAR\nkept it awake!"); static const u8 sText_PkmnWokeUpInUproar[] = _("{B_ATK_NAME_WITH_PREFIX} woke up\nin the UPROAR!"); static const u8 sText_PkmnCausedUproar[] = _("{B_ATK_NAME_WITH_PREFIX} caused\nan UPROAR!"); static const u8 sText_PkmnMakingUproar[] = _("{B_ATK_NAME_WITH_PREFIX} is making\nan UPROAR!"); static const u8 sText_PkmnCalmedDown[] = _("{B_ATK_NAME_WITH_PREFIX} calmed down."); -static const u8 sText_PkmnCantSleepInUproar[] = _("But {B_DEF_NAME_WITH_PREFIX} can’t\nsleep in an UPROAR!"); +static const u8 sText_PkmnCantSleepInUproar[] = _("But {B_DEF_NAME_WITH_PREFIX} can't\nsleep in an UPROAR!"); static const u8 sText_PkmnStockpiled[] = _("{B_ATK_NAME_WITH_PREFIX} STOCKPILED\n{B_BUFF1}!"); -static const u8 sText_PkmnCantStockpile[] = _("{B_ATK_NAME_WITH_PREFIX} can’t\nSTOCKPILE any more!"); -static const u8 sText_PkmnCantSleepInUproar2[] = _("But {B_DEF_NAME_WITH_PREFIX} can’t\nsleep in an UPROAR!"); +static const u8 sText_PkmnCantStockpile[] = _("{B_ATK_NAME_WITH_PREFIX} can't\nSTOCKPILE any more!"); +static const u8 sText_PkmnCantSleepInUproar2[] = _("But {B_DEF_NAME_WITH_PREFIX} can't\nsleep in an UPROAR!"); static const u8 sText_UproarKeptPkmnAwake[] = _("But the UPROAR kept\n{B_DEF_NAME_WITH_PREFIX} awake!"); static const u8 sText_PkmnStayedAwakeUsing[] = _("{B_DEF_NAME_WITH_PREFIX} stayed awake\nusing its {B_DEF_ABILITY}!"); static const u8 sText_PkmnStoringEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} is storing\nenergy!"); @@ -193,45 +193,45 @@ static const u8 sText_PkmnTransformedInto[] = _("{B_ATK_NAME_WITH_PREFIX} transf static const u8 sText_PkmnMadeSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} made\na SUBSTITUTE!"); static const u8 sText_PkmnHasSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} already\nhas a SUBSTITUTE!"); static const u8 sText_SubstituteDamaged[] = _("The SUBSTITUTE took damage\nfor {B_DEF_NAME_WITH_PREFIX}!\p"); -static const u8 sText_PkmnSubstituteFaded[] = _("{B_DEF_NAME_WITH_PREFIX}’s\nSUBSTITUTE faded!\p"); +static const u8 sText_PkmnSubstituteFaded[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nSUBSTITUTE faded!\p"); static const u8 sText_PkmnMustRecharge[] = _("{B_ATK_NAME_WITH_PREFIX} must\nrecharge!"); -static const u8 sText_PkmnRageBuilding[] = _("{B_DEF_NAME_WITH_PREFIX}’s RAGE\nis building!"); -static const u8 sText_PkmnMoveWasDisabled[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\nwas disabled!"); +static const u8 sText_PkmnRageBuilding[] = _("{B_DEF_NAME_WITH_PREFIX}'s RAGE\nis building!"); +static const u8 sText_PkmnMoveWasDisabled[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\nwas disabled!"); static const u8 sText_PkmnMoveDisabledNoMore[] = _("{B_ATK_NAME_WITH_PREFIX} is disabled\nno more!"); static const u8 sText_PkmnGotEncore[] = _("{B_DEF_NAME_WITH_PREFIX} got\nan ENCORE!"); -static const u8 sText_PkmnEncoreEnded[] = _("{B_ATK_NAME_WITH_PREFIX}’s ENCORE\nended!"); +static const u8 sText_PkmnEncoreEnded[] = _("{B_ATK_NAME_WITH_PREFIX}'s ENCORE\nended!"); static const u8 sText_PkmnTookAim[] = _("{B_ATK_NAME_WITH_PREFIX} took aim\nat {B_DEF_NAME_WITH_PREFIX}!"); static const u8 sText_PkmnSketchedMove[] = _("{B_ATK_NAME_WITH_PREFIX} SKETCHED\n{B_BUFF1}!"); static const u8 sText_PkmnTryingToTakeFoe[] = _("{B_ATK_NAME_WITH_PREFIX} is trying\nto take its foe with it!"); static const u8 sText_PkmnTookFoe[] = _("{B_DEF_NAME_WITH_PREFIX} took\n{B_ATK_NAME_WITH_PREFIX} with it!"); -static const u8 sText_PkmnReducedPP[] = _("Reduced {B_DEF_NAME_WITH_PREFIX}’s\n{B_BUFF1} by {B_BUFF2}!"); -static const u8 sText_PkmnStoleItem[] = _("{B_ATK_NAME_WITH_PREFIX} stole\n{B_DEF_NAME_WITH_PREFIX}’s {B_LAST_ITEM}!"); -static const u8 sText_TargetCantEscapeNow[] = _("{B_DEF_NAME_WITH_PREFIX} can’t\nescape now!"); +static const u8 sText_PkmnReducedPP[] = _("Reduced {B_DEF_NAME_WITH_PREFIX}'s\n{B_BUFF1} by {B_BUFF2}!"); +static const u8 sText_PkmnStoleItem[] = _("{B_ATK_NAME_WITH_PREFIX} stole\n{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}!"); +static const u8 sText_TargetCantEscapeNow[] = _("{B_DEF_NAME_WITH_PREFIX} can't\nescape now!"); static const u8 sText_PkmnFellIntoNightmare[] = _("{B_DEF_NAME_WITH_PREFIX} fell into\na NIGHTMARE!"); static const u8 sText_PkmnLockedInNightmare[] = _("{B_ATK_NAME_WITH_PREFIX} is locked\nin a NIGHTMARE!"); static const u8 sText_PkmnLaidCurse[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP and\nlaid a CURSE on {B_DEF_NAME_WITH_PREFIX}!"); static const u8 sText_PkmnAfflictedByCurse[] = _("{B_ATK_NAME_WITH_PREFIX} is afflicted\nby the CURSE!"); -static const u8 sText_SpikesScattered[] = _("SPIKES were scattered all around\nthe opponent’s side!"); +static const u8 sText_SpikesScattered[] = _("SPIKES were scattered all around\nthe opponent's side!"); static const u8 sText_PkmnHurtBySpikes[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is hurt\nby SPIKES!"); static const u8 sText_PkmnIdentified[] = _("{B_ATK_NAME_WITH_PREFIX} identified\n{B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnPerishCountFell[] = _("{B_ATK_NAME_WITH_PREFIX}’s PERISH count\nfell to {B_BUFF1}!"); +static const u8 sText_PkmnPerishCountFell[] = _("{B_ATK_NAME_WITH_PREFIX}'s PERISH count\nfell to {B_BUFF1}!"); static const u8 sText_PkmnBracedItself[] = _("{B_ATK_NAME_WITH_PREFIX} braced\nitself!"); static const u8 sText_PkmnEnduredHit[] = _("{B_DEF_NAME_WITH_PREFIX} ENDURED\nthe hit!"); static const u8 sText_MagnitudeStrength[] = _("MAGNITUDE {B_BUFF1}!"); static const u8 sText_PkmnCutHPMaxedAttack[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP\nand maximized ATTACK!"); -static const u8 sText_PkmnCopiedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}’s stat changes!"); -static const u8 sText_PkmnGotFree[] = _("{B_ATK_NAME_WITH_PREFIX} got free of\n{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}!"); +static const u8 sText_PkmnCopiedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}'s stat changes!"); +static const u8 sText_PkmnGotFree[] = _("{B_ATK_NAME_WITH_PREFIX} got free of\n{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}!"); static const u8 sText_PkmnShedLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX} shed\nLEECH SEED!"); static const u8 sText_PkmnBlewAwaySpikes[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nSPIKES!"); static const u8 sText_PkmnFledFromBattle[] = _("{B_ATK_NAME_WITH_PREFIX} fled from\nbattle!"); static const u8 sText_PkmnForesawAttack[] = _("{B_ATK_NAME_WITH_PREFIX} foresaw\nan attack!"); static const u8 sText_PkmnTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX} took the\n{B_BUFF1} attack!"); static const u8 sText_PkmnChoseXAsDestiny[] = _("{B_ATK_NAME_WITH_PREFIX} chose\n{B_CURRENT_MOVE} as its destiny!"); -static const u8 sText_PkmnAttack[] = _("{B_BUFF1}’s attack!"); +static const u8 sText_PkmnAttack[] = _("{B_BUFF1}'s attack!"); static const u8 sText_PkmnCenterAttention[] = _("{B_ATK_NAME_WITH_PREFIX} became the\ncenter of attention!"); static const u8 sText_PkmnChargingPower[] = _("{B_ATK_NAME_WITH_PREFIX} began\ncharging power!"); static const u8 sText_NaturePowerTurnedInto[] = _("NATURE POWER turned into\n{B_CURRENT_MOVE}!"); -static const u8 sText_PkmnStatusNormal[] = _("{B_ATK_NAME_WITH_PREFIX}’s status\nreturned to normal!"); +static const u8 sText_PkmnStatusNormal[] = _("{B_ATK_NAME_WITH_PREFIX}'s status\nreturned to normal!"); static const u8 sText_PkmnSubjectedToTorment[] = _("{B_DEF_NAME_WITH_PREFIX} was subjected\nto TORMENT!"); static const u8 sText_PkmnTighteningFocus[] = _("{B_ATK_NAME_WITH_PREFIX} is tightening\nits focus!"); static const u8 sText_PkmnFellForTaunt[] = _("{B_DEF_NAME_WITH_PREFIX} fell for\nthe TAUNT!"); @@ -240,93 +240,93 @@ static const u8 sText_PkmnSwitchedItems[] = _("{B_ATK_NAME_WITH_PREFIX} switched static const u8 sText_PkmnObtainedX[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}."); static const u8 sText_PkmnObtainedX2[] = _("{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); static const u8 sText_PkmnObtainedXYObtainedZ[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}.\p{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); -static const u8 sText_PkmnCopiedFoe[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}!"); +static const u8 sText_PkmnCopiedFoe[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}!"); static const u8 sText_PkmnMadeWish[] = _("{B_ATK_NAME_WITH_PREFIX} made a WISH!"); -static const u8 sText_PkmnWishCameTrue[] = _("{B_BUFF1}’s WISH\ncame true!"); +static const u8 sText_PkmnWishCameTrue[] = _("{B_BUFF1}'s WISH\ncame true!"); static const u8 sText_PkmnPlantedRoots[] = _("{B_ATK_NAME_WITH_PREFIX} planted its roots!"); static const u8 sText_PkmnAbsorbedNutrients[] = _("{B_ATK_NAME_WITH_PREFIX} absorbed\nnutrients with its roots!"); static const u8 sText_PkmnAnchoredItself[] = _("{B_DEF_NAME_WITH_PREFIX} anchored\nitself with its roots!"); static const u8 sText_PkmnWasMadeDrowsy[] = _("{B_ATK_NAME_WITH_PREFIX} made\n{B_DEF_NAME_WITH_PREFIX} drowsy!"); -static const u8 sText_PkmnKnockedOff[] = _("{B_ATK_NAME_WITH_PREFIX} knocked off\n{B_DEF_NAME_WITH_PREFIX}’s {B_LAST_ITEM}!"); +static const u8 sText_PkmnKnockedOff[] = _("{B_ATK_NAME_WITH_PREFIX} knocked off\n{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}!"); static const u8 sText_PkmnSwappedAbilities[] = _("{B_ATK_NAME_WITH_PREFIX} swapped abilities\nwith its opponent!"); -static const u8 sText_PkmnSealedOpponentMove[] = _("{B_ATK_NAME_WITH_PREFIX} sealed the\nopponent’s move(s)!"); +static const u8 sText_PkmnSealedOpponentMove[] = _("{B_ATK_NAME_WITH_PREFIX} sealed the\nopponent's move(s)!"); static const u8 sText_PkmnWantsGrudge[] = _("{B_ATK_NAME_WITH_PREFIX} wants the\nopponent to bear a GRUDGE!"); -static const u8 sText_PkmnLostPPGrudge[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1} lost\nall its PP due to the GRUDGE!"); +static const u8 sText_PkmnLostPPGrudge[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} lost\nall its PP due to the GRUDGE!"); static const u8 sText_PkmnShroudedItself[] = _("{B_ATK_NAME_WITH_PREFIX} shrouded\nitself in {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnMoveBounced[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nwas bounced back by MAGIC COAT!"); +static const u8 sText_PkmnMoveBounced[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE}\nwas bounced back by MAGIC COAT!"); static const u8 sText_PkmnWaitsForTarget[] = _("{B_ATK_NAME_WITH_PREFIX} waits for a target\nto make a move!"); -static const u8 sText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} SNATCHED\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s move!"); -static const u8 sText_ElectricityWeakened[] = _("Electricity’s power was\nweakened!"); -static const u8 sText_FireWeakened[] = _("Fire’s power was\nweakened!"); +static const u8 sText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} SNATCHED\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s move!"); +static const u8 sText_ElectricityWeakened[] = _("Electricity's power was\nweakened!"); +static const u8 sText_FireWeakened[] = _("Fire's power was\nweakened!"); static const u8 sText_XFoundOneY[] = _("{B_ATK_NAME_WITH_PREFIX} found\none {B_LAST_ITEM}!"); static const u8 sText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!"); -static const u8 sText_ItemsCantBeUsedNow[] = _("Items can’t be used now.{PAUSE 64}"); +static const u8 sText_ItemsCantBeUsedNow[] = _("Items can't be used now.{PAUSE 64}"); static const u8 sText_ForXCommaYZ[] = _("For {B_SCR_ACTIVE_NAME_WITH_PREFIX},\n{B_LAST_ITEM} {B_BUFF1}"); static const u8 sText_PkmnUsedXToGetPumped[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} used\n{B_LAST_ITEM} to get pumped!"); -static const u8 sText_PkmnLostFocus[] = _("{B_ATK_NAME_WITH_PREFIX} lost its\nfocus and couldn’t move!"); +static const u8 sText_PkmnLostFocus[] = _("{B_ATK_NAME_WITH_PREFIX} lost its\nfocus and couldn't move!"); static const u8 sText_PkmnWasDraggedOut[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndragged out!\p"); static const u8 sText_TheWallShattered[] = _("The wall shattered!"); static const u8 sText_ButNoEffect[] = _("But it had no effect!"); static const u8 sText_PkmnHasNoMovesLeft[] = _("{B_ACTIVE_NAME_WITH_PREFIX} has no\nmoves left!\p"); -static const u8 sText_PkmnMoveIsDisabled[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nis disabled!\p"); -static const u8 sText_PkmnCantUseMoveTorment[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can’t use the same\nmove in a row due to the TORMENT!\p"); -static const u8 sText_PkmnCantUseMoveTaunt[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can’t use\n{B_CURRENT_MOVE} after the TAUNT!\p"); -static const u8 sText_PkmnCantUseMoveSealed[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can’t use the\nsealed {B_CURRENT_MOVE}!\p"); -static const u8 sText_PkmnMadeItRain[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it rain!"); -static const u8 sText_PkmnRaisedSpeed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nraised its SPEED!"); +static const u8 sText_PkmnMoveIsDisabled[] = _("{B_ACTIVE_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE}\nis disabled!\p"); +static const u8 sText_PkmnCantUseMoveTorment[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can't use the same\nmove in a row due to the TORMENT!\p"); +static const u8 sText_PkmnCantUseMoveTaunt[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can't use\n{B_CURRENT_MOVE} after the TAUNT!\p"); +static const u8 sText_PkmnCantUseMoveSealed[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can't use the\nsealed {B_CURRENT_MOVE}!\p"); +static const u8 sText_PkmnMadeItRain[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nmade it rain!"); +static const u8 sText_PkmnRaisedSpeed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nraised its SPEED!"); static const u8 sText_PkmnProtectedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was protected\nby {B_DEF_ABILITY}!"); -static const u8 sText_PkmnPreventsUsage[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents {B_ATK_NAME_WITH_PREFIX}\lfrom using {B_CURRENT_MOVE}!"); +static const u8 sText_PkmnPreventsUsage[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents {B_ATK_NAME_WITH_PREFIX}\lfrom using {B_CURRENT_MOVE}!"); static const u8 sText_PkmnRestoredHPUsing[] = _("{B_DEF_NAME_WITH_PREFIX} restored HP\nusing its {B_DEF_ABILITY}!"); -static const u8 sText_PkmnsXMadeYUseless[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} useless!"); -static const u8 sText_PkmnChangedTypeWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade it the {B_BUFF1} type!"); -static const u8 sText_PkmnPreventsParalysisWith[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents paralysis!"); -static const u8 sText_PkmnPreventsRomanceWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents romance!"); -static const u8 sText_PkmnPreventsPoisoningWith[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents poisoning!"); -static const u8 sText_PkmnPreventsConfusionWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents confusion!"); -static const u8 sText_PkmnRaisedFirePowerWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nraised its FIRE power!"); +static const u8 sText_PkmnsXMadeYUseless[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} useless!"); +static const u8 sText_PkmnChangedTypeWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nmade it the {B_BUFF1} type!"); +static const u8 sText_PkmnPreventsParalysisWith[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents paralysis!"); +static const u8 sText_PkmnPreventsRomanceWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents romance!"); +static const u8 sText_PkmnPreventsPoisoningWith[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents poisoning!"); +static const u8 sText_PkmnPreventsConfusionWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents confusion!"); +static const u8 sText_PkmnRaisedFirePowerWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nraised its FIRE power!"); static const u8 sText_PkmnAnchorsItselfWith[] = _("{B_DEF_NAME_WITH_PREFIX} anchors\nitself with {B_DEF_ABILITY}!"); -static const u8 sText_PkmnCutsAttackWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncuts {B_DEF_NAME_WITH_PREFIX}’s ATTACK!"); -static const u8 sText_PkmnPreventsStatLossWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); -static const u8 sText_PkmnHurtsWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nhurt {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnTraced[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}’s {B_BUFF2}!"); -static const u8 sText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_EFF_ABILITY}\nprevents burns!"); -static const u8 sText_PkmnsXBlocksY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nblocks {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnsXBlocksY2[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_ATK_ABILITY}\nrestored its HP a little!"); -static const u8 sText_PkmnsXWhippedUpSandstorm[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); -static const u8 sText_PkmnsXIntensifiedSun[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nintensified the sun’s rays!"); -static const u8 sText_PkmnsXPreventsYLoss[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); -static const u8 sText_PkmnsXInfatuatedY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ninfatuated {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnsXMadeYIneffective[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} ineffective!"); -static const u8 sText_PkmnsXCuredYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +static const u8 sText_PkmnCutsAttackWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\ncuts {B_DEF_NAME_WITH_PREFIX}'s ATTACK!"); +static const u8 sText_PkmnPreventsStatLossWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); +static const u8 sText_PkmnHurtsWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nhurt {B_ATK_NAME_WITH_PREFIX}!"); +static const u8 sText_PkmnTraced[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}'s {B_BUFF2}!"); +static const u8 sText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_EFF_ABILITY}\nprevents burns!"); +static const u8 sText_PkmnsXBlocksY[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nblocks {B_CURRENT_MOVE}!"); +static const u8 sText_PkmnsXBlocksY2[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); +static const u8 sText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nrestored its HP a little!"); +static const u8 sText_PkmnsXWhippedUpSandstorm[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); +static const u8 sText_PkmnsXIntensifiedSun[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nintensified the sun's rays!"); +static const u8 sText_PkmnsXPreventsYLoss[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); +static const u8 sText_PkmnsXInfatuatedY[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\ninfatuated {B_ATK_NAME_WITH_PREFIX}!"); +static const u8 sText_PkmnsXMadeYIneffective[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} ineffective!"); +static const u8 sText_PkmnsXCuredYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); static const u8 sText_ItSuckedLiquidOoze[] = _("It sucked up the\nLIQUID OOZE!"); static const u8 sText_PkmnTransformed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} transformed!"); -static const u8 sText_PkmnsXTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ntook the attack!"); -const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}’s {B_LAST_ABILITY}\nprevents switching!\p"); -static const u8 sText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevented {B_SCR_ACTIVE_NAME_WITH_PREFIX}’s\l{B_BUFF1} from working!"); -static const u8 sText_PkmnsXMadeItIneffective[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); -static const u8 sText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_EFF_ABILITY}\nprevents flinching!"); -static const u8 sText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_ATK_ABILITY}\nprevents {B_DEF_NAME_WITH_PREFIX}’s\l{B_DEF_ABILITY} from working!"); -static const u8 sText_PkmnsXCuredItsYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); -static const u8 sText_PkmnsXHadNoEffectOnY[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); +static const u8 sText_PkmnsXTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\ntook the attack!"); +const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}'s {B_LAST_ABILITY}\nprevents switching!\p"); +static const u8 sText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevented {B_SCR_ACTIVE_NAME_WITH_PREFIX}'s\l{B_BUFF1} from working!"); +static const u8 sText_PkmnsXMadeItIneffective[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); +static const u8 sText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_EFF_ABILITY}\nprevents flinching!"); +static const u8 sText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nprevents {B_DEF_NAME_WITH_PREFIX}'s\l{B_DEF_ABILITY} from working!"); +static const u8 sText_PkmnsXCuredItsYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +static const u8 sText_PkmnsXHadNoEffectOnY[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); static const u8 sText_StatSharply[] = _("sharply "); const u8 gText_StatRose[] = _("rose!"); static const u8 sText_StatHarshly[] = _("harshly "); static const u8 sText_StatFell[] = _("fell!"); -static const u8 sText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); -const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +static const u8 sText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); -static const u8 sText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); -static const u8 sText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); -static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}’s stats won’t\ngo any higher!"); -static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}’s stats won’t\ngo any lower!"); +static const u8 sText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); +static const u8 sText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); +static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats won't\ngo any higher!"); +static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); static const u8 sText_CriticalHit[] = _("A critical hit!"); -static const u8 sText_OneHitKO[] = _("It’s a one-hit KO!"); +static const u8 sText_OneHitKO[] = _("It's a one-hit KO!"); static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); static const u8 sText_AndEllipsis[] = _("And…\p"); -static const u8 sText_HMMovesCantBeForgotten[] = _("HM moves can’t be\nforgotten now.\p"); -static const u8 sText_NotVeryEffective[] = _("It’s not very effective…"); -static const u8 sText_SuperEffective[] = _("It’s super effective!"); +static const u8 sText_HMMovesCantBeForgotten[] = _("HM moves can't be\nforgotten now.\p"); +static const u8 sText_NotVeryEffective[] = _("It's not very effective…"); +static const u8 sText_SuperEffective[] = _("It's super effective!"); static const u8 sText_GotAwaySafely[] = _("{PLAY_SE 0x0011}Got away safely!\p"); static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); @@ -339,9 +339,9 @@ static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); static const u8 sText_WildFled[] = _("{PLAY_SE 0x0011}{B_LINK_OPPONENT1_NAME} fled!"); static const u8 sText_TwoWildFled[] = _("{PLAY_SE 0x0011}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); -static const u8 sText_NoRunningFromTrainers[] = _("No! There’s no running\nfrom a TRAINER battle!\p"); -static const u8 sText_CantEscape[] = _("Can’t escape!\p"); -static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don’t leave me like this!\p"); +static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p"); +static const u8 sText_CantEscape[] = _("Can't escape!\p"); +static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don't leave me like this!\p"); static const u8 sText_ButNothingHappened[] = _("But nothing happened!"); static const u8 sText_ButItFailed[] = _("But it failed!"); static const u8 sText_ItHurtConfusion[] = _("It hurt itself in its\nconfusion!"); @@ -369,26 +369,26 @@ static const u8 sText_TooWeakForSubstitute[] = _("It was too weak to make\na SUB static const u8 sText_SharedPain[] = _("The battlers shared\ntheir pain!"); static const u8 sText_BellChimed[] = _("A bell chimed!"); static const u8 sText_FaintInThree[] = _("All affected POKéMON will\nfaint in three turns!"); -static const u8 sText_NoPPLeft[] = _("There’s no PP left for\nthis move!\p"); +static const u8 sText_NoPPLeft[] = _("There's no PP left for\nthis move!\p"); static const u8 sText_ButNoPPLeft[] = _("But there was no PP left\nfor the move!"); static const u8 sText_PkmnIgnoresAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders while asleep!"); static const u8 sText_PkmnIgnoredOrders[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders!"); static const u8 sText_PkmnBeganToNap[] = _("{B_ATK_NAME_WITH_PREFIX} began to nap!"); static const u8 sText_PkmnLoafing[] = _("{B_ATK_NAME_WITH_PREFIX} is\nloafing around!"); -static const u8 sText_PkmnWontObey[] = _("{B_ATK_NAME_WITH_PREFIX} won’t\nobey!"); +static const u8 sText_PkmnWontObey[] = _("{B_ATK_NAME_WITH_PREFIX} won't\nobey!"); static const u8 sText_PkmnTurnedAway[] = _("{B_ATK_NAME_WITH_PREFIX} turned away!"); static const u8 sText_PkmnPretendNotNotice[] = _("{B_ATK_NAME_WITH_PREFIX} pretended\nnot to notice!"); static const u8 sText_EnemyAboutToSwitchPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} is\nabout to use {B_BUFF2}.\pWill {B_PLAYER_NAME} change\nPOKéMON?"); static const u8 sText_PkmnLearnedMove2[] = _("{B_ATK_NAME_WITH_PREFIX} learned\n{B_BUFF1}!"); static const u8 sText_PlayerDefeatedLinkTrainerTrainer1[] = _("Player defeated\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!\p"); static const u8 sText_CreptCloser[] = _("{B_PLAYER_NAME} crept closer to\n{B_OPPONENT_MON1_NAME}!"); -static const u8 sText_CantGetCloser[] = _("{B_PLAYER_NAME} can’t get any closer!"); +static const u8 sText_CantGetCloser[] = _("{B_PLAYER_NAME} can't get any closer!"); static const u8 sText_PkmnWatchingCarefully[] = _("{B_OPPONENT_MON1_NAME} is watching\ncarefully!"); static const u8 sText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious about\nthe {B_BUFF1}!"); static const u8 sText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!"); static const u8 sText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!"); static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!"); -static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE 0x0049}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p"); +static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE 0x0049}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); @@ -410,9 +410,9 @@ static const u8 sText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and\n{B_PLAYER_M static const u8 sText_GoPkmn2[] = _("Go! {B_BUFF1}!"); static const u8 sText_DoItPkmn[] = _("Do it! {B_BUFF1}!"); static const u8 sText_GoForItPkmn[] = _("Go for it, {B_BUFF1}!"); -static const u8 sText_YourFoesWeakGetEmPkmn[] = _("Your foe’s weak!\nGet ’em, {B_BUFF1}!"); +static const u8 sText_YourFoesWeakGetEmPkmn[] = _("Your foe's weak!\nGet 'em, {B_BUFF1}!"); static const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_LINK_PARTNER_NAME} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); -static const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, that’s enough!\nCome back!"); +static const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, that's enough!\nCome back!"); static const u8 sText_PkmnComeBack[] = _("{B_BUFF1}, come back!"); static const u8 sText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nCome back!"); static const u8 sText_PkmnGoodComeBack[] = _("{B_BUFF1}, good!\nCome back!"); @@ -467,8 +467,8 @@ static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}! static const u8 sText_WallyUsedItem[] = _("WALLY used\n{B_LAST_ITEM}!"); static const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!"); static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); -static const u8 sText_DontBeAThief[] = _("Don’t be a thief!"); -static const u8 sText_ItDodgedBall[] = _("It dodged the thrown BALL!\nThis POKéMON can’t be caught!"); +static const u8 sText_DontBeAThief[] = _("Don't be a thief!"); +static const u8 sText_ItDodgedBall[] = _("It dodged the thrown BALL!\nThis POKéMON can't be caught!"); static const u8 sText_YouMissedPkmn[] = _("You missed the POKéMON!"); static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); @@ -478,30 +478,30 @@ static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} wa static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{UNKNOWN_A}{PLAY_BGM MUS_KACHI22}{PAUSE 127}"); static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); static const u8 sText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); -static const u8 sText_Someones[] = _("someone’s"); -static const u8 sText_Lanettes[] = _("LANETTE’s"); -static const u8 sText_PkmnDataAddedToDex[] = _("{B_OPPONENT_MON1_NAME}’s data was\nadded to the POKéDEX.\p"); +static const u8 sText_Someones[] = _("someone's"); +static const u8 sText_Lanettes[] = _("LANETTE's"); +static const u8 sText_PkmnDataAddedToDex[] = _("{B_OPPONENT_MON1_NAME}'s data was\nadded to the POKéDEX.\p"); static const u8 sText_ItIsRaining[] = _("It is raining."); static const u8 sText_SandstormIsRaging[] = _("A sandstorm is raging."); -static const u8 sText_BoxIsFull[] = _("The BOX is full!\nYou can’t catch any more!\p"); +static const u8 sText_BoxIsFull[] = _("The BOX is full!\nYou can't catch any more!\p"); static const u8 sText_EnigmaBerry[] = _("ENIGMA BERRY"); static const u8 sText_BerrySuffix[] = _(" BERRY"); -static const u8 sText_PkmnsItemCuredParalysis[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured paralysis!"); -static const u8 sText_PkmnsItemCuredPoison[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured poison!"); -static const u8 sText_PkmnsItemHealedBurn[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nhealed its burn!"); -static const u8 sText_PkmnsItemDefrostedIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ndefrosted it!"); -static const u8 sText_PkmnsItemWokeIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nwoke it from its sleep!"); -static const u8 sText_PkmnsItemSnappedOut[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nsnapped it out of confusion!"); -static const u8 sText_PkmnsItemCuredProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured its {B_BUFF1} problem!"); -static const u8 sText_PkmnsItemNormalizedStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nnormalized its status!"); -static const u8 sText_PkmnsItemRestoredHealth[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored health!"); -static const u8 sText_PkmnsItemRestoredPP[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored {B_BUFF1}’s PP!"); -static const u8 sText_PkmnsItemRestoredStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its status!"); -static const u8 sText_PkmnsItemRestoredHPALittle[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its HP a little!"); +static const u8 sText_PkmnsItemCuredParalysis[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured paralysis!"); +static const u8 sText_PkmnsItemCuredPoison[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured poison!"); +static const u8 sText_PkmnsItemHealedBurn[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nhealed its burn!"); +static const u8 sText_PkmnsItemDefrostedIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ndefrosted it!"); +static const u8 sText_PkmnsItemWokeIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nwoke it from its sleep!"); +static const u8 sText_PkmnsItemSnappedOut[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nsnapped it out of confusion!"); +static const u8 sText_PkmnsItemCuredProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured its {B_BUFF1} problem!"); +static const u8 sText_PkmnsItemNormalizedStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nnormalized its status!"); +static const u8 sText_PkmnsItemRestoredHealth[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored health!"); +static const u8 sText_PkmnsItemRestoredPP[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored {B_BUFF1}'s PP!"); +static const u8 sText_PkmnsItemRestoredStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored its status!"); +static const u8 sText_PkmnsItemRestoredHPALittle[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored its HP a little!"); static const u8 sText_ItemAllowsOnlyYMove[] = _("{B_LAST_ITEM} allows the\nuse of only {B_CURRENT_MOVE}!\p"); static const u8 sText_PkmnHungOnWithX[] = _("{B_DEF_NAME_WITH_PREFIX} hung on\nusing its {B_LAST_ITEM}!"); const u8 gText_EmptyString3[] = _(""); -static const u8 sText_YouThrowABallNowRight[] = _("You throw a BALL now, right?\nI… I’ll do my best!"); +static const u8 sText_YouThrowABallNowRight[] = _("You throw a BALL now, right?\nI… I'll do my best!"); // early declaration of strings static const u8 sText_PkmnIncapableOfPower[]; @@ -521,375 +521,375 @@ static const u8 sText_Trainer2LoseText[]; const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] = { - sText_Trainer1LoseText, // 12 - sText_PkmnGainedEXP, // 13 - sText_PkmnGrewToLv, // 14 - sText_PkmnLearnedMove, // 15 - sText_TryToLearnMove1, // 16 - sText_TryToLearnMove2, // 17 - sText_TryToLearnMove3, // 18 - sText_PkmnForgotMove, // 19 - sText_StopLearningMove, // 20 - sText_DidNotLearnMove, // 21 - sText_PkmnLearnedMove2, // 22 - sText_AttackMissed, // 23 - sText_PkmnProtectedItself, // 24 - sText_StatsWontIncrease2, // 25 - sText_AvoidedDamage, // 26 - sText_ItDoesntAffect, // 27 - sText_AttackerFainted, // 28 - sText_TargetFainted, // 29 - sText_PlayerGotMoney, // 30 - sText_PlayerWhiteout, // 31 - sText_PlayerWhiteout2, // 32 - sText_PreventsEscape, // 33 - sText_HitXTimes, // 34 - sText_PkmnFellAsleep, // 35 - sText_PkmnMadeSleep, // 36 - sText_PkmnAlreadyAsleep, // 37 - sText_PkmnAlreadyAsleep2, // 38 - sText_PkmnWasntAffected, // 39 - sText_PkmnWasPoisoned, // 40 - sText_PkmnPoisonedBy, // 41 - sText_PkmnHurtByPoison, // 42 - sText_PkmnAlreadyPoisoned, // 43 - sText_PkmnBadlyPoisoned, // 44 - sText_PkmnEnergyDrained, // 45 - sText_PkmnWasBurned, // 46 - sText_PkmnBurnedBy, // 47 - sText_PkmnHurtByBurn, // 48 - sText_PkmnWasFrozen, // 49 - sText_PkmnFrozenBy, // 50 - sText_PkmnIsFrozen, // 51 - sText_PkmnWasDefrosted, // 52 - sText_PkmnWasDefrosted2, // 53 - sText_PkmnWasDefrostedBy, // 54 - sText_PkmnWasParalyzed, // 55 - sText_PkmnWasParalyzedBy, // 56 - sText_PkmnIsParalyzed, // 57 - sText_PkmnIsAlreadyParalyzed, // 58 - sText_PkmnHealedParalysis, // 59 - sText_PkmnDreamEaten, // 60 - sText_StatsWontIncrease, // 61 - sText_StatsWontDecrease, // 62 - sText_TeamStoppedWorking, // 63 - sText_FoeStoppedWorking, // 64 - sText_PkmnIsConfused, // 65 - sText_PkmnHealedConfusion, // 66 - sText_PkmnWasConfused, // 67 - sText_PkmnAlreadyConfused, // 68 - sText_PkmnFellInLove, // 69 - sText_PkmnInLove, // 70 - sText_PkmnImmobilizedByLove, // 71 - sText_PkmnBlownAway, // 72 - sText_PkmnChangedType, // 73 - sText_PkmnFlinched, // 74 - sText_PkmnRegainedHealth, // 75 - sText_PkmnHPFull, // 76 - sText_PkmnRaisedSpDef, // 77 - sText_PkmnRaisedDef, // 78 - sText_PkmnCoveredByVeil, // 79 - sText_PkmnUsedSafeguard, // 80 - sText_PkmnSafeguardExpired, // 81 - sText_PkmnWentToSleep, // 82 - sText_PkmnSleptHealthy, // 83 - sText_PkmnWhippedWhirlwind, // 84 - sText_PkmnTookSunlight, // 85 - sText_PkmnLoweredHead, // 86 - sText_PkmnIsGlowing, // 87 - sText_PkmnFlewHigh, // 88 - sText_PkmnDugHole, // 89 - sText_PkmnSqueezedByBind, // 90 - sText_PkmnTrappedInVortex, // 91 - sText_PkmnWrappedBy, // 92 - sText_PkmnClamped, // 93 - sText_PkmnHurtBy, // 94 - sText_PkmnFreedFrom, // 95 - sText_PkmnCrashed, // 96 - gText_PkmnShroudedInMist, // 97 - sText_PkmnProtectedByMist, // 98 - gText_PkmnGettingPumped, // 99 - sText_PkmnHitWithRecoil, // 100 - sText_PkmnProtectedItself2, // 101 - sText_PkmnBuffetedBySandstorm, // 102 - sText_PkmnPeltedByHail, // 103 - sText_PkmnSeeded, // 104 - sText_PkmnEvadedAttack, // 105 - sText_PkmnSappedByLeechSeed, // 106 - sText_PkmnFastAsleep, // 107 - sText_PkmnWokeUp, // 108 - sText_PkmnUproarKeptAwake, // 109 - sText_PkmnWokeUpInUproar, // 110 - sText_PkmnCausedUproar, // 111 - sText_PkmnMakingUproar, // 112 - sText_PkmnCalmedDown, // 113 - sText_PkmnCantSleepInUproar, // 114 - sText_PkmnStockpiled, // 115 - sText_PkmnCantStockpile, // 116 - sText_PkmnCantSleepInUproar2, // 117 - sText_UproarKeptPkmnAwake, // 118 - sText_PkmnStayedAwakeUsing, // 119 - sText_PkmnStoringEnergy, // 120 - sText_PkmnUnleashedEnergy, // 121 - sText_PkmnFatigueConfusion, // 122 - sText_PkmnPickedUpItem, // 123 - sText_PkmnUnaffected, // 124 - sText_PkmnTransformedInto, // 125 - sText_PkmnMadeSubstitute, // 126 - sText_PkmnHasSubstitute, // 127 - sText_SubstituteDamaged, // 128 - sText_PkmnSubstituteFaded, // 129 - sText_PkmnMustRecharge, // 130 - sText_PkmnRageBuilding, // 131 - sText_PkmnMoveWasDisabled, // 132 - sText_PkmnMoveIsDisabled, // 133 - sText_PkmnMoveDisabledNoMore, // 134 - sText_PkmnGotEncore, // 135 - sText_PkmnEncoreEnded, // 136 - sText_PkmnTookAim, // 137 - sText_PkmnSketchedMove, // 138 - sText_PkmnTryingToTakeFoe, // 139 - sText_PkmnTookFoe, // 140 - sText_PkmnReducedPP, // 141 - sText_PkmnStoleItem, // 142 - sText_TargetCantEscapeNow, // 143 - sText_PkmnFellIntoNightmare, // 144 - sText_PkmnLockedInNightmare, // 145 - sText_PkmnLaidCurse, // 146 - sText_PkmnAfflictedByCurse, // 147 - sText_SpikesScattered, // 148 - sText_PkmnHurtBySpikes, // 149 - sText_PkmnIdentified, // 150 - sText_PkmnPerishCountFell, // 151 - sText_PkmnBracedItself, // 152 - sText_PkmnEnduredHit, // 153 - sText_MagnitudeStrength, // 154 - sText_PkmnCutHPMaxedAttack, // 155 - sText_PkmnCopiedStatChanges, // 156 - sText_PkmnGotFree, // 157 - sText_PkmnShedLeechSeed, // 158 - sText_PkmnBlewAwaySpikes, // 159 - sText_PkmnFledFromBattle, // 160 - sText_PkmnForesawAttack, // 161 - sText_PkmnTookAttack, // 162 - sText_PkmnAttack, // 163 - sText_PkmnCenterAttention, // 164 - sText_PkmnChargingPower, // 165 - sText_NaturePowerTurnedInto, // 166 - sText_PkmnStatusNormal, // 167 - sText_PkmnHasNoMovesLeft, // 168 - sText_PkmnSubjectedToTorment, // 169 - sText_PkmnCantUseMoveTorment, // 170 - sText_PkmnTighteningFocus, // 171 - sText_PkmnFellForTaunt, // 172 - sText_PkmnCantUseMoveTaunt, // 173 - sText_PkmnReadyToHelp, // 174 - sText_PkmnSwitchedItems, // 175 - sText_PkmnCopiedFoe, // 176 - sText_PkmnMadeWish, // 177 - sText_PkmnWishCameTrue, // 178 - sText_PkmnPlantedRoots, // 179 - sText_PkmnAbsorbedNutrients, // 180 - sText_PkmnAnchoredItself, // 181 - sText_PkmnWasMadeDrowsy, // 182 - sText_PkmnKnockedOff, // 183 - sText_PkmnSwappedAbilities, // 184 - sText_PkmnSealedOpponentMove, // 185 - sText_PkmnCantUseMoveSealed, // 186 - sText_PkmnWantsGrudge, // 187 - sText_PkmnLostPPGrudge, // 188 - sText_PkmnShroudedItself, // 189 - sText_PkmnMoveBounced, // 190 - sText_PkmnWaitsForTarget, // 191 - sText_PkmnSnatchedMove, // 192 - sText_PkmnMadeItRain, // 193 - sText_PkmnRaisedSpeed, // 194 - sText_PkmnProtectedBy, // 195 - sText_PkmnPreventsUsage, // 196 - sText_PkmnRestoredHPUsing, // 197 - sText_PkmnChangedTypeWith, // 198 - sText_PkmnPreventsParalysisWith, // 199 - sText_PkmnPreventsRomanceWith, // 200 - sText_PkmnPreventsPoisoningWith, // 201 - sText_PkmnPreventsConfusionWith, // 202 - sText_PkmnRaisedFirePowerWith, // 203 - sText_PkmnAnchorsItselfWith, // 204 - sText_PkmnCutsAttackWith, // 205 - sText_PkmnPreventsStatLossWith, // 206 - sText_PkmnHurtsWith, // 207 - sText_PkmnTraced, // 208 - sText_StatSharply, // 209 - gText_StatRose, // 210 - sText_StatHarshly, // 211 - sText_StatFell, // 212 - sText_PkmnsStatChanged, // 213 - gText_PkmnsStatChanged2, // 214 - sText_PkmnsStatChanged3, // 215 - sText_PkmnsStatChanged4, // 216 - sText_CriticalHit, // 217 - sText_OneHitKO, // 218 - sText_123Poof, // 219 - sText_AndEllipsis, // 220 - sText_NotVeryEffective, // 221 - sText_SuperEffective, // 222 - sText_GotAwaySafely, // 223 - sText_WildPkmnFled, // 224 - sText_NoRunningFromTrainers, // 225 - sText_CantEscape, // 226 - sText_DontLeaveBirch, // 227 - sText_ButNothingHappened, // 228 - sText_ButItFailed, // 229 - sText_ItHurtConfusion, // 230 - sText_MirrorMoveFailed, // 231 - sText_StartedToRain, // 232 - sText_DownpourStarted, // 233 - sText_RainContinues, // 234 - sText_DownpourContinues, // 235 - sText_RainStopped, // 236 - sText_SandstormBrewed, // 237 - sText_SandstormRages, // 238 - sText_SandstormSubsided, // 239 - sText_SunlightGotBright, // 240 - sText_SunlightStrong, // 241 - sText_SunlightFaded, // 242 - sText_StartedHail, // 243 - sText_HailContinues, // 244 - sText_HailStopped, // 245 - sText_FailedToSpitUp, // 246 - sText_FailedToSwallow, // 247 - sText_WindBecameHeatWave, // 248 - sText_StatChangesGone, // 249 - sText_CoinsScattered, // 250 - sText_TooWeakForSubstitute, // 251 - sText_SharedPain, // 252 - sText_BellChimed, // 253 - sText_FaintInThree, // 254 - sText_NoPPLeft, // 255 - sText_ButNoPPLeft, // 256 - sText_PlayerUsedItem, // 257 - sText_WallyUsedItem, // 258 - sText_TrainerBlockedBall, // 259 - sText_DontBeAThief, // 260 - sText_ItDodgedBall, // 261 - sText_YouMissedPkmn, // 262 - sText_PkmnBrokeFree, // 263 - sText_ItAppearedCaught, // 264 - sText_AarghAlmostHadIt, // 265 - sText_ShootSoClose, // 266 - sText_GotchaPkmnCaught, // 267 - sText_GotchaPkmnCaught2, // 268 - sText_GiveNicknameCaptured, // 269 - sText_PkmnSentToPC, // 270 - sText_PkmnDataAddedToDex, // 271 - sText_ItIsRaining, // 272 - sText_SandstormIsRaging, // 273 - sText_CantEscape2, // 274 - sText_PkmnIgnoresAsleep, // 275 - sText_PkmnIgnoredOrders, // 276 - sText_PkmnBeganToNap, // 277 - sText_PkmnLoafing, // 278 - sText_PkmnWontObey, // 279 - sText_PkmnTurnedAway, // 280 - sText_PkmnPretendNotNotice, // 281 - sText_EnemyAboutToSwitchPkmn, // 282 - sText_CreptCloser, // 283 - sText_CantGetCloser, // 284 - sText_PkmnWatchingCarefully, // 285 - sText_PkmnCuriousAboutX, // 286 - sText_PkmnEnthralledByX, // 287 - sText_PkmnIgnoredX, // 288 - sText_ThrewPokeblockAtPkmn, // 289 - sText_OutOfSafariBalls, // 290 - sText_PkmnsItemCuredParalysis, // 291 - sText_PkmnsItemCuredPoison, // 292 - sText_PkmnsItemHealedBurn, // 293 - sText_PkmnsItemDefrostedIt, // 294 - sText_PkmnsItemWokeIt, // 295 - sText_PkmnsItemSnappedOut, // 296 - sText_PkmnsItemCuredProblem, // 297 - sText_PkmnsItemRestoredHealth, // 298 - sText_PkmnsItemRestoredPP, // 299 - sText_PkmnsItemRestoredStatus, // 300 - sText_PkmnsItemRestoredHPALittle, // 301 - sText_ItemAllowsOnlyYMove, // 302 - sText_PkmnHungOnWithX, // 303 - gText_EmptyString3, // 304 - sText_PkmnsXPreventsBurns, // 305 - sText_PkmnsXBlocksY, // 306 - sText_PkmnsXRestoredHPALittle2, // 307 - sText_PkmnsXWhippedUpSandstorm, // 308 - sText_PkmnsXPreventsYLoss, // 309 - sText_PkmnsXInfatuatedY, // 310 - sText_PkmnsXMadeYIneffective, // 311 - sText_PkmnsXCuredYProblem, // 312 - sText_ItSuckedLiquidOoze, // 313 - sText_PkmnTransformed, // 314 - sText_ElectricityWeakened, // 315 - sText_FireWeakened, // 316 - sText_PkmnHidUnderwater, // 317 - sText_PkmnSprangUp, // 318 - sText_HMMovesCantBeForgotten, // 319 - sText_XFoundOneY, // 320 - sText_PlayerDefeatedLinkTrainerTrainer1, // 321 - sText_SoothingAroma, // 322 - sText_ItemsCantBeUsedNow, // 323 - sText_ForXCommaYZ, // 324 - sText_UsingXTheYOfZN, // 325 - sText_PkmnUsedXToGetPumped, // 326 - sText_PkmnsXMadeYUseless, // 327 - sText_PkmnTrappedBySandTomb, // 328 - sText_EmptyString4, // 329 - sText_ABoosted, // 330 - sText_PkmnsXIntensifiedSun, // 331 - sText_PkmnMakesGroundMiss, // 332 - sText_YouThrowABallNowRight, // 333 - sText_PkmnsXTookAttack, // 334 - sText_PkmnChoseXAsDestiny, // 335 - sText_PkmnLostFocus, // 336 - sText_UseNextPkmn, // 337 - sText_PkmnFledUsingIts, // 338 - sText_PkmnFledUsing, // 339 - sText_PkmnWasDraggedOut, // 340 - sText_PreventedFromWorking, // 341 - sText_PkmnsItemNormalizedStatus, // 342 - sText_Trainer1UsedItem, // 343 - sText_BoxIsFull, // 344 - sText_PkmnAvoidedAttack, // 345 - sText_PkmnsXMadeItIneffective, // 346 - sText_PkmnsXPreventsFlinching, // 347 - sText_PkmnAlreadyHasBurn, // 348 - sText_StatsWontDecrease2, // 349 - sText_PkmnsXBlocksY2, // 350 - sText_PkmnsXWoreOff, // 351 - sText_PkmnRaisedDefALittle, // 352 - sText_PkmnRaisedSpDefALittle, // 353 - sText_TheWallShattered, // 354 - sText_PkmnsXPreventsYsZ, // 355 - sText_PkmnsXCuredItsYProblem, // 356 - sText_AttackerCantEscape, // 357 - sText_PkmnObtainedX, // 358 - sText_PkmnObtainedX2, // 359 - sText_PkmnObtainedXYObtainedZ, // 360 - sText_ButNoEffect, // 361 - sText_PkmnsXHadNoEffectOnY, // 362 - sText_TwoInGameTrainersDefeated, // 363 - sText_Trainer2LoseText, // 364 - sText_PkmnIncapableOfPower, // 365 - sText_GlintAppearsInEye, // 366 - sText_PkmnGettingIntoPosition, // 367 - sText_PkmnBeganGrowlingDeeply, // 368 - sText_PkmnEagerForMore, // 369 - sText_DefeatedOpponentByReferee, // 370 - sText_LostToOpponentByReferee, // 371 - sText_TiedOpponentByReferee, // 372 - sText_QuestionForfeitMatch, // 373 - sText_ForfeitedMatch, // 374 - gText_PkmnTransferredSomeonesPC, // 375 - gText_PkmnTransferredLanettesPC, // 376 - gText_PkmnBoxSomeonesPCFull, // 377 - gText_PkmnBoxLanettesPCFull, // 378 - sText_Trainer1WinText, // 379 - sText_Trainer2WinText, // 380 + [STRINGID_TRAINER1LOSETEXT - 12] = sText_Trainer1LoseText, + [STRINGID_PKMNGAINEDEXP - 12] = sText_PkmnGainedEXP, + [STRINGID_PKMNGREWTOLV - 12] = sText_PkmnGrewToLv, + [STRINGID_PKMNLEARNEDMOVE - 12] = sText_PkmnLearnedMove, + [STRINGID_TRYTOLEARNMOVE1 - 12] = sText_TryToLearnMove1, + [STRINGID_TRYTOLEARNMOVE2 - 12] = sText_TryToLearnMove2, + [STRINGID_TRYTOLEARNMOVE3 - 12] = sText_TryToLearnMove3, + [STRINGID_PKMNFORGOTMOVE - 12] = sText_PkmnForgotMove, + [STRINGID_STOPLEARNINGMOVE - 12] = sText_StopLearningMove, + [STRINGID_DIDNOTLEARNMOVE - 12] = sText_DidNotLearnMove, + [STRINGID_PKMNLEARNEDMOVE2 - 12] = sText_PkmnLearnedMove2, + [STRINGID_ATTACKMISSED - 12] = sText_AttackMissed, + [STRINGID_PKMNPROTECTEDITSELF - 12] = sText_PkmnProtectedItself, + [STRINGID_STATSWONTINCREASE2 - 12] = sText_StatsWontIncrease2, + [STRINGID_AVOIDEDDAMAGE - 12] = sText_AvoidedDamage, + [STRINGID_ITDOESNTAFFECT - 12] = sText_ItDoesntAffect, + [STRINGID_ATTACKERFAINTED - 12] = sText_AttackerFainted, + [STRINGID_TARGETFAINTED - 12] = sText_TargetFainted, + [STRINGID_PLAYERGOTMONEY - 12] = sText_PlayerGotMoney, + [STRINGID_PLAYERWHITEOUT - 12] = sText_PlayerWhiteout, + [STRINGID_PLAYERWHITEOUT2 - 12] = sText_PlayerWhiteout2, + [STRINGID_PREVENTSESCAPE - 12] = sText_PreventsEscape, + [STRINGID_HITXTIMES - 12] = sText_HitXTimes, + [STRINGID_PKMNFELLASLEEP - 12] = sText_PkmnFellAsleep, + [STRINGID_PKMNMADESLEEP - 12] = sText_PkmnMadeSleep, + [STRINGID_PKMNALREADYASLEEP - 12] = sText_PkmnAlreadyAsleep, + [STRINGID_PKMNALREADYASLEEP2 - 12] = sText_PkmnAlreadyAsleep2, + [STRINGID_PKMNWASNTAFFECTED - 12] = sText_PkmnWasntAffected, + [STRINGID_PKMNWASPOISONED - 12] = sText_PkmnWasPoisoned, + [STRINGID_PKMNPOISONEDBY - 12] = sText_PkmnPoisonedBy, + [STRINGID_PKMNHURTBYPOISON - 12] = sText_PkmnHurtByPoison, + [STRINGID_PKMNALREADYPOISONED - 12] = sText_PkmnAlreadyPoisoned, + [STRINGID_PKMNBADLYPOISONED - 12] = sText_PkmnBadlyPoisoned, + [STRINGID_PKMNENERGYDRAINED - 12] = sText_PkmnEnergyDrained, + [STRINGID_PKMNWASBURNED - 12] = sText_PkmnWasBurned, + [STRINGID_PKMNBURNEDBY - 12] = sText_PkmnBurnedBy, + [STRINGID_PKMNHURTBYBURN - 12] = sText_PkmnHurtByBurn, + [STRINGID_PKMNWASFROZEN - 12] = sText_PkmnWasFrozen, + [STRINGID_PKMNFROZENBY - 12] = sText_PkmnFrozenBy, + [STRINGID_PKMNISFROZEN - 12] = sText_PkmnIsFrozen, + [STRINGID_PKMNWASDEFROSTED - 12] = sText_PkmnWasDefrosted, + [STRINGID_PKMNWASDEFROSTED2 - 12] = sText_PkmnWasDefrosted2, + [STRINGID_PKMNWASDEFROSTEDBY - 12] = sText_PkmnWasDefrostedBy, + [STRINGID_PKMNWASPARALYZED - 12] = sText_PkmnWasParalyzed, + [STRINGID_PKMNWASPARALYZEDBY - 12] = sText_PkmnWasParalyzedBy, + [STRINGID_PKMNISPARALYZED - 12] = sText_PkmnIsParalyzed, + [STRINGID_PKMNISALREADYPARALYZED - 12] = sText_PkmnIsAlreadyParalyzed, + [STRINGID_PKMNHEALEDPARALYSIS - 12] = sText_PkmnHealedParalysis, + [STRINGID_PKMNDREAMEATEN - 12] = sText_PkmnDreamEaten, + [STRINGID_STATSWONTINCREASE - 12] = sText_StatsWontIncrease, + [STRINGID_STATSWONTDECREASE - 12] = sText_StatsWontDecrease, + [STRINGID_TEAMSTOPPEDWORKING - 12] = sText_TeamStoppedWorking, + [STRINGID_FOESTOPPEDWORKING - 12] = sText_FoeStoppedWorking, + [STRINGID_PKMNISCONFUSED - 12] = sText_PkmnIsConfused, + [STRINGID_PKMNHEALEDCONFUSION - 12] = sText_PkmnHealedConfusion, + [STRINGID_PKMNWASCONFUSED - 12] = sText_PkmnWasConfused, + [STRINGID_PKMNALREADYCONFUSED - 12] = sText_PkmnAlreadyConfused, + [STRINGID_PKMNFELLINLOVE - 12] = sText_PkmnFellInLove, + [STRINGID_PKMNINLOVE - 12] = sText_PkmnInLove, + [STRINGID_PKMNIMMOBILIZEDBYLOVE - 12] = sText_PkmnImmobilizedByLove, + [STRINGID_PKMNBLOWNAWAY - 12] = sText_PkmnBlownAway, + [STRINGID_PKMNCHANGEDTYPE - 12] = sText_PkmnChangedType, + [STRINGID_PKMNFLINCHED - 12] = sText_PkmnFlinched, + [STRINGID_PKMNREGAINEDHEALTH - 12] = sText_PkmnRegainedHealth, + [STRINGID_PKMNHPFULL - 12] = sText_PkmnHPFull, + [STRINGID_PKMNRAISEDSPDEF - 12] = sText_PkmnRaisedSpDef, + [STRINGID_PKMNRAISEDDEF - 12] = sText_PkmnRaisedDef, + [STRINGID_PKMNCOVEREDBYVEIL - 12] = sText_PkmnCoveredByVeil, + [STRINGID_PKMNUSEDSAFEGUARD - 12] = sText_PkmnUsedSafeguard, + [STRINGID_PKMNSAFEGUARDEXPIRED - 12] = sText_PkmnSafeguardExpired, + [STRINGID_PKMNWENTTOSLEEP - 12] = sText_PkmnWentToSleep, + [STRINGID_PKMNSLEPTHEALTHY - 12] = sText_PkmnSleptHealthy, + [STRINGID_PKMNWHIPPEDWHIRLWIND - 12] = sText_PkmnWhippedWhirlwind, + [STRINGID_PKMNTOOKSUNLIGHT - 12] = sText_PkmnTookSunlight, + [STRINGID_PKMNLOWEREDHEAD - 12] = sText_PkmnLoweredHead, + [STRINGID_PKMNISGLOWING - 12] = sText_PkmnIsGlowing, + [STRINGID_PKMNFLEWHIGH - 12] = sText_PkmnFlewHigh, + [STRINGID_PKMNDUGHOLE - 12] = sText_PkmnDugHole, + [STRINGID_PKMNSQUEEZEDBYBIND - 12] = sText_PkmnSqueezedByBind, + [STRINGID_PKMNTRAPPEDINVORTEX - 12] = sText_PkmnTrappedInVortex, + [STRINGID_PKMNWRAPPEDBY - 12] = sText_PkmnWrappedBy, + [STRINGID_PKMNCLAMPED - 12] = sText_PkmnClamped, + [STRINGID_PKMNHURTBY - 12] = sText_PkmnHurtBy, + [STRINGID_PKMNFREEDFROM - 12] = sText_PkmnFreedFrom, + [STRINGID_PKMNCRASHED - 12] = sText_PkmnCrashed, + [STRINGID_PKMNSHROUDEDINMIST - 12] = gText_PkmnShroudedInMist, + [STRINGID_PKMNPROTECTEDBYMIST - 12] = sText_PkmnProtectedByMist, + [STRINGID_PKMNGETTINGPUMPED - 12] = gText_PkmnGettingPumped, + [STRINGID_PKMNHITWITHRECOIL - 12] = sText_PkmnHitWithRecoil, + [STRINGID_PKMNPROTECTEDITSELF2 - 12] = sText_PkmnProtectedItself2, + [STRINGID_PKMNBUFFETEDBYSANDSTORM - 12] = sText_PkmnBuffetedBySandstorm, + [STRINGID_PKMNPELTEDBYHAIL - 12] = sText_PkmnPeltedByHail, + [STRINGID_PKMNSEEDED - 12] = sText_PkmnSeeded, + [STRINGID_PKMNEVADEDATTACK - 12] = sText_PkmnEvadedAttack, + [STRINGID_PKMNSAPPEDBYLEECHSEED - 12] = sText_PkmnSappedByLeechSeed, + [STRINGID_PKMNFASTASLEEP - 12] = sText_PkmnFastAsleep, + [STRINGID_PKMNWOKEUP - 12] = sText_PkmnWokeUp, + [STRINGID_PKMNUPROARKEPTAWAKE - 12] = sText_PkmnUproarKeptAwake, + [STRINGID_PKMNWOKEUPINUPROAR - 12] = sText_PkmnWokeUpInUproar, + [STRINGID_PKMNCAUSEDUPROAR - 12] = sText_PkmnCausedUproar, + [STRINGID_PKMNMAKINGUPROAR - 12] = sText_PkmnMakingUproar, + [STRINGID_PKMNCALMEDDOWN - 12] = sText_PkmnCalmedDown, + [STRINGID_PKMNCANTSLEEPINUPROAR - 12] = sText_PkmnCantSleepInUproar, + [STRINGID_PKMNSTOCKPILED - 12] = sText_PkmnStockpiled, + [STRINGID_PKMNCANTSTOCKPILE - 12] = sText_PkmnCantStockpile, + [STRINGID_PKMNCANTSLEEPINUPROAR2 - 12] = sText_PkmnCantSleepInUproar2, + [STRINGID_UPROARKEPTPKMNAWAKE - 12] = sText_UproarKeptPkmnAwake, + [STRINGID_PKMNSTAYEDAWAKEUSING - 12] = sText_PkmnStayedAwakeUsing, + [STRINGID_PKMNSTORINGENERGY - 12] = sText_PkmnStoringEnergy, + [STRINGID_PKMNUNLEASHEDENERGY - 12] = sText_PkmnUnleashedEnergy, + [STRINGID_PKMNFATIGUECONFUSION - 12] = sText_PkmnFatigueConfusion, + [STRINGID_PKMNPICKEDUPITEM - 12] = sText_PkmnPickedUpItem, + [STRINGID_PKMNUNAFFECTED - 12] = sText_PkmnUnaffected, + [STRINGID_PKMNTRANSFORMEDINTO - 12] = sText_PkmnTransformedInto, + [STRINGID_PKMNMADESUBSTITUTE - 12] = sText_PkmnMadeSubstitute, + [STRINGID_PKMNHASSUBSTITUTE - 12] = sText_PkmnHasSubstitute, + [STRINGID_SUBSTITUTEDAMAGED - 12] = sText_SubstituteDamaged, + [STRINGID_PKMNSUBSTITUTEFADED - 12] = sText_PkmnSubstituteFaded, + [STRINGID_PKMNMUSTRECHARGE - 12] = sText_PkmnMustRecharge, + [STRINGID_PKMNRAGEBUILDING - 12] = sText_PkmnRageBuilding, + [STRINGID_PKMNMOVEWASDISABLED - 12] = sText_PkmnMoveWasDisabled, + [STRINGID_PKMNMOVEISDISABLED - 12] = sText_PkmnMoveIsDisabled, + [STRINGID_PKMNMOVEDISABLEDNOMORE - 12] = sText_PkmnMoveDisabledNoMore, + [STRINGID_PKMNGOTENCORE - 12] = sText_PkmnGotEncore, + [STRINGID_PKMNENCOREENDED - 12] = sText_PkmnEncoreEnded, + [STRINGID_PKMNTOOKAIM - 12] = sText_PkmnTookAim, + [STRINGID_PKMNSKETCHEDMOVE - 12] = sText_PkmnSketchedMove, + [STRINGID_PKMNTRYINGTOTAKEFOE - 12] = sText_PkmnTryingToTakeFoe, + [STRINGID_PKMNTOOKFOE - 12] = sText_PkmnTookFoe, + [STRINGID_PKMNREDUCEDPP - 12] = sText_PkmnReducedPP, + [STRINGID_PKMNSTOLEITEM - 12] = sText_PkmnStoleItem, + [STRINGID_TARGETCANTESCAPENOW - 12] = sText_TargetCantEscapeNow, + [STRINGID_PKMNFELLINTONIGHTMARE - 12] = sText_PkmnFellIntoNightmare, + [STRINGID_PKMNLOCKEDINNIGHTMARE - 12] = sText_PkmnLockedInNightmare, + [STRINGID_PKMNLAIDCURSE - 12] = sText_PkmnLaidCurse, + [STRINGID_PKMNAFFLICTEDBYCURSE - 12] = sText_PkmnAfflictedByCurse, + [STRINGID_SPIKESSCATTERED - 12] = sText_SpikesScattered, + [STRINGID_PKMNHURTBYSPIKES - 12] = sText_PkmnHurtBySpikes, + [STRINGID_PKMNIDENTIFIED - 12] = sText_PkmnIdentified, + [STRINGID_PKMNPERISHCOUNTFELL - 12] = sText_PkmnPerishCountFell, + [STRINGID_PKMNBRACEDITSELF - 12] = sText_PkmnBracedItself, + [STRINGID_PKMNENDUREDHIT - 12] = sText_PkmnEnduredHit, + [STRINGID_MAGNITUDESTRENGTH - 12] = sText_MagnitudeStrength, + [STRINGID_PKMNCUTHPMAXEDATTACK - 12] = sText_PkmnCutHPMaxedAttack, + [STRINGID_PKMNCOPIEDSTATCHANGES - 12] = sText_PkmnCopiedStatChanges, + [STRINGID_PKMNGOTFREE - 12] = sText_PkmnGotFree, + [STRINGID_PKMNSHEDLEECHSEED - 12] = sText_PkmnShedLeechSeed, + [STRINGID_PKMNBLEWAWAYSPIKES - 12] = sText_PkmnBlewAwaySpikes, + [STRINGID_PKMNFLEDFROMBATTLE - 12] = sText_PkmnFledFromBattle, + [STRINGID_PKMNFORESAWATTACK - 12] = sText_PkmnForesawAttack, + [STRINGID_PKMNTOOKATTACK - 12] = sText_PkmnTookAttack, + [STRINGID_PKMNATTACK - 12] = sText_PkmnAttack, + [STRINGID_PKMNCENTERATTENTION - 12] = sText_PkmnCenterAttention, + [STRINGID_PKMNCHARGINGPOWER - 12] = sText_PkmnChargingPower, + [STRINGID_NATUREPOWERTURNEDINTO - 12] = sText_NaturePowerTurnedInto, + [STRINGID_PKMNSTATUSNORMAL - 12] = sText_PkmnStatusNormal, + [STRINGID_PKMNHASNOMOVESLEFT - 12] = sText_PkmnHasNoMovesLeft, + [STRINGID_PKMNSUBJECTEDTOTORMENT - 12] = sText_PkmnSubjectedToTorment, + [STRINGID_PKMNCANTUSEMOVETORMENT - 12] = sText_PkmnCantUseMoveTorment, + [STRINGID_PKMNTIGHTENINGFOCUS - 12] = sText_PkmnTighteningFocus, + [STRINGID_PKMNFELLFORTAUNT - 12] = sText_PkmnFellForTaunt, + [STRINGID_PKMNCANTUSEMOVETAUNT - 12] = sText_PkmnCantUseMoveTaunt, + [STRINGID_PKMNREADYTOHELP - 12] = sText_PkmnReadyToHelp, + [STRINGID_PKMNSWITCHEDITEMS - 12] = sText_PkmnSwitchedItems, + [STRINGID_PKMNCOPIEDFOE - 12] = sText_PkmnCopiedFoe, + [STRINGID_PKMNMADEWISH - 12] = sText_PkmnMadeWish, + [STRINGID_PKMNWISHCAMETRUE - 12] = sText_PkmnWishCameTrue, + [STRINGID_PKMNPLANTEDROOTS - 12] = sText_PkmnPlantedRoots, + [STRINGID_PKMNABSORBEDNUTRIENTS - 12] = sText_PkmnAbsorbedNutrients, + [STRINGID_PKMNANCHOREDITSELF - 12] = sText_PkmnAnchoredItself, + [STRINGID_PKMNWASMADEDROWSY - 12] = sText_PkmnWasMadeDrowsy, + [STRINGID_PKMNKNOCKEDOFF - 12] = sText_PkmnKnockedOff, + [STRINGID_PKMNSWAPPEDABILITIES - 12] = sText_PkmnSwappedAbilities, + [STRINGID_PKMNSEALEDOPPONENTMOVE - 12] = sText_PkmnSealedOpponentMove, + [STRINGID_PKMNCANTUSEMOVESEALED - 12] = sText_PkmnCantUseMoveSealed, + [STRINGID_PKMNWANTSGRUDGE - 12] = sText_PkmnWantsGrudge, + [STRINGID_PKMNLOSTPPGRUDGE - 12] = sText_PkmnLostPPGrudge, + [STRINGID_PKMNSHROUDEDITSELF - 12] = sText_PkmnShroudedItself, + [STRINGID_PKMNMOVEBOUNCED - 12] = sText_PkmnMoveBounced, + [STRINGID_PKMNWAITSFORTARGET - 12] = sText_PkmnWaitsForTarget, + [STRINGID_PKMNSNATCHEDMOVE - 12] = sText_PkmnSnatchedMove, + [STRINGID_PKMNMADEITRAIN - 12] = sText_PkmnMadeItRain, + [STRINGID_PKMNRAISEDSPEED - 12] = sText_PkmnRaisedSpeed, + [STRINGID_PKMNPROTECTEDBY - 12] = sText_PkmnProtectedBy, + [STRINGID_PKMNPREVENTSUSAGE - 12] = sText_PkmnPreventsUsage, + [STRINGID_PKMNRESTOREDHPUSING - 12] = sText_PkmnRestoredHPUsing, + [STRINGID_PKMNCHANGEDTYPEWITH - 12] = sText_PkmnChangedTypeWith, + [STRINGID_PKMNPREVENTSPARALYSISWITH - 12] = sText_PkmnPreventsParalysisWith, + [STRINGID_PKMNPREVENTSROMANCEWITH - 12] = sText_PkmnPreventsRomanceWith, + [STRINGID_PKMNPREVENTSPOISONINGWITH - 12] = sText_PkmnPreventsPoisoningWith, + [STRINGID_PKMNPREVENTSCONFUSIONWITH - 12] = sText_PkmnPreventsConfusionWith, + [STRINGID_PKMNRAISEDFIREPOWERWITH - 12] = sText_PkmnRaisedFirePowerWith, + [STRINGID_PKMNANCHORSITSELFWITH - 12] = sText_PkmnAnchorsItselfWith, + [STRINGID_PKMNCUTSATTACKWITH - 12] = sText_PkmnCutsAttackWith, + [STRINGID_PKMNPREVENTSSTATLOSSWITH - 12] = sText_PkmnPreventsStatLossWith, + [STRINGID_PKMNHURTSWITH - 12] = sText_PkmnHurtsWith, + [STRINGID_PKMNTRACED - 12] = sText_PkmnTraced, + [STRINGID_STATSHARPLY - 12] = sText_StatSharply, + [STRINGID_STATROSE - 12] = gText_StatRose, + [STRINGID_STATHARSHLY - 12] = sText_StatHarshly, + [STRINGID_STATFELL - 12] = sText_StatFell, + [STRINGID_PKMNSSTATCHANGED - 12] = sText_PkmnsStatChanged, + [STRINGID_PKMNSSTATCHANGED2 - 12] = gText_PkmnsStatChanged2, + [STRINGID_PKMNSSTATCHANGED3 - 12] = sText_PkmnsStatChanged3, + [STRINGID_PKMNSSTATCHANGED4 - 12] = sText_PkmnsStatChanged4, + [STRINGID_CRITICALHIT - 12] = sText_CriticalHit, + [STRINGID_ONEHITKO - 12] = sText_OneHitKO, + [STRINGID_123POOF - 12] = sText_123Poof, + [STRINGID_ANDELLIPSIS - 12] = sText_AndEllipsis, + [STRINGID_NOTVERYEFFECTIVE - 12] = sText_NotVeryEffective, + [STRINGID_SUPEREFFECTIVE - 12] = sText_SuperEffective, + [STRINGID_GOTAWAYSAFELY - 12] = sText_GotAwaySafely, + [STRINGID_WILDPKMNFLED - 12] = sText_WildPkmnFled, + [STRINGID_NORUNNINGFROMTRAINERS - 12] = sText_NoRunningFromTrainers, + [STRINGID_CANTESCAPE - 12] = sText_CantEscape, + [STRINGID_DONTLEAVEBIRCH - 12] = sText_DontLeaveBirch, + [STRINGID_BUTNOTHINGHAPPENED - 12] = sText_ButNothingHappened, + [STRINGID_BUTITFAILED - 12] = sText_ButItFailed, + [STRINGID_ITHURTCONFUSION - 12] = sText_ItHurtConfusion, + [STRINGID_MIRRORMOVEFAILED - 12] = sText_MirrorMoveFailed, + [STRINGID_STARTEDTORAIN - 12] = sText_StartedToRain, + [STRINGID_DOWNPOURSTARTED - 12] = sText_DownpourStarted, + [STRINGID_RAINCONTINUES - 12] = sText_RainContinues, + [STRINGID_DOWNPOURCONTINUES - 12] = sText_DownpourContinues, + [STRINGID_RAINSTOPPED - 12] = sText_RainStopped, + [STRINGID_SANDSTORMBREWED - 12] = sText_SandstormBrewed, + [STRINGID_SANDSTORMRAGES - 12] = sText_SandstormRages, + [STRINGID_SANDSTORMSUBSIDED - 12] = sText_SandstormSubsided, + [STRINGID_SUNLIGHTGOTBRIGHT - 12] = sText_SunlightGotBright, + [STRINGID_SUNLIGHTSTRONG - 12] = sText_SunlightStrong, + [STRINGID_SUNLIGHTFADED - 12] = sText_SunlightFaded, + [STRINGID_STARTEDHAIL - 12] = sText_StartedHail, + [STRINGID_HAILCONTINUES - 12] = sText_HailContinues, + [STRINGID_HAILSTOPPED - 12] = sText_HailStopped, + [STRINGID_FAILEDTOSPITUP - 12] = sText_FailedToSpitUp, + [STRINGID_FAILEDTOSWALLOW - 12] = sText_FailedToSwallow, + [STRINGID_WINDBECAMEHEATWAVE - 12] = sText_WindBecameHeatWave, + [STRINGID_STATCHANGESGONE - 12] = sText_StatChangesGone, + [STRINGID_COINSSCATTERED - 12] = sText_CoinsScattered, + [STRINGID_TOOWEAKFORSUBSTITUTE - 12] = sText_TooWeakForSubstitute, + [STRINGID_SHAREDPAIN - 12] = sText_SharedPain, + [STRINGID_BELLCHIMED - 12] = sText_BellChimed, + [STRINGID_FAINTINTHREE - 12] = sText_FaintInThree, + [STRINGID_NOPPLEFT - 12] = sText_NoPPLeft, + [STRINGID_BUTNOPPLEFT - 12] = sText_ButNoPPLeft, + [STRINGID_PLAYERUSEDITEM - 12] = sText_PlayerUsedItem, + [STRINGID_WALLYUSEDITEM - 12] = sText_WallyUsedItem, + [STRINGID_TRAINERBLOCKEDBALL - 12] = sText_TrainerBlockedBall, + [STRINGID_DONTBEATHIEF - 12] = sText_DontBeAThief, + [STRINGID_ITDODGEDBALL - 12] = sText_ItDodgedBall, + [STRINGID_YOUMISSEDPKMN - 12] = sText_YouMissedPkmn, + [STRINGID_PKMNBROKEFREE - 12] = sText_PkmnBrokeFree, + [STRINGID_ITAPPEAREDCAUGHT - 12] = sText_ItAppearedCaught, + [STRINGID_AARGHALMOSTHADIT - 12] = sText_AarghAlmostHadIt, + [STRINGID_SHOOTSOCLOSE - 12] = sText_ShootSoClose, + [STRINGID_GOTCHAPKMNCAUGHT - 12] = sText_GotchaPkmnCaught, + [STRINGID_GOTCHAPKMNCAUGHT2 - 12] = sText_GotchaPkmnCaught2, + [STRINGID_GIVENICKNAMECAPTURED - 12] = sText_GiveNicknameCaptured, + [STRINGID_PKMNSENTTOPC - 12] = sText_PkmnSentToPC, + [STRINGID_PKMNDATAADDEDTODEX - 12] = sText_PkmnDataAddedToDex, + [STRINGID_ITISRAINING - 12] = sText_ItIsRaining, + [STRINGID_SANDSTORMISRAGING - 12] = sText_SandstormIsRaging, + [STRINGID_CANTESCAPE2 - 12] = sText_CantEscape2, + [STRINGID_PKMNIGNORESASLEEP - 12] = sText_PkmnIgnoresAsleep, + [STRINGID_PKMNIGNOREDORDERS - 12] = sText_PkmnIgnoredOrders, + [STRINGID_PKMNBEGANTONAP - 12] = sText_PkmnBeganToNap, + [STRINGID_PKMNLOAFING - 12] = sText_PkmnLoafing, + [STRINGID_PKMNWONTOBEY - 12] = sText_PkmnWontObey, + [STRINGID_PKMNTURNEDAWAY - 12] = sText_PkmnTurnedAway, + [STRINGID_PKMNPRETENDNOTNOTICE - 12] = sText_PkmnPretendNotNotice, + [STRINGID_ENEMYABOUTTOSWITCHPKMN - 12] = sText_EnemyAboutToSwitchPkmn, + [STRINGID_CREPTCLOSER - 12] = sText_CreptCloser, + [STRINGID_CANTGETCLOSER - 12] = sText_CantGetCloser, + [STRINGID_PKMNWATCHINGCAREFULLY - 12] = sText_PkmnWatchingCarefully, + [STRINGID_PKMNCURIOUSABOUTX - 12] = sText_PkmnCuriousAboutX, + [STRINGID_PKMNENTHRALLEDBYX - 12] = sText_PkmnEnthralledByX, + [STRINGID_PKMNIGNOREDX - 12] = sText_PkmnIgnoredX, + [STRINGID_THREWPOKEBLOCKATPKMN - 12] = sText_ThrewPokeblockAtPkmn, + [STRINGID_OUTOFSAFARIBALLS - 12] = sText_OutOfSafariBalls, + [STRINGID_PKMNSITEMCUREDPARALYSIS - 12] = sText_PkmnsItemCuredParalysis, + [STRINGID_PKMNSITEMCUREDPOISON - 12] = sText_PkmnsItemCuredPoison, + [STRINGID_PKMNSITEMHEALEDBURN - 12] = sText_PkmnsItemHealedBurn, + [STRINGID_PKMNSITEMDEFROSTEDIT - 12] = sText_PkmnsItemDefrostedIt, + [STRINGID_PKMNSITEMWOKEIT - 12] = sText_PkmnsItemWokeIt, + [STRINGID_PKMNSITEMSNAPPEDOUT - 12] = sText_PkmnsItemSnappedOut, + [STRINGID_PKMNSITEMCUREDPROBLEM - 12] = sText_PkmnsItemCuredProblem, + [STRINGID_PKMNSITEMRESTOREDHEALTH - 12] = sText_PkmnsItemRestoredHealth, + [STRINGID_PKMNSITEMRESTOREDPP - 12] = sText_PkmnsItemRestoredPP, + [STRINGID_PKMNSITEMRESTOREDSTATUS - 12] = sText_PkmnsItemRestoredStatus, + [STRINGID_PKMNSITEMRESTOREDHPALITTLE - 12] = sText_PkmnsItemRestoredHPALittle, + [STRINGID_ITEMALLOWSONLYYMOVE - 12] = sText_ItemAllowsOnlyYMove, + [STRINGID_PKMNHUNGONWITHX - 12] = sText_PkmnHungOnWithX, + [STRINGID_EMPTYSTRING3 - 12] = gText_EmptyString3, + [STRINGID_PKMNSXPREVENTSBURNS - 12] = sText_PkmnsXPreventsBurns, + [STRINGID_PKMNSXBLOCKSY - 12] = sText_PkmnsXBlocksY, + [STRINGID_PKMNSXRESTOREDHPALITTLE2 - 12] = sText_PkmnsXRestoredHPALittle2, + [STRINGID_PKMNSXWHIPPEDUPSANDSTORM - 12] = sText_PkmnsXWhippedUpSandstorm, + [STRINGID_PKMNSXPREVENTSYLOSS - 12] = sText_PkmnsXPreventsYLoss, + [STRINGID_PKMNSXINFATUATEDY - 12] = sText_PkmnsXInfatuatedY, + [STRINGID_PKMNSXMADEYINEFFECTIVE - 12] = sText_PkmnsXMadeYIneffective, + [STRINGID_PKMNSXCUREDYPROBLEM - 12] = sText_PkmnsXCuredYProblem, + [STRINGID_ITSUCKEDLIQUIDOOZE - 12] = sText_ItSuckedLiquidOoze, + [STRINGID_PKMNTRANSFORMED - 12] = sText_PkmnTransformed, + [STRINGID_ELECTRICITYWEAKENED - 12] = sText_ElectricityWeakened, + [STRINGID_FIREWEAKENED - 12] = sText_FireWeakened, + [STRINGID_PKMNHIDUNDERWATER - 12] = sText_PkmnHidUnderwater, + [STRINGID_PKMNSPRANGUP - 12] = sText_PkmnSprangUp, + [STRINGID_HMMOVESCANTBEFORGOTTEN - 12] = sText_HMMovesCantBeForgotten, + [STRINGID_XFOUNDONEY - 12] = sText_XFoundOneY, + [STRINGID_PLAYERDEFEATEDTRAINER1 - 12] = sText_PlayerDefeatedLinkTrainerTrainer1, + [STRINGID_SOOTHINGAROMA - 12] = sText_SoothingAroma, + [STRINGID_ITEMSCANTBEUSEDNOW - 12] = sText_ItemsCantBeUsedNow, + [STRINGID_FORXCOMMAYZ - 12] = sText_ForXCommaYZ, + [STRINGID_USINGXTHEYOFZN - 12] = sText_UsingXTheYOfZN, + [STRINGID_PKMNUSEDXTOGETPUMPED - 12] = sText_PkmnUsedXToGetPumped, + [STRINGID_PKMNSXMADEYUSELESS - 12] = sText_PkmnsXMadeYUseless, + [STRINGID_PKMNTRAPPEDBYSANDTOMB - 12] = sText_PkmnTrappedBySandTomb, + [STRINGID_EMPTYSTRING4 - 12] = sText_EmptyString4, + [STRINGID_ABOOSTED - 12] = sText_ABoosted, + [STRINGID_PKMNSXINTENSIFIEDSUN - 12] = sText_PkmnsXIntensifiedSun, + [STRINGID_PKMNMAKESGROUNDMISS - 12] = sText_PkmnMakesGroundMiss, + [STRINGID_YOUTHROWABALLNOWRIGHT - 12] = sText_YouThrowABallNowRight, + [STRINGID_PKMNSXTOOKATTACK - 12] = sText_PkmnsXTookAttack, + [STRINGID_PKMNCHOSEXASDESTINY - 12] = sText_PkmnChoseXAsDestiny, + [STRINGID_PKMNLOSTFOCUS - 12] = sText_PkmnLostFocus, + [STRINGID_USENEXTPKMN - 12] = sText_UseNextPkmn, + [STRINGID_PKMNFLEDUSINGITS - 12] = sText_PkmnFledUsingIts, + [STRINGID_PKMNFLEDUSING - 12] = sText_PkmnFledUsing, + [STRINGID_PKMNWASDRAGGEDOUT - 12] = sText_PkmnWasDraggedOut, + [STRINGID_PREVENTEDFROMWORKING - 12] = sText_PreventedFromWorking, + [STRINGID_PKMNSITEMNORMALIZEDSTATUS - 12] = sText_PkmnsItemNormalizedStatus, + [STRINGID_TRAINER1USEDITEM - 12] = sText_Trainer1UsedItem, + [STRINGID_BOXISFULL - 12] = sText_BoxIsFull, + [STRINGID_PKMNAVOIDEDATTACK - 12] = sText_PkmnAvoidedAttack, + [STRINGID_PKMNSXMADEITINEFFECTIVE - 12] = sText_PkmnsXMadeItIneffective, + [STRINGID_PKMNSXPREVENTSFLINCHING - 12] = sText_PkmnsXPreventsFlinching, + [STRINGID_PKMNALREADYHASBURN - 12] = sText_PkmnAlreadyHasBurn, + [STRINGID_STATSWONTDECREASE2 - 12] = sText_StatsWontDecrease2, + [STRINGID_PKMNSXBLOCKSY2 - 12] = sText_PkmnsXBlocksY2, + [STRINGID_PKMNSXWOREOFF - 12] = sText_PkmnsXWoreOff, + [STRINGID_PKMNRAISEDDEFALITTLE - 12] = sText_PkmnRaisedDefALittle, + [STRINGID_PKMNRAISEDSPDEFALITTLE - 12] = sText_PkmnRaisedSpDefALittle, + [STRINGID_THEWALLSHATTERED - 12] = sText_TheWallShattered, + [STRINGID_PKMNSXPREVENTSYSZ - 12] = sText_PkmnsXPreventsYsZ, + [STRINGID_PKMNSXCUREDITSYPROBLEM - 12] = sText_PkmnsXCuredItsYProblem, + [STRINGID_ATTACKERCANTESCAPE - 12] = sText_AttackerCantEscape, + [STRINGID_PKMNOBTAINEDX - 12] = sText_PkmnObtainedX, + [STRINGID_PKMNOBTAINEDX2 - 12] = sText_PkmnObtainedX2, + [STRINGID_PKMNOBTAINEDXYOBTAINEDZ - 12] = sText_PkmnObtainedXYObtainedZ, + [STRINGID_BUTNOEFFECT - 12] = sText_ButNoEffect, + [STRINGID_PKMNSXHADNOEFFECTONY - 12] = sText_PkmnsXHadNoEffectOnY, + [STRINGID_TWOENEMIESDEFEATED - 12] = sText_TwoInGameTrainersDefeated, + [STRINGID_TRAINER2LOSETEXT - 12] = sText_Trainer2LoseText, + [STRINGID_PKMNINCAPABLEOFPOWER - 12] = sText_PkmnIncapableOfPower, + [STRINGID_GLINTAPPEARSINEYE - 12] = sText_GlintAppearsInEye, + [STRINGID_PKMNGETTINGINTOPOSITION - 12] = sText_PkmnGettingIntoPosition, + [STRINGID_PKMNBEGANGROWLINGDEEPLY - 12] = sText_PkmnBeganGrowlingDeeply, + [STRINGID_PKMNEAGERFORMORE - 12] = sText_PkmnEagerForMore, + [STRINGID_DEFEATEDOPPONENTBYREFEREE - 12] = sText_DefeatedOpponentByReferee, + [STRINGID_LOSTTOOPPONENTBYREFEREE - 12] = sText_LostToOpponentByReferee, + [STRINGID_TIEDOPPONENTBYREFEREE - 12] = sText_TiedOpponentByReferee, + [STRINGID_QUESTIONFORFEITMATCH - 12] = sText_QuestionForfeitMatch, + [STRINGID_FORFEITEDMATCH - 12] = sText_ForfeitedMatch, + [STRINGID_PKMNTRANSFERREDSOMEONESPC - 12] = gText_PkmnTransferredSomeonesPC, + [STRINGID_PKMNTRANSFERREDLANETTESPC - 12] = gText_PkmnTransferredLanettesPC, + [STRINGID_PKMNBOXSOMEONESPCFULL - 12] = gText_PkmnBoxSomeonesPCFull, + [STRINGID_PKMNBOXLANETTESPCFULL - 12] = gText_PkmnBoxLanettesPCFull, + [STRINGID_TRAINER1WINTEXT - 12] = sText_Trainer1WinText, + [STRINGID_TRAINER2WINTEXT - 12] = sText_Trainer2WinText, }; const u16 gMissStringIds[] = @@ -1215,7 +1215,7 @@ const u8 gText_Win[] = _("{HIGHLIGHT TRANSPARENT}Win"); const u8 gText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Loss"); const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Draw"); static const u8 sText_SpaceIs[] = _(" is"); -static const u8 sText_ApostropheS[] = _("’s"); +static const u8 sText_ApostropheS[] = _("'s"); static const u8 sATypeMove_Table[][17] = { @@ -1272,7 +1272,7 @@ static const u8 sText_InGamePartnerSentOutZGoN[] = _("{B_PARTNER_CLASS} {B_PARTN static const u8 sText_TwoInGameTrainersDefeated[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwere defeated!\p"); static const u8 sText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}"); static const u8 sText_PkmnIncapableOfPower[] = _("{B_ATK_NAME_WITH_PREFIX} appears incapable\nof using its power!"); -static const u8 sText_GlintAppearsInEye[] = _("A glint appears in\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s eyes!"); +static const u8 sText_GlintAppearsInEye[] = _("A glint appears in\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s eyes!"); static const u8 sText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is getting into\nposition!"); static const u8 sText_PkmnBeganGrowlingDeeply[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} began growling deeply!"); static const u8 sText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is eager for more!"); @@ -1284,29 +1284,29 @@ const u16 gStringIds_85CCF0A[] = }; static const u8 sText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); -static const u8 sText_RefThatsIt[] = _("REFEREE: That’s it! We will now go to\njudging to determine the winner!"); +static const u8 sText_RefThatsIt[] = _("REFEREE: That's it! We will now go to\njudging to determine the winner!"); static const u8 sText_RefJudgeMind[] = _("REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p"); static const u8 sText_RefJudgeSkill[] = _("REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p"); static const u8 sText_RefJudgeBody[] = _("REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p"); -static const u8 sText_RefJudgement1[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}’s {B_PLAYER_MON1_NAME}!\p"); -static const u8 sText_RefJudgement2[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}’s {B_OPPONENT_MON1_NAME}!\p"); +static const u8 sText_RefJudgement1[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}'s {B_PLAYER_MON1_NAME}!\p"); +static const u8 sText_RefJudgement2[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}'s {B_OPPONENT_MON1_NAME}!\p"); static const u8 sText_RefJudgement3[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p"); -static const u8 sText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); -static const u8 sText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); -static const u8 sText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); +static const u8 sText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); +static const u8 sText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); +static const u8 sText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); static const u8 sText_RefCommenceBattle[] = _("REFEREE: {B_PLAYER_MON1_NAME} VS {B_OPPONENT_MON1_NAME}!\nCommence battling!"); const u8 * const gRefereeStringsTable[] = { sText_RefIfNothingIsDecided, - sText_RefThatsIt, - sText_RefJudgeMind, - sText_RefJudgeSkill, - sText_RefJudgeBody, - sText_RefJudgement1, - sText_RefJudgement2, - sText_RefJudgement3, - sText_RefCommenceBattle, + sText_RefThatsIt, + sText_RefJudgeMind, + sText_RefJudgeSkill, + sText_RefJudgeBody, + sText_RefJudgement1, + sText_RefJudgement2, + sText_RefJudgement3, + sText_RefCommenceBattle, }; static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the match\nand quit now?"); @@ -1317,7 +1317,7 @@ static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE 0x0011}{B_TRAINER1_CLASS} {B static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); -const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}’s battle result was recorded\non the FRONTIER PASS."); +const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}'s battle result was recorded\non the FRONTIER PASS."); static const u8 sText_LinkTrainerWantsToBattlePause[] = _("{B_LINK_OPPONENT1_NAME}\nwants to battle!{PAUSE 49}"); static const u8 sText_TwoLinkTrainersWantToBattlePause[] = _("{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}\nwant to battle!{PAUSE 49}"); @@ -1368,574 +1368,574 @@ static const u8 sDummyWeirdStatusString[] = {EOS, EOS, EOS, EOS, EOS, EOS, EOS, static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = { // The corresponding WindowTemplate is gStandardBattleWindowTemplates[] within src/battle_bg.c - { // 0 Standard battle message - .fillValue = 0xFF, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 1, - .fgColor = 1, - .bgColor = 15, - .shadowColor = 6, - }, - { // 1 "What will (pokemon) do?" - .fillValue = 0xFF, - .fontId = 1, - .x = 1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 15, - .shadowColor = 6, - }, - { // 2 "Fight/Pokemon/Bag/Run" - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 3 Top left move - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 4 Top right move - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 5 Bottom left move - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 6 Bottom right move - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 7 "PP" - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 12, - .bgColor = 14, - .shadowColor = 11, - }, - { // 8 - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 9 PP remaining - .fillValue = 0xEE, - .fontId = 1, - .x = 2, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 12, - .bgColor = 14, - .shadowColor = 11, - }, - { // 10 "type" - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 11 "switch which?" - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 12 "gText_BattleYesNoChoice" - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 13 - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 14 - .fillValue = 0x0, - .fontId = 1, - .x = 32, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 0, - .shadowColor = 2, - }, - { // 15 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 16 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 17 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 18 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 19 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 20 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 21 - .fillValue = 0x0, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 0, - .shadowColor = 6, - }, - { // 22 - .fillValue = 0x0, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 0, - .shadowColor = 6, - }, - { // 23 - .fillValue = 0x0, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 0, - .shadowColor = 6, - }, + { // 0 Standard battle message + .fillValue = 0xFF, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 1, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + { // 1 "What will (pokemon) do?" + .fillValue = 0xFF, + .fontId = 1, + .x = 1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + { // 2 "Fight/Pokemon/Bag/Run" + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 3 Top left move + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 4 Top right move + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 5 Bottom left move + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 6 Bottom right move + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 7 "PP" + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + { // 8 + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 9 PP remaining + .fillValue = 0xEE, + .fontId = 1, + .x = 2, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + { // 10 "type" + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 11 "switch which?" + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 12 "gText_BattleYesNoChoice" + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 13 + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 14 + .fillValue = 0x0, + .fontId = 1, + .x = 32, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 2, + }, + { // 15 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 16 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 17 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 18 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 19 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 20 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 21 + .fillValue = 0x0, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + { // 22 + .fillValue = 0x0, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + { // 23 + .fillValue = 0x0, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, }; static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = { - { // 0 - .fillValue = 0xFF, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 1, - .fgColor = 1, - .bgColor = 15, - .shadowColor = 6, - }, - { // 1 - .fillValue = 0xFF, - .fontId = 1, - .x = 1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 15, - .shadowColor = 6, - }, - { // 2 - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 3 - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 4 - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 5 - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 6 - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 7 - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 12, - .bgColor = 14, - .shadowColor = 11, - }, - { // 8 - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 9 - .fillValue = 0xEE, - .fontId = 1, - .x = 2, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 12, - .bgColor = 14, - .shadowColor = 11, - }, - { // 10 - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 11 - .fillValue = 0xEE, - .fontId = 7, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 12 - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 13 - .fillValue = 0xEE, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 14 - .fillValue = 0x0, - .fontId = 1, - .x = 32, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 0, - .shadowColor = 2, - }, - { // 15 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 1, - .bgColor = 14, - .shadowColor = 15, - }, - { // 16 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 17 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 18 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 19 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 20 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 21 - .fillValue = 0xEE, - .fontId = 1, - .x = -1, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 0, - .fgColor = 13, - .bgColor = 14, - .shadowColor = 15, - }, - { // 22 - .fillValue = 0x11, - .fontId = 1, - .x = 0, - .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, - .speed = 1, - .fgColor = 2, - .bgColor = 1, - .shadowColor = 3, - }, + { // 0 + .fillValue = 0xFF, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 1, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + { // 1 + .fillValue = 0xFF, + .fontId = 1, + .x = 1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + { // 2 + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 3 + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 4 + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 5 + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 6 + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 7 + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + { // 8 + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 9 + .fillValue = 0xEE, + .fontId = 1, + .x = 2, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + { // 10 + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 11 + .fillValue = 0xEE, + .fontId = 7, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 12 + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 13 + .fillValue = 0xEE, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 14 + .fillValue = 0x0, + .fontId = 1, + .x = 32, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 2, + }, + { // 15 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 14, + .shadowColor = 15, + }, + { // 16 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 17 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 18 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 19 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 20 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 21 + .fillValue = 0xEE, + .fontId = 1, + .x = -1, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + { // 22 + .fillValue = 0x11, + .fontId = 1, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 1, + .fgColor = 2, + .bgColor = 1, + .shadowColor = 3, + }, }; static const struct BattleWindowText *const sBattleTextOnWindowsInfo[] = diff --git a/src/battle_pike.c b/src/battle_pike.c index a0a50d86e..893796790 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -9,7 +9,7 @@ #include "task.h" #include "battle_tower.h" #include "party_menu.h" -#include "malloc.h" +#include "alloc.h" #include "palette.h" #include "script.h" #include "battle_setup.h" @@ -19,6 +19,7 @@ #include "constants/rgb.h" #include "constants/trainers.h" #include "constants/species.h" +#include "constants/moves.h" #define PIKE_ROOM_SINGLE_BATTLE 0 #define PIKE_ROOM_HEAL_FULL 1 @@ -40,7 +41,6 @@ struct Unk0861231C u8 unk2; u8 unk3; u8 unk4; - u8 unk5; }; struct PikeWildMon @@ -50,11 +50,6 @@ struct PikeWildMon u16 moves[4]; }; -extern const struct Unk0861231C gUnknown_0861231C[]; -extern const struct PikeWildMon *const *const gUnknown_08612314[2]; -extern const u16 gUnknown_086123E4[][6]; -extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; - // IWRAM bss static IWRAM_DATA u8 sRoomType; static IWRAM_DATA u8 sStatusMon; @@ -106,6 +101,380 @@ static bool8 sub_81A7D8C(struct Task *task); static bool8 sub_81A7DE8(struct Task *task); // Const rom data. +static const struct PikeWildMon sLvl50_Mons1[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_DUSCLOPS, + .levelDelta = 5, + .moves = {MOVE_WILL_O_WISP, MOVE_MEAN_LOOK, MOVE_TOXIC, MOVE_SHADOW_PUNCH} + } +}; + +static const struct PikeWildMon sLvl50_Mons2[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_ELECTRODE, + .levelDelta = 5, + .moves = {MOVE_EXPLOSION, MOVE_SELF_DESTRUCT, MOVE_THUNDER, MOVE_TOXIC} + } +}; + +static const struct PikeWildMon sLvl50_Mons3[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_BRELOOM, + .levelDelta = 5, + .moves = {MOVE_SPORE, MOVE_STUN_SPORE, MOVE_POISON_POWDER, MOVE_HIDDEN_POWER} + } +}; + +static const struct PikeWildMon sLvl50_Mons4[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_BODY_SLAM, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_SURF} + }, + { + .species = SPECIES_WOBBUFFET, + .levelDelta = 5, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND} + } +}; + +static const struct PikeWildMon *const sLvl50Mons[] = +{ + sLvl50_Mons1, + sLvl50_Mons2, + sLvl50_Mons3, + sLvl50_Mons4 +}; + +static const struct PikeWildMon sLvlOpen_Mons1[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_DUSCLOPS, + .levelDelta = 5, + .moves = {MOVE_WILL_O_WISP, MOVE_MEAN_LOOK, MOVE_TOXIC, MOVE_ICE_BEAM} + } +}; + +static const struct PikeWildMon sLvlOpen_Mons2[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_ELECTRODE, + .levelDelta = 5, + .moves = {MOVE_EXPLOSION, MOVE_SELF_DESTRUCT, MOVE_THUNDER, MOVE_TOXIC} + } +}; + +static const struct PikeWildMon sLvlOpen_Mons3[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_BRELOOM, + .levelDelta = 5, + .moves = {MOVE_SPORE, MOVE_STUN_SPORE, MOVE_POISON_POWDER, MOVE_HIDDEN_POWER} + } +}; + +static const struct PikeWildMon sLvlOpen_Mons4[] = +{ + { + .species = SPECIES_SEVIPER, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SLUDGE_BOMB} + }, + { + .species = SPECIES_MILOTIC, + .levelDelta = 4, + .moves = {MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_BODY_SLAM, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_WOBBUFFET, + .levelDelta = 5, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_ENCORE} + } +}; + +static const struct PikeWildMon *const sLvlOpenMons[] = +{ + sLvlOpen_Mons1, + sLvlOpen_Mons2, + sLvlOpen_Mons3, + sLvlOpen_Mons4 +}; + +static const struct PikeWildMon *const *const sWildMons[2] = +{ + [FRONTIER_LVL_50] = sLvl50Mons, + [FRONTIER_LVL_OPEN] = sLvlOpenMons +}; + +static const struct Unk0861231C gUnknown_0861231C[] = +{ + { + .unk0 = 0x0012, + .unk2 = 0x03, + .unk3 = 0x05, + .unk4 = 0x06 + }, + { + .unk0 = 0x0005, + .unk2 = 0x0d, + .unk3 = 0x20, + .unk4 = 0x25 + }, + { + .unk0 = 0x0011, + .unk2 = 0x08, + .unk3 = 0x0b, + .unk4 = 0x0c + }, + { + .unk0 = 0x0024, + .unk2 = 0x22, + .unk3 = 0x1e, + .unk4 = 0x21 + }, + { + .unk0 = 0x0015, + .unk2 = 0x00, + .unk3 = 0x00, + .unk4 = 0x00 + }, + { + .unk0 = 0x001e, + .unk2 = 0x01, + .unk3 = 0x01, + .unk4 = 0x01 + }, + { + .unk0 = 0x002c, + .unk2 = 0x16, + .unk3 = 0x17, + .unk4 = 0x1b + }, + { + .unk0 = 0x0037, + .unk2 = 0x08, + .unk3 = 0x16, + .unk4 = 0x1f + }, + { + .unk0 = 0x000e, + .unk2 = 0x0d, + .unk3 = 0x27, + .unk4 = 0x15 + }, + { + .unk0 = 0x0014, + .unk2 = 0x02, + .unk3 = 0x04, + .unk4 = 0x11 + }, + { + .unk0 = 0x0038, + .unk2 = 0x1e, + .unk3 = 0x14, + .unk4 = 0x24 + }, + { + .unk0 = 0x0042, + .unk2 = 0x1c, + .unk3 = 0x22, + .unk4 = 0x19 + }, + { + .unk0 = 0x0026, + .unk2 = 0x17, + .unk3 = 0x26, + .unk4 = 0x1a + }, + { + .unk0 = 0x0032, + .unk2 = 0x17, + .unk3 = 0x1e, + .unk4 = 0x0b + }, + { + .unk0 = 0x002f, + .unk2 = 0x0f, + .unk3 = 0x13, + .unk4 = 0x0e + }, + { + .unk0 = 0x0027, + .unk2 = 0x02, + .unk3 = 0x1d, + .unk4 = 0x1a + }, + { + .unk0 = 0x0033, + .unk2 = 0x25, + .unk3 = 0x0c, + .unk4 = 0x20 + }, + { + .unk0 = 0x0021, + .unk2 = 0x18, + .unk3 = 0x17, + .unk4 = 0x26 + }, + { + .unk0 = 0x0018, + .unk2 = 0x05, + .unk3 = 0x16, + .unk4 = 0x04 + }, + { + .unk0 = 0x000b, + .unk2 = 0x29, + .unk3 = 0x25, + .unk4 = 0x23 + }, + { + .unk0 = 0x0035, + .unk2 = 0x27, + .unk3 = 0x0e, + .unk4 = 0x0d + }, + { + .unk0 = 0x0030, + .unk2 = 0x0a, + .unk3 = 0x07, + .unk4 = 0x09 + }, + { + .unk0 = 0x000c, + .unk2 = 0x28, + .unk3 = 0x14, + .unk4 = 0x10 + }, + { + .unk0 = 0x0034, + .unk2 = 0x12, + .unk3 = 0x0d, + .unk4 = 0x15 + }, + { + .unk0 = 0x0013, + .unk2 = 0x16, + .unk3 = 0x1f, + .unk4 = 0x1b + } +}; + +static const u16 gUnknown_086123E4[][6] = +{ + {0x0a29, 0x0630, 0x0a01, 0x140f, 0x1020, 0x270e}, + {0x0a2a, 0x081d, 0x061b, 0x1034, 0x1e20, 0x0a29}, + {0x1e22, 0x1231, 0x0a01, 0x1018, 0x1c1a, 0x0c03}, + {0x1e0f, 0x100b, 0x1039, 0x200f, 0x102b, 0x0a14}, + {0x103b, 0x0a02, 0x161e, 0x1020, 0x143e, 0x0c03}, + {0x0a31, 0x0e02, 0x0e15, 0x1436, 0x1037, 0x1e0a}, + {0x0a29, 0x1025, 0x142a, 0x1034, 0x1e0f, 0x0a1b}, + {0x0a01, 0x0e07, 0x122a, 0x1e0f, 0x061f, 0xffff}, + {0x1a35, 0x1036, 0x0e0f, 0x0a01, 0x2621, 0x1e0f}, + {0x0e25, 0x102f, 0x062d, 0x201e, 0x0c03, 0xffff}, + {0x0c1d, 0x081d, 0x0a2b, 0x100f, 0x0a02, 0x0c03}, + {0x0a2a, 0x0a3e, 0x2000, 0x1027, 0x1c08, 0x0c04}, + {0x0a01, 0x1212, 0x0a01, 0x1000, 0x062d, 0xffff}, + {0x1e22, 0x1231, 0x0a01, 0x1018, 0x1c1c, 0x0c03}, + {0x0a01, 0x060b, 0x1030, 0x0a28, 0x2549, 0x0624}, + {0x1014, 0x0a2c, 0x0415, 0x1642, 0x1e1b, 0x0c03}, + {0x0628, 0x1a0f, 0x100b, 0x2017, 0x0c00, 0xffff}, + {0x0a01, 0x1015, 0x1647, 0x1e0f, 0x0e39, 0x0e36}, + {0x0a01, 0x1017, 0x1620, 0x0e19, 0x0a31, 0x0c38}, + {0x0c1d, 0x081d, 0x0c00, 0x1022, 0x1c12, 0x020b}, + {0x1029, 0x1404, 0x102f, 0x1006, 0x1e28, 0x1c1c}, + {0x1029, 0x0e20, 0x1028, 0x1c16, 0x1e29, 0x0c03}, + {0x1e0f, 0x100b, 0x0e2f, 0x0638, 0x100c, 0xffff}, + {0x0a29, 0x1408, 0x102f, 0x061e, 0x102c, 0xffff}, + {0x1023, 0x100b, 0x081d, 0x062d, 0x1037, 0x0a14}, + {0x0a29, 0x1022, 0x1408, 0x102f, 0x161e, 0x1029}, + {0x0601, 0x102c, 0x0a01, 0x1015, 0x0e39, 0x0e36}, + {0x1020, 0x020b, 0x103f, 0x1c12, 0x0c04, 0xffff}, + {0x1018, 0x0a02, 0x103a, 0x0446, 0x020e, 0x0c03}, + {0x1e10, 0x020b, 0x1e0a, 0x100b, 0x063a, 0xffff}, + {0x0a02, 0x1212, 0x1e0f, 0x100b, 0x0638, 0x0c03}, + {0x1e22, 0x1000, 0x161b, 0x103f, 0x1e0f, 0x0c03}, + {0x0a29, 0x0e1e, 0x1025, 0x1e26, 0x0c00, 0xffff}, + {0x0a01, 0x0e1e, 0x1236, 0x102f, 0x120b, 0x0c04}, + {0x2805, 0x1e0f, 0x0a1b, 0x100b, 0x1020, 0x063b}, + {0x0a01, 0x101f, 0x0a3e, 0x1037, 0x1020, 0x0628}, + {0x1026, 0x0a31, 0x1e29, 0x1c1c, 0x0a01, 0x1212}, + {0x0c0a, 0x0c00, 0x1029, 0x101c, 0x1e0f, 0x0c23}, + {0x0a28, 0x020e, 0x100f, 0x1039, 0x142a, 0x0c04}, + {0x0a28, 0x020e, 0x100f, 0x0620, 0x102f, 0x043c}, + {0x0c39, 0x0c39, 0x0c00, 0x0a29, 0x2017, 0x0c39}, + {0x265c, 0x100b, 0x1020, 0x1230, 0x1e05, 0x100c}, +}; + static const u8 gUnknown_086125DC[][4] = { {0x23, 0x46, 0x23, 0x01}, @@ -732,7 +1101,7 @@ bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate) s32 monLevel; u8 headerId = GetBattlePikeWildMonHeaderId(); u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - const struct PikeWildMon *const *const wildMons = gUnknown_08612314[lvlMode]; + const struct PikeWildMon *const *const wildMons = sWildMons[lvlMode]; u32 abilityBit; s32 pikeMonId = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); pikeMonId = SpeciesToPikeMonId(pikeMonId); diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 4bbc74dee..45aca91c8 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -6,6 +6,7 @@ #include "battle_setup.h" #include "battle_tower.h" #include "save.h" +#include "strings.h" #include "fieldmap.h" #include "palette.h" #include "field_message_box.h" @@ -20,23 +21,34 @@ #include "main.h" #include "load_save.h" #include "script.h" -#include "malloc.h" +#include "alloc.h" #include "overworld.h" +#include "event_scripts.h" #include "constants/battle_frontier.h" #include "constants/event_objects.h" #include "constants/event_object_movement_constants.h" #include "constants/items.h" #include "constants/maps.h" #include "constants/moves.h" +#include "constants/species.h" extern u8 gSelectedOrderFromParty[3]; extern void door_upload_tiles(void); extern const struct MapLayout *const gMapLayouts[]; +extern const u16 gUnknown_08D856C8[][16]; #define TOTAL_ROUNDS 20 #define PICKUP_ITEMS_PER_ROUND 10 +struct PyramidWildMon +{ + u16 species; + u8 lvl; + u8 abilityBit; + u16 moves[4]; +}; + struct Struct_08613650 { u8 unk0; @@ -47,28 +59,12 @@ struct Struct_08613650 u8 unk5[8]; }; -struct PyramidWildMon -{ - u16 species; - u8 lvl; - u8 abilityBit; - u16 moves[4]; -}; - struct ClassMusic { u8 class; u8 music; }; -extern const u16 gBattleFrontierHeldItems[]; -extern const struct FacilityMon gBattleFrontierMons[]; -extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; - -extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A[]; - // This file's functions. static void sub_81A8E9C(void); static void sub_81A8F38(void); @@ -102,19 +98,662 @@ static bool8 sub_81AA760(u8 arg0, u8 *mapNums, u8 whichMap, u8 id); static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *mapNums, u8 whichMap, u8 id); // Const rom data. -extern const struct Struct_08613650 gUnknown_08613650[]; -extern const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND]; -extern const u16 sPickupItemsLvlOpen[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND]; -extern const u8 gUnknown_08613ABC[63][2]; -extern const u8 gUnknown_08613B3A[]; -extern const u16 gUnknown_08D856C8[][16]; -extern const u8 gUnknown_08613C1C[50][2]; -extern const u8 *const *const *const gUnknown_08613EC0[]; -extern const struct ClassMusic gUnknown_08613B44[54]; -extern const struct PyramidWildMon *const gBattlePyramidOpenLevelWildMonPointers[]; -extern const struct PyramidWildMon *const gBattlePyramidLevel50WildMonPointers[]; -extern const u8 gUnknown_08613794[]; -extern const u8 gUnknown_08613750[34][2]; +#include "data/battle_frontier/battle_pyramid_level_50_wild_mons.h" +#include "data/battle_frontier/battle_pyramid_open_level_wild_mons.h" + +static const struct Struct_08613650 gUnknown_08613650[] = +{ + { + .unk0 = 0x07, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x80, + .unk5 = {0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03} + }, + { + .unk0 = 0x06, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x80, + .unk5 = {0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04} + }, + { + .unk0 = 0x05, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x78, + .unk5 = {0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05} + }, + { + .unk0 = 0x04, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x78, + .unk5 = {0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06} + }, + { + .unk0 = 0x04, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x01, + .runMultiplier = 0x70, + .unk5 = {0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07} + }, + { + .unk0 = 0x03, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x02, + .runMultiplier = 0x70, + .unk5 = {0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c} + }, + { + .unk0 = 0x03, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x68, + .unk5 = {0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d} + }, + { + .unk0 = 0x02, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x01, + .runMultiplier = 0x68, + .unk5 = {0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e} + }, + { + .unk0 = 0x04, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x02, + .runMultiplier = 0x60, + .unk5 = {0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f} + }, + { + .unk0 = 0x03, + .unk1 = 0x06, + .unk2 = 0x00, + .unk3 = 0x04, + .runMultiplier = 0x60, + .unk5 = {0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f} + }, + { + .unk0 = 0x02, + .unk1 = 0x03, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x58, + .unk5 = {0x0c, 0x0d, 0x0e, 0x0c, 0x0d, 0x0e, 0x0c, 0x0d} + }, + { + .unk0 = 0x04, + .unk1 = 0x05, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x58, + .unk5 = {0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b} + }, + { + .unk0 = 0x03, + .unk1 = 0x07, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c} + }, + { + .unk0 = 0x02, + .unk1 = 0x04, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d} + }, + { + .unk0 = 0x03, + .unk1 = 0x06, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e} + }, + { + .unk0 = 0x03, + .unk1 = 0x08, + .unk2 = 0x00, + .unk3 = 0x00, + .runMultiplier = 0x50, + .unk5 = {0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f} + } +}; + +static const u8 gUnknown_08613750[34][2] = +{ + {0x28, 0x00}, + {0x46, 0x01}, + {0x5a, 0x02}, + {0x64, 0x03}, + {0x23, 0x01}, + {0x37, 0x02}, + {0x4b, 0x03}, + {0x5a, 0x04}, + {0x64, 0x0a}, + {0x23, 0x02}, + {0x37, 0x03}, + {0x4b, 0x04}, + {0x5a, 0x05}, + {0x64, 0x0b}, + {0x23, 0x03}, + {0x37, 0x04}, + {0x4b, 0x05}, + {0x5a, 0x06}, + {0x64, 0x0c}, + {0x23, 0x04}, + {0x37, 0x05}, + {0x4b, 0x06}, + {0x5a, 0x07}, + {0x64, 0x0d}, + {0x23, 0x05}, + {0x37, 0x06}, + {0x4b, 0x07}, + {0x5a, 0x08}, + {0x64, 0x0e}, + {0x23, 0x06}, + {0x37, 0x07}, + {0x4b, 0x08}, + {0x5a, 0x09}, + {0x64, 0x0f} +}; + +static const u8 gUnknown_08613794[] = +{ + 0x00, 0x04, 0x09, 0x0e, 0x13, 0x18, 0x1d, 0x00 +}; + +static const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = +{ + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_CHERI_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_PECHA_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_RAWST_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_CHESTO_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, +}; + +static const u16 sPickupItemsLvlOpen[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = +{ + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_CHERI_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_PECHA_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_RAWST_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_CHESTO_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPEED, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_ACCURACY, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_SPECIAL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_GUARD_SPEC, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, + {ITEM_HYPER_POTION, ITEM_X_ATTACK, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_SCOPE_LENS, ITEM_FOCUS_BAND, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, + {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, +}; + +static const u8 gUnknown_08613ABC[63][2] = +{ + {0x1f, 0x00}, + {0x2e, 0x01}, + {0x3d, 0x02}, + {0x47, 0x03}, + {0x51, 0x04}, + {0x5b, 0x05}, + {0x5e, 0x06}, + {0x61, 0x07}, + {0x64, 0x08}, + {0x0f, 0x00}, + {0x2e, 0x01}, + {0x3d, 0x02}, + {0x47, 0x03}, + {0x51, 0x04}, + {0x5b, 0x05}, + {0x5e, 0x06}, + {0x61, 0x08}, + {0x64, 0x09}, + {0x0f, 0x00}, + {0x1e, 0x01}, + {0x3d, 0x02}, + {0x47, 0x03}, + {0x51, 0x04}, + {0x5b, 0x05}, + {0x5e, 0x06}, + {0x61, 0x07}, + {0x64, 0x08}, + {0x1c, 0x00}, + {0x2b, 0x01}, + {0x3a, 0x02}, + {0x44, 0x03}, + {0x4e, 0x04}, + {0x58, 0x05}, + {0x5c, 0x07}, + {0x60, 0x08}, + {0x64, 0x09}, + {0x0f, 0x00}, + {0x2b, 0x01}, + {0x3a, 0x02}, + {0x44, 0x03}, + {0x4e, 0x04}, + {0x58, 0x05}, + {0x5c, 0x06}, + {0x60, 0x07}, + {0x64, 0x09}, + {0x0f, 0x00}, + {0x1e, 0x01}, + {0x3a, 0x02}, + {0x44, 0x03}, + {0x4e, 0x04}, + {0x58, 0x05}, + {0x5c, 0x06}, + {0x60, 0x07}, + {0x64, 0x08}, + {0x1c, 0x00}, + {0x2b, 0x01}, + {0x3a, 0x02}, + {0x44, 0x03}, + {0x4e, 0x04}, + {0x58, 0x05}, + {0x5c, 0x06}, + {0x60, 0x08}, + {0x64, 0x09}, +}; + +static const u8 gUnknown_08613B3A[] = {0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36}; + +static const struct ClassMusic gUnknown_08613B44[54] = +{ + {0x03, 0x06}, + {0x0b, 0x06}, + {0x0d, 0x06}, + {0x0f, 0x01}, + {0x2b, 0x04}, + {0x2d, 0x01}, + {0x24, 0x09}, + {0x29, 0x04}, + {0x05, 0x05}, + {0x18, 0x04}, + {0x2f, 0x00}, + {0x2e, 0x09}, + {0x11, 0x0c}, + {0x10, 0x0b}, + {0x1e, 0x0d}, + {0x08, 0x01}, + {0x17, 0x03}, + {0x0c, 0x04}, + {0x38, 0x04}, + {0x1c, 0x03}, + {0x1a, 0x00}, + {0x19, 0x0b}, + {0x09, 0x07}, + {0x31, 0x07}, + {0x35, 0x07}, + {0x36, 0x01}, + {0x33, 0x00}, + {0x2a, 0x03}, + {0x16, 0x0d}, + {0x0e, 0x03}, + {0x15, 0x01}, + {0x14, 0x01}, + {0x2c, 0x01}, + {0x1b, 0x02}, + {0x04, 0x01}, + {0x07, 0x03}, + {0x34, 0x05}, + {0x32, 0x00}, + {0x37, 0x02}, + {0x1d, 0x04}, + {0x22, 0x09}, + {0x1f, 0x01}, + {0x25, 0x00}, + {0x0a, 0x04}, + {0x28, 0x00}, + {0x06, 0x05}, + {0x27, 0x0b}, + {0x26, 0x00}, + {0x13, 0x00}, + {0x12, 0x02}, + {0x39, 0x08}, + {0x02, 0x0b}, + {0x20, 0x01}, + {0x21, 0x00}, +}; + +static const u8 gUnknown_08613C1C[50][2] = +{ + {0x0d, 0x03}, + {0x0e, 0x04}, + {0x10, 0x01}, + {0x11, 0x00}, + {0x03, 0x02}, + {0x12, 0x03}, + {0x0c, 0x03}, + {0x13, 0x03}, + {0x14, 0x03}, + {0x15, 0x02}, + {0x17, 0x02}, + {0x07, 0x02}, + {0x0a, 0x04}, + {0x19, 0x02}, + {0x1a, 0x02}, + {0x1b, 0x00}, + {0x1d, 0x02}, + {0x1e, 0x02}, + {0x1f, 0x03}, + {0x20, 0x04}, + {0x26, 0x00}, + {0x27, 0x01}, + {0x29, 0x04}, + {0x2a, 0x05}, + {0x09, 0x04}, + {0x16, 0x05}, + {0x2b, 0x00}, + {0x2d, 0x04}, + {0x2e, 0x02}, + {0x30, 0x02}, + {0x32, 0x02}, + {0x31, 0x03}, + {0x2f, 0x03}, + {0x33, 0x03}, + {0x34, 0x02}, + {0x04, 0x02}, + {0x35, 0x00}, + {0x36, 0x03}, + {0x37, 0x03}, + {0x38, 0x03}, + {0x1c, 0x01}, + {0x3a, 0x02}, + {0x05, 0x02}, + {0x42, 0x02}, + {0x02, 0x03}, + {0x44, 0x02}, + {0x45, 0x03}, + {0x47, 0x03}, + {0x43, 0x00}, + {0x00, 0x04}, +}; + +static const u8 *const gUnknown_08613C80[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_252D2D, + BattleFrontier_BattlePyramidEmptySquare_Text_252D57, + BattleFrontier_BattlePyramidEmptySquare_Text_252D81, + BattleFrontier_BattlePyramidEmptySquare_Text_252DAB, +}; + +static const u8 *const gUnknown_08613C90[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_25330B, + BattleFrontier_BattlePyramidEmptySquare_Text_2532CC, + BattleFrontier_BattlePyramidEmptySquare_Text_25328B, + BattleFrontier_BattlePyramidEmptySquare_Text_253248, + BattleFrontier_BattlePyramidEmptySquare_Text_253206, + BattleFrontier_BattlePyramidEmptySquare_Text_2531C4, + BattleFrontier_BattlePyramidEmptySquare_Text_253183, + BattleFrontier_BattlePyramidEmptySquare_Text_253140, + BattleFrontier_BattlePyramidEmptySquare_Text_2530FD, +}; + +static const u8 *const gUnknown_08613CB4[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_2544A6, + BattleFrontier_BattlePyramidEmptySquare_Text_25445A, + BattleFrontier_BattlePyramidEmptySquare_Text_25440B, + BattleFrontier_BattlePyramidEmptySquare_Text_2543BA, + BattleFrontier_BattlePyramidEmptySquare_Text_25436A, + BattleFrontier_BattlePyramidEmptySquare_Text_25431A, + BattleFrontier_BattlePyramidEmptySquare_Text_2542CB, + BattleFrontier_BattlePyramidEmptySquare_Text_25427A, +}; + +static const u8 *const gUnknown_08613CD4[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_252DD5, + BattleFrontier_BattlePyramidEmptySquare_Text_252E03, + BattleFrontier_BattlePyramidEmptySquare_Text_252E31, + BattleFrontier_BattlePyramidEmptySquare_Text_252E5F, +}; + +static const u8 *const gUnknown_08613CE4[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_25362E, + BattleFrontier_BattlePyramidEmptySquare_Text_2535D4, + BattleFrontier_BattlePyramidEmptySquare_Text_253578, + BattleFrontier_BattlePyramidEmptySquare_Text_25351A, + BattleFrontier_BattlePyramidEmptySquare_Text_2534BD, + BattleFrontier_BattlePyramidEmptySquare_Text_253460, + BattleFrontier_BattlePyramidEmptySquare_Text_253404, + BattleFrontier_BattlePyramidEmptySquare_Text_2533A6, + BattleFrontier_BattlePyramidEmptySquare_Text_25334D, +}; + +static const u8 *const gUnknown_08613D08[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_25471E, + BattleFrontier_BattlePyramidEmptySquare_Text_2546CC, + BattleFrontier_BattlePyramidEmptySquare_Text_25467C, + BattleFrontier_BattlePyramidEmptySquare_Text_25462A, + BattleFrontier_BattlePyramidEmptySquare_Text_2545D9, + BattleFrontier_BattlePyramidEmptySquare_Text_254588, + BattleFrontier_BattlePyramidEmptySquare_Text_254538, + BattleFrontier_BattlePyramidEmptySquare_Text_2544E6, +}; + +static const u8 *const gUnknown_08613D28[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_252E8D, + BattleFrontier_BattlePyramidEmptySquare_Text_252EAA, + BattleFrontier_BattlePyramidEmptySquare_Text_252EC7, + BattleFrontier_BattlePyramidEmptySquare_Text_252EE4, +}; + +static const u8 *const gUnknown_08613D38[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_2539EC, + BattleFrontier_BattlePyramidEmptySquare_Text_253980, + BattleFrontier_BattlePyramidEmptySquare_Text_253915, + BattleFrontier_BattlePyramidEmptySquare_Text_2538A8, + BattleFrontier_BattlePyramidEmptySquare_Text_25383C, + BattleFrontier_BattlePyramidEmptySquare_Text_2537D0, + BattleFrontier_BattlePyramidEmptySquare_Text_253765, + BattleFrontier_BattlePyramidEmptySquare_Text_2536F8, + BattleFrontier_BattlePyramidEmptySquare_Text_25368B, +}; + +static const u8 *const gUnknown_08613D5C[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_254A0B, + BattleFrontier_BattlePyramidEmptySquare_Text_2549AE, + BattleFrontier_BattlePyramidEmptySquare_Text_25494D, + BattleFrontier_BattlePyramidEmptySquare_Text_2548EB, + BattleFrontier_BattlePyramidEmptySquare_Text_25488A, + BattleFrontier_BattlePyramidEmptySquare_Text_254829, + BattleFrontier_BattlePyramidEmptySquare_Text_2547C9, + BattleFrontier_BattlePyramidEmptySquare_Text_254767, +}; + +static const u8 *const gUnknown_08613D7C[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_252F01, + BattleFrontier_BattlePyramidEmptySquare_Text_252F3A, + BattleFrontier_BattlePyramidEmptySquare_Text_252F73, + BattleFrontier_BattlePyramidEmptySquare_Text_252FAC, +}; + +static const u8 *const gUnknown_08613D8C[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_253D3E, + BattleFrontier_BattlePyramidEmptySquare_Text_253CE0, + BattleFrontier_BattlePyramidEmptySquare_Text_253C87, + BattleFrontier_BattlePyramidEmptySquare_Text_253C2C, + BattleFrontier_BattlePyramidEmptySquare_Text_253BD2, + BattleFrontier_BattlePyramidEmptySquare_Text_253B78, + BattleFrontier_BattlePyramidEmptySquare_Text_253B1F, + BattleFrontier_BattlePyramidEmptySquare_Text_253AC4, + BattleFrontier_BattlePyramidEmptySquare_Text_253A69, +}; + +static const u8 *const gUnknown_08613DB0[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_254C3E, + BattleFrontier_BattlePyramidEmptySquare_Text_254BF1, + BattleFrontier_BattlePyramidEmptySquare_Text_254BAE, + BattleFrontier_BattlePyramidEmptySquare_Text_254B69, + BattleFrontier_BattlePyramidEmptySquare_Text_254B25, + BattleFrontier_BattlePyramidEmptySquare_Text_254AE1, + BattleFrontier_BattlePyramidEmptySquare_Text_254A9E, + BattleFrontier_BattlePyramidEmptySquare_Text_254A59, +}; + +static const u8 *const gUnknown_08613DD0[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_252FE5, + BattleFrontier_BattlePyramidEmptySquare_Text_253000, + BattleFrontier_BattlePyramidEmptySquare_Text_25301B, + BattleFrontier_BattlePyramidEmptySquare_Text_253036, +}; + +static const u8 *const gUnknown_08613DE0[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_253F6C, + BattleFrontier_BattlePyramidEmptySquare_Text_253F34, + BattleFrontier_BattlePyramidEmptySquare_Text_253EFA, + BattleFrontier_BattlePyramidEmptySquare_Text_253EBE, + BattleFrontier_BattlePyramidEmptySquare_Text_253E83, + BattleFrontier_BattlePyramidEmptySquare_Text_253E48, + BattleFrontier_BattlePyramidEmptySquare_Text_253E0E, + BattleFrontier_BattlePyramidEmptySquare_Text_253DD2, + BattleFrontier_BattlePyramidEmptySquare_Text_253D96, +}; + +static const u8 *const gUnknown_08613E04[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_254E6E, + BattleFrontier_BattlePyramidEmptySquare_Text_254E27, + BattleFrontier_BattlePyramidEmptySquare_Text_254DE0, + BattleFrontier_BattlePyramidEmptySquare_Text_254D97, + BattleFrontier_BattlePyramidEmptySquare_Text_254D4F, + BattleFrontier_BattlePyramidEmptySquare_Text_254D07, + BattleFrontier_BattlePyramidEmptySquare_Text_254CC0, + BattleFrontier_BattlePyramidEmptySquare_Text_254C77, +}; + +static const u8 *const gUnknown_08613E24[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_253051, + BattleFrontier_BattlePyramidEmptySquare_Text_25307C, + BattleFrontier_BattlePyramidEmptySquare_Text_2530A7, + BattleFrontier_BattlePyramidEmptySquare_Text_2530D2, +}; + +static const u8 *const gUnknown_08613E34[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_25422B, + BattleFrontier_BattlePyramidEmptySquare_Text_2541DD, + BattleFrontier_BattlePyramidEmptySquare_Text_25418D, + BattleFrontier_BattlePyramidEmptySquare_Text_25413B, + BattleFrontier_BattlePyramidEmptySquare_Text_2540EA, + BattleFrontier_BattlePyramidEmptySquare_Text_254099, + BattleFrontier_BattlePyramidEmptySquare_Text_254049, + BattleFrontier_BattlePyramidEmptySquare_Text_253FF7, + BattleFrontier_BattlePyramidEmptySquare_Text_253FA5, +}; + +static const u8 *const gUnknown_08613E58[] = +{ + BattleFrontier_BattlePyramidEmptySquare_Text_255068, + BattleFrontier_BattlePyramidEmptySquare_Text_25502F, + BattleFrontier_BattlePyramidEmptySquare_Text_254FF6, + BattleFrontier_BattlePyramidEmptySquare_Text_254FBB, + BattleFrontier_BattlePyramidEmptySquare_Text_254F81, + BattleFrontier_BattlePyramidEmptySquare_Text_254F47, + BattleFrontier_BattlePyramidEmptySquare_Text_254F0E, + BattleFrontier_BattlePyramidEmptySquare_Text_254ED3, +}; + +static const u8 *const *const gUnknown_08613E78[] = +{ + gUnknown_08613C80, + gUnknown_08613C90, + gUnknown_08613CB4, +}; + +static const u8 *const *const gUnknown_08613E84[] = +{ + gUnknown_08613CD4, + gUnknown_08613CE4, + gUnknown_08613D08, +}; + +static const u8 *const *const gUnknown_08613E90[] = +{ + gUnknown_08613D28, + gUnknown_08613D38, + gUnknown_08613D5C, +}; + +static const u8 *const *const gUnknown_08613E9C[] = +{ + gUnknown_08613D7C, + gUnknown_08613D8C, + gUnknown_08613DB0, +}; + +static const u8 *const *const gUnknown_08613EA8[] = +{ + gUnknown_08613DD0, + gUnknown_08613DE0, + gUnknown_08613E04, +}; + +static const u8 *const *const gUnknown_08613EB4[] = +{ + gUnknown_08613E24, + gUnknown_08613E34, + gUnknown_08613E58, +}; + +static const u8 *const *const *const gUnknown_08613EC0[] = +{ + gUnknown_08613E78, + gUnknown_08613E84, + gUnknown_08613E90, + gUnknown_08613E9C, + gUnknown_08613EA8, + gUnknown_08613EB4, +}; static const u8 gUnknown_08613ED8[] = {3, 4, 5, 6, 7, 8, 3, 4}; @@ -679,9 +1318,9 @@ void GenerateBattlePyramidWildMon(void) round = TOTAL_ROUNDS - 1; if (lvl != FRONTIER_LVL_50) - wildMons = gBattlePyramidOpenLevelWildMonPointers[round]; + wildMons = sOpenLevelWildMonPointers[round]; else - wildMons = gBattlePyramidLevel50WildMonPointers[round]; + wildMons = sLevel50WildMonPointers[round]; id = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) - 1; SetMonData(&gEnemyParty[0], MON_DATA_SPECIES, &wildMons[id].species); @@ -816,7 +1455,7 @@ static u16 sub_81A9F90(u8 count) do { trainerId = sub_8162548(challengeNum + 1, battleNum); - for (i = 0 ; i < count; i++) + for (i = 0; i < count; i++) { if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) break; @@ -828,7 +1467,7 @@ static u16 sub_81A9F90(u8 count) do { trainerId = sub_8162548(challengeNum, battleNum); - for (i = 0 ; i < count; i++) + for (i = 0; i < count; i++) { if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) break; diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 2225a3e55..8a6348522 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -17,7 +17,7 @@ #include "list_menu.h" #include "mail.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "overworld.h" diff --git a/src/battle_records.c b/src/battle_records.c index f64b5f494..f9c40d8de 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -18,7 +18,7 @@ #include "international_string_util.h" #include "sound.h" #include "constants/songs.h" -#include "malloc.h" +#include "alloc.h" #include "gpu_regs.h" #include "constants/game_stat.h" diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5bd7de072..475b16c98 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -677,45 +677,45 @@ static const u32 sStatusFlagsForMoveEffects[] = static const u8* const sMoveEffectBS_Ptrs[] = { - BattleScript_MoveEffectSleep, // 0 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_SLEEP - BattleScript_MoveEffectPoison, // MOVE_EFFECT_POISON - BattleScript_MoveEffectBurn, // MOVE_EFFECT_BURN - BattleScript_MoveEffectFreeze, // MOVE_EFFECT_FREEZE - BattleScript_MoveEffectParalysis, // MOVE_EFFECT_PARALYSIS - BattleScript_MoveEffectToxic, // MOVE_EFFECT_TOXIC - BattleScript_MoveEffectConfusion, // MOVE_EFFECT_CONFUSION - BattleScript_MoveEffectSleep, // MOVE_EFFECT_FLINCH - BattleScript_MoveEffectSleep, // MOVE_EFFECT_TRI_ATTACK - BattleScript_MoveEffectUproar, // MOVE_EFFECT_UPROAR - BattleScript_MoveEffectPayDay, // MOVE_EFFECT_PAYDAY - BattleScript_MoveEffectSleep, // MOVE_EFFECT_CHARGING - BattleScript_MoveEffectWrap, // MOVE_EFFECT_WRAP - BattleScript_MoveEffectRecoil, // MOVE_EFFECT_RECOIL_25 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_PLUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_PLUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_PLUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_PLUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_PLUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_PLUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_PLUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_MINUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_MINUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_MINUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_MINUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_MINUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_MINUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_MINUS_1 - BattleScript_MoveEffectSleep, // MOVE_EFFECT_RECHARGE - BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAGE - BattleScript_MoveEffectSleep, // MOVE_EFFECT_STEAL_ITEM - BattleScript_MoveEffectSleep, // MOVE_EFFECT_PREVENT_ESCAPE - BattleScript_MoveEffectSleep, // MOVE_EFFECT_NIGHTMARE - BattleScript_MoveEffectSleep, // MOVE_EFFECT_ALL_STATS_UP - BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAPIDSPIN - BattleScript_MoveEffectSleep, // MOVE_EFFECT_REMOVE_PARALYSIS - BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_DEF_DOWN - BattleScript_MoveEffectRecoil, // MOVE_EFFECT_RECOIL_33 + [0] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_SLEEP] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_POISON] = BattleScript_MoveEffectPoison, + [MOVE_EFFECT_BURN] = BattleScript_MoveEffectBurn, + [MOVE_EFFECT_FREEZE] = BattleScript_MoveEffectFreeze, + [MOVE_EFFECT_PARALYSIS] = BattleScript_MoveEffectParalysis, + [MOVE_EFFECT_TOXIC] = BattleScript_MoveEffectToxic, + [MOVE_EFFECT_CONFUSION] = BattleScript_MoveEffectConfusion, + [MOVE_EFFECT_FLINCH] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_TRI_ATTACK] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar, + [MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay, + [MOVE_EFFECT_CHARGING] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap, + [MOVE_EFFECT_RECOIL_25] = BattleScript_MoveEffectRecoil, + [MOVE_EFFECT_ATK_PLUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_DEF_PLUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_SPD_PLUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_SP_ATK_PLUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_SP_DEF_PLUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_ACC_PLUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_EVS_PLUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_ATK_MINUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_DEF_MINUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_SPD_MINUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_SP_ATK_MINUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_SP_DEF_MINUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_ACC_MINUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_EVS_MINUS_1] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_RECHARGE] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_RAGE] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_STEAL_ITEM] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_PREVENT_ESCAPE] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_NIGHTMARE] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_ALL_STATS_UP] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_RAPIDSPIN] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_REMOVE_PARALYSIS] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_ATK_DEF_DOWN] = BattleScript_MoveEffectSleep, + [MOVE_EFFECT_RECOIL_33] = BattleScript_MoveEffectRecoil, }; static const struct WindowTemplate sUnusedWinTemplate = {0, 1, 3, 7, 0xF, 0x1F, 0x3F}; @@ -768,26 +768,26 @@ static const u16 sProtectSuccessRates[] = {USHRT_MAX, USHRT_MAX / 2, USHRT_MAX / static const u16 sMovesForbiddenToCopy[] = { - MOVE_METRONOME, - MOVE_STRUGGLE, - MOVE_SKETCH, - MOVE_MIMIC, - MIMIC_FORBIDDEN_END, - MOVE_COUNTER, - MOVE_MIRROR_COAT, - MOVE_PROTECT, - MOVE_DETECT, - MOVE_ENDURE, - MOVE_DESTINY_BOND, - MOVE_SLEEP_TALK, - MOVE_THIEF, - MOVE_FOLLOW_ME, - MOVE_SNATCH, - MOVE_HELPING_HAND, - MOVE_COVET, - MOVE_TRICK, - MOVE_FOCUS_PUNCH, - METRONOME_FORBIDDEN_END + MOVE_METRONOME, + MOVE_STRUGGLE, + MOVE_SKETCH, + MOVE_MIMIC, + MIMIC_FORBIDDEN_END, + MOVE_COUNTER, + MOVE_MIRROR_COAT, + MOVE_PROTECT, + MOVE_DETECT, + MOVE_ENDURE, + MOVE_DESTINY_BOND, + MOVE_SLEEP_TALK, + MOVE_THIEF, + MOVE_FOLLOW_ME, + MOVE_SNATCH, + MOVE_HELPING_HAND, + MOVE_COVET, + MOVE_TRICK, + MOVE_FOCUS_PUNCH, + METRONOME_FORBIDDEN_END }; static const u8 sFlailHpScaleToPowerTable[] = @@ -828,38 +828,38 @@ static const u16 sWeightToDamageTable[] = static const u16 sPickupItems[] = { ITEM_POTION, - ITEM_ANTIDOTE, - ITEM_SUPER_POTION, - ITEM_GREAT_BALL, - ITEM_REPEL, - ITEM_ESCAPE_ROPE, - ITEM_X_ATTACK, - ITEM_FULL_HEAL, - ITEM_ULTRA_BALL, - ITEM_HYPER_POTION, - ITEM_RARE_CANDY, - ITEM_PROTEIN, - ITEM_REVIVE, - ITEM_HP_UP, - ITEM_FULL_RESTORE, - ITEM_MAX_REVIVE, - ITEM_PP_UP, - ITEM_MAX_ELIXIR, + ITEM_ANTIDOTE, + ITEM_SUPER_POTION, + ITEM_GREAT_BALL, + ITEM_REPEL, + ITEM_ESCAPE_ROPE, + ITEM_X_ATTACK, + ITEM_FULL_HEAL, + ITEM_ULTRA_BALL, + ITEM_HYPER_POTION, + ITEM_RARE_CANDY, + ITEM_PROTEIN, + ITEM_REVIVE, + ITEM_HP_UP, + ITEM_FULL_RESTORE, + ITEM_MAX_REVIVE, + ITEM_PP_UP, + ITEM_MAX_ELIXIR, }; static const u16 sRarePickupItems[] = { ITEM_HYPER_POTION, - ITEM_NUGGET, - ITEM_KINGS_ROCK, - ITEM_FULL_RESTORE, - ITEM_ETHER, - ITEM_WHITE_HERB, - ITEM_TM44_REST, - ITEM_ELIXIR, - ITEM_TM01_FOCUS_PUNCH, - ITEM_LEFTOVERS, - ITEM_TM26_EARTHQUAKE, + ITEM_NUGGET, + ITEM_KINGS_ROCK, + ITEM_FULL_RESTORE, + ITEM_ETHER, + ITEM_WHITE_HERB, + ITEM_TM44_REST, + ITEM_ELIXIR, + ITEM_TM01_FOCUS_PUNCH, + ITEM_LEFTOVERS, + ITEM_TM26_EARTHQUAKE, }; static const u8 sPickupProbabilities[] = @@ -917,10 +917,10 @@ const ALIGNED(4) u8 gUnknown_0831C494[][4] = static const u8 sUnknown_0831C4F8[] = { - 0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x03, 0x00, - 0x01, 0x02, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01, - 0x02, 0x03, 0x03, 0x02, 0x01, 0x00, 0x02, 0x02, - 0x03, 0x00, 0x00, 0x00 + 0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x03, 0x00, + 0x01, 0x02, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01, + 0x02, 0x03, 0x03, 0x02, 0x01, 0x00, 0x02, 0x02, + 0x03, 0x00, 0x00, 0x00 }; static void atk00_attackcanceler(void) @@ -942,7 +942,7 @@ static void atk00_attackcanceler(void) return; if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0)) return; - if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200) + if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & (HITMARKER_x800000 | HITMARKER_NO_ATTACKSTRING)) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; @@ -3270,7 +3270,7 @@ static void atk23_getexp(void) else { gBattleScripting.atk23_state++; - gBattleStruct->field_DF |= gBitTable[gBattlerPartyIndexes[gBattlerFainted]]; + gBattleStruct->givenExpMons |= gBitTable[gBattlerPartyIndexes[gBattlerFainted]]; } break; case 1: // calculate experience points to redistribute @@ -3403,8 +3403,8 @@ static void atk23_getexp(void) PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId) - // buffer 'gained' or 'gained a boosted' - PREPARE_STRING_BUFFER(gBattleTextBuff2, i) + // buffer 'gained' or 'gained a boosted' + PREPARE_STRING_BUFFER(gBattleTextBuff2, i) PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage) @@ -4490,24 +4490,24 @@ 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, + 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) @@ -5560,7 +5560,7 @@ static void atk52_switchineffects(void) gDisableStructs[gActiveBattler].truantUnknownBit = 0; if (!AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) - && !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE)) + && !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE)) { gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED); diff --git a/src/battle_setup.c b/src/battle_setup.c index d4b25021e..0705bd9f6 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1,6 +1,7 @@ #include "global.h" #include "constants/trainers.h" #include "battle.h" +#include "constants/battle_setup.h" #include "battle_setup.h" #include "battle_transition.h" #include "main.h" @@ -305,7 +306,7 @@ 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, 0x292, 0x293, 0x294, 0x294}, 0x18, 0x2b}, + {{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}, @@ -1085,9 +1086,9 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) switch (sTrainerBattleMode) { - case TRAINER_BATTLE_NORMAL_NO_INTRO_TEXT: + case TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT: TrainerBattleLoadArgs(sOrdinaryNoIntroBattleParams, data); - return EventScript_2713C2; + return EventScript_DoTainerBattle; case TRAINER_BATTLE_DOUBLE: TrainerBattleLoadArgs(sDoubleBattleParams, data); SetMapVarsToTrainer(); @@ -1102,11 +1103,11 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) { TrainerBattleLoadArgs(sTrainerBContinueScriptBattleParams, data); } - return EventScript_271362; + return EventScript_TryDoNormalTrainerBattle; case TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC: TrainerBattleLoadArgs(sContinueScriptBattleParams, data); SetMapVarsToTrainer(); - return EventScript_271362; + return EventScript_TryDoNormalTrainerBattle; case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE: case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC: TrainerBattleLoadArgs(sContinueScriptDoubleBattleParams, data); @@ -1121,8 +1122,8 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) TrainerBattleLoadArgs(sOrdinaryBattleParams, data); SetMapVarsToTrainer(); gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A); - return EventScript_2713D1; - case TRAINER_BATTLE_9: + return EventScript_TryDoRematchBattle; + case TRAINER_BATTLE_PYRAMID: if (gApproachingTrainerId == 0) { TrainerBattleLoadArgs(sOrdinaryBattleParams, data); @@ -1134,7 +1135,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data); gTrainerBattleOpponent_B = LocalIdToPyramidTrainerId(gSpecialVar_LastTalked); } - return EventScript_271362; + return EventScript_TryDoNormalTrainerBattle; case TRAINER_BATTLE_SET_TRAINER_A: TrainerBattleLoadArgs(sOrdinaryBattleParams, data); return NULL; @@ -1153,7 +1154,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data); gTrainerBattleOpponent_B = sub_81D6180(gSpecialVar_LastTalked); } - return EventScript_271362; + return EventScript_TryDoNormalTrainerBattle; default: if (gApproachingTrainerId == 0) { @@ -1164,7 +1165,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) { TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data); } - return EventScript_271362; + return EventScript_TryDoNormalTrainerBattle; } } @@ -1196,7 +1197,7 @@ bool32 GetTrainerFlagFromScriptPointer(const u8 *data) return FlagGet(FLAG_TRAINER_FLAG_START + flag); } -void sub_80B16D8(void) +void SetUpTrainerMovement(void) { struct EventObject *eventObject = &gEventObjects[gSelectedEventObject]; diff --git a/src/battle_tent.c b/src/battle_tent.c index c7e70912c..d66c093e9 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -14,10 +14,6 @@ #include "constants/items.h" #include "constants/region_map_sections.h" -extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[]; -extern const struct FacilityMon gSlateportBattleTentMons[]; -extern const u16 gBattleFrontierHeldItems[]; - // This file's functions. static void sub_81B99D4(void); static void sub_81B9A28(void); diff --git a/src/battle_tower.c b/src/battle_tower.c index 165b6bf64..4a9e0dbc4 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -10,6 +10,7 @@ #include "international_string_util.h" #include "battle.h" #include "frontier_util.h" +#include "strings.h" #include "recorded_battle.h" #include "easy_chat.h" #include "gym_leader_rematch.h" @@ -23,41 +24,14 @@ #include "tv.h" #include "battle_factory.h" #include "constants/battle_frontier.h" +#include "constants/items.h" #include "constants/trainers.h" #include "constants/event_objects.h" #include "constants/moves.h" #include "constants/species.h" +#include "constants/easy_chat.h" -extern void sub_81A4C30(void); - -extern const u8 *const *const gUnknown_085DD690[]; -extern const u16 gBattleFrontierHeldItems[]; -extern const u8 sRubyFacilityClassToEmerald[82][2]; extern const u16 gUnknown_085DFA46[]; -extern const struct FacilityMon gSlateportBattleTentMons[]; -extern const struct FacilityMon gVerdanturfBattleTentMons[]; -extern const struct FacilityMon gFallarborBattleTentMons[]; -extern const struct FacilityMon gBattleFrontierMons[]; -extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; -extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[]; -extern const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[]; -extern const struct BattleFrontierTrainer gFallarborBattleTentTrainers[]; - -struct -{ - u32 facilityClass; - const u8 *const *strings; -} extern const gUnknown_085DD500[50]; - -struct -{ - u16 species; - u8 fixedIV; - u8 level; - u8 nature; - u8 evs[6]; - u16 moves[4]; -} extern const sStevenMons[3]; extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224157[]; extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_224166[]; @@ -102,6 +76,982 @@ static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderT static u8 SetTentPtrsGetLevel(void); // Const rom data. +const u16 gBattleFrontierHeldItems[] = +{ + ITEM_NONE, + ITEM_KINGS_ROCK, + ITEM_SITRUS_BERRY, + ITEM_ORAN_BERRY, + ITEM_CHESTO_BERRY, + ITEM_HARD_STONE, + ITEM_FOCUS_BAND, + ITEM_PERSIM_BERRY, + ITEM_MIRACLE_SEED, + ITEM_BERRY_JUICE, + ITEM_MACHO_BRACE, + ITEM_SILVER_POWDER, + ITEM_CHERI_BERRY, + ITEM_BLACK_GLASSES, + ITEM_BLACK_BELT, + ITEM_SOUL_DEW, + ITEM_CHOICE_BAND, + ITEM_MAGNET, + ITEM_SILK_SCARF, + ITEM_WHITE_HERB, + ITEM_DEEP_SEA_SCALE, + ITEM_DEEP_SEA_TOOTH, + ITEM_MYSTIC_WATER, + ITEM_SHARP_BEAK, + ITEM_QUICK_CLAW, + ITEM_LEFTOVERS, + ITEM_RAWST_BERRY, + ITEM_LIGHT_BALL, + ITEM_POISON_BARB, + ITEM_NEVER_MELT_ICE, + ITEM_ASPEAR_BERRY, + ITEM_SPELL_TAG, + ITEM_BRIGHT_POWDER, + ITEM_LEPPA_BERRY, + ITEM_SCOPE_LENS, + ITEM_TWISTED_SPOON, + ITEM_METAL_COAT, + ITEM_MENTAL_HERB, + ITEM_CHARCOAL, + ITEM_PECHA_BERRY, + ITEM_SOFT_SAND, + ITEM_LUM_BERRY, + ITEM_DRAGON_SCALE, + ITEM_DRAGON_FANG, + ITEM_IAPAPA_BERRY, + ITEM_WIKI_BERRY, + ITEM_SEA_INCENSE, + ITEM_SHELL_BELL, + ITEM_SALAC_BERRY, + ITEM_LANSAT_BERRY, + ITEM_APICOT_BERRY, + ITEM_STARF_BERRY, + ITEM_LIECHI_BERRY, + ITEM_STICK, + ITEM_LAX_INCENSE, + ITEM_AGUAV_BERRY, + ITEM_FIGY_BERRY, + ITEM_THICK_CLUB, + ITEM_MAGO_BERRY, + ITEM_METAL_POWDER, + ITEM_PETAYA_BERRY, + ITEM_LUCKY_PUNCH, + ITEM_GANLON_BERRY +}; + +#include "data/battle_frontier/battle_frontier_trainer_mons.h" +#include "data/battle_frontier/battle_frontier_trainers.h" +#include "data/battle_frontier/battle_frontier_mons.h" + +const u8 gTowerMaleFacilityClasses[30] = +{ + FACILITY_CLASS_RUIN_MANIAC, + FACILITY_CLASS_TUBER_M, + FACILITY_CLASS_COOLTRAINER_M, + FACILITY_CLASS_RICH_BOY, + FACILITY_CLASS_POKEMANIAC, + FACILITY_CLASS_SWIMMER_M, + FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_GUITARIST, + FACILITY_CLASS_KINDLER, + FACILITY_CLASS_CAMPER, + FACILITY_CLASS_BUG_MANIAC, + FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_GENTLEMAN, + FACILITY_CLASS_SCHOOL_KID_M, + FACILITY_CLASS_POKEFAN_M, + FACILITY_CLASS_EXPERT_M, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_FISHERMAN, + FACILITY_CLASS_CYCLING_TRIATHLETE_M, + FACILITY_CLASS_RUNNING_TRIATHLETE_M, + FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + FACILITY_CLASS_DRAGON_TAMER, + FACILITY_CLASS_BIRD_KEEPER, + FACILITY_CLASS_NINJA_BOY, + FACILITY_CLASS_SAILOR, + FACILITY_CLASS_COLLECTOR, + FACILITY_CLASS_PKMN_BREEDER_M, + FACILITY_CLASS_PKMN_RANGER_M, + FACILITY_CLASS_BUG_CATCHER, + FACILITY_CLASS_HIKER +}; + +const u8 gTowerFemaleFacilityClasses[20] = +{ + FACILITY_CLASS_AROMA_LADY, + FACILITY_CLASS_TUBER_F, + FACILITY_CLASS_COOLTRAINER_F, + FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_LADY, + FACILITY_CLASS_BEAUTY, + FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_SCHOOL_KID_F, + FACILITY_CLASS_POKEFAN_F, + FACILITY_CLASS_EXPERT_F, + FACILITY_CLASS_CYCLING_TRIATHLETE_F, + FACILITY_CLASS_RUNNING_TRIATHLETE_F, + FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + FACILITY_CLASS_BATTLE_GIRL, + FACILITY_CLASS_PARASOL_LADY, + FACILITY_CLASS_SWIMMER_F, + FACILITY_CLASS_PICNICKER, + FACILITY_CLASS_POKEMON_BREEDER_F, + FACILITY_CLASS_PKMN_RANGER_F, + FACILITY_CLASS_LASS +}; + +const u8 gTowerMaleTrainerGfxIds[30] = +{ + EVENT_OBJ_GFX_HIKER, + EVENT_OBJ_GFX_TUBER_M, + EVENT_OBJ_GFX_MAN_3, + EVENT_OBJ_GFX_RICH_BOY, + EVENT_OBJ_GFX_MANIAC, + EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, + EVENT_OBJ_GFX_BLACK_BELT, + EVENT_OBJ_GFX_MAN_5, + EVENT_OBJ_GFX_MAN_5, + EVENT_OBJ_GFX_CAMPER, + EVENT_OBJ_GFX_MANIAC, + EVENT_OBJ_GFX_PSYCHIC_M, + EVENT_OBJ_GFX_GENTLEMAN, + EVENT_OBJ_GFX_SCHOOL_KID_M, + EVENT_OBJ_GFX_POKEFAN_M, + EVENT_OBJ_GFX_EXPERT_M, + EVENT_OBJ_GFX_YOUNGSTER, + EVENT_OBJ_GFX_FISHERMAN, + EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M, + EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, + EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, + EVENT_OBJ_GFX_MAN_3, + EVENT_OBJ_GFX_MAN_5, + EVENT_OBJ_GFX_NINJA_BOY, + EVENT_OBJ_GFX_SAILOR, + EVENT_OBJ_GFX_MANIAC, + EVENT_OBJ_GFX_MAN_4, + EVENT_OBJ_GFX_CAMPER, + EVENT_OBJ_GFX_BUG_CATCHER, + EVENT_OBJ_GFX_HIKER +}; + +const u8 gTowerFemaleTrainerGfxIds[20] = +{ + EVENT_OBJ_GFX_WOMAN_2, + EVENT_OBJ_GFX_TUBER_F, + EVENT_OBJ_GFX_WOMAN_5, + EVENT_OBJ_GFX_HEX_MANIAC, + EVENT_OBJ_GFX_WOMAN_2, + EVENT_OBJ_GFX_BEAUTY, + EVENT_OBJ_GFX_LASS, + EVENT_OBJ_GFX_GIRL_3, + EVENT_OBJ_GFX_POKEFAN_F, + EVENT_OBJ_GFX_EXPERT_F, + EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F, + EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, + EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, + EVENT_OBJ_GFX_GIRL_3, + EVENT_OBJ_GFX_WOMAN_5, + EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, + EVENT_OBJ_GFX_PICNICKER, + EVENT_OBJ_GFX_WOMAN_2, + EVENT_OBJ_GFX_PICNICKER, + EVENT_OBJ_GFX_LASS +}; + +static const u8 sRubyFacilityClassToEmerald[][2] = +{ + {0x00, FACILITY_CLASS_AQUA_LEADER_ARCHIE}, + {0x01, FACILITY_CLASS_AQUA_GRUNT_M}, + {0x02, FACILITY_CLASS_AQUA_GRUNT_F}, + {0x03, FACILITY_CLASS_AROMA_LADY}, + {0x04, FACILITY_CLASS_RUIN_MANIAC}, + {0x05, FACILITY_CLASS_INTERVIEWER}, + {0x06, FACILITY_CLASS_TUBER_F}, + {0x07, FACILITY_CLASS_TUBER_M}, + {0x08, FACILITY_CLASS_COOLTRAINER_M}, + {0x09, FACILITY_CLASS_COOLTRAINER_F}, + {0x0a, FACILITY_CLASS_HEX_MANIAC}, + {0x0b, FACILITY_CLASS_LADY}, + {0x0c, FACILITY_CLASS_BEAUTY}, + {0x0d, FACILITY_CLASS_RICH_BOY}, + {0x0e, FACILITY_CLASS_POKEMANIAC}, + {0x0f, FACILITY_CLASS_SWIMMER_M}, + {0x10, FACILITY_CLASS_BLACK_BELT}, + {0x11, FACILITY_CLASS_GUITARIST}, + {0x12, FACILITY_CLASS_KINDLER}, + {0x13, FACILITY_CLASS_CAMPER}, + {0x14, FACILITY_CLASS_BUG_MANIAC}, + {0x15, FACILITY_CLASS_PSYCHIC_M}, + {0x16, FACILITY_CLASS_PSYCHIC_F}, + {0x17, FACILITY_CLASS_GENTLEMAN}, + {0x18, FACILITY_CLASS_ELITE_FOUR_SIDNEY}, + {0x19, FACILITY_CLASS_ELITE_FOUR_PHOEBE}, + {0x1a, FACILITY_CLASS_LEADER_ROXANNE}, + {0x1b, FACILITY_CLASS_LEADER_BRAWLY}, + {0x1c, FACILITY_CLASS_LEADER_TATE_AND_LIZA}, + {0x1d, FACILITY_CLASS_SCHOOL_KID_M}, + {0x1e, FACILITY_CLASS_SCHOOL_KID_F}, + {0x1f, FACILITY_CLASS_SR_AND_JR}, + {0x20, FACILITY_CLASS_POKEFAN_M}, + {0x21, FACILITY_CLASS_POKEFAN_F}, + {0x22, FACILITY_CLASS_EXPERT_M}, + {0x23, FACILITY_CLASS_EXPERT_F}, + {0x24, FACILITY_CLASS_YOUNGSTER}, + {0x25, FACILITY_CLASS_CHAMPION_WALLACE}, + {0x26, FACILITY_CLASS_FISHERMAN}, + {0x27, FACILITY_CLASS_CYCLING_TRIATHLETE_M}, + {0x28, FACILITY_CLASS_CYCLING_TRIATHLETE_F}, + {0x29, FACILITY_CLASS_RUNNING_TRIATHLETE_M}, + {0x2a, FACILITY_CLASS_RUNNING_TRIATHLETE_F}, + {0x2b, FACILITY_CLASS_SWIMMING_TRIATHLETE_M}, + {0x2c, FACILITY_CLASS_SWIMMING_TRIATHLETE_F}, + {0x2d, FACILITY_CLASS_DRAGON_TAMER}, + {0x2e, FACILITY_CLASS_BIRD_KEEPER}, + {0x2f, FACILITY_CLASS_NINJA_BOY}, + {0x30, FACILITY_CLASS_BATTLE_GIRL}, + {0x31, FACILITY_CLASS_PARASOL_LADY}, + {0x32, FACILITY_CLASS_SWIMMER_F}, + {0x33, FACILITY_CLASS_PICNICKER}, + {0x34, FACILITY_CLASS_TWINS}, + {0x35, FACILITY_CLASS_SAILOR}, + {0x38, FACILITY_CLASS_COLLECTOR}, + {0x39, FACILITY_CLASS_WALLY}, + {0x3a, FACILITY_CLASS_BRENDAN}, + {0x3b, FACILITY_CLASS_BRENDAN_2}, + {0x3c, FACILITY_CLASS_BRENDAN_3}, + {0x3d, FACILITY_CLASS_MAY}, + {0x3e, FACILITY_CLASS_MAY_2}, + {0x3f, FACILITY_CLASS_MAY_3}, + {0x40, FACILITY_CLASS_PKMN_BREEDER_M}, + {0x41, FACILITY_CLASS_POKEMON_BREEDER_F}, + {0x42, FACILITY_CLASS_PKMN_RANGER_M}, + {0x43, FACILITY_CLASS_PKMN_RANGER_F}, + {0x44, FACILITY_CLASS_MAGMA_LEADER_MAXIE}, + {0x45, FACILITY_CLASS_MAGMA_GRUNT_M}, + {0x46, FACILITY_CLASS_MAGMA_GRUNT_F}, + {0x47, FACILITY_CLASS_LASS}, + {0x48, FACILITY_CLASS_BUG_CATCHER}, + {0x49, FACILITY_CLASS_HIKER}, + {0x4a, FACILITY_CLASS_YOUNG_COUPLE}, + {0x4b, FACILITY_CLASS_OLD_COUPLE}, + {0x4c, FACILITY_CLASS_SIS_AND_BRO}, +}; + +static const u8 *const gUnknown_085DCFD8[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_244383, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2443E7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244413, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24444B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2444D6 +}; + +static const u8 *const gUnknown_085DCFEC[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2444EF, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24451E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244549, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24459B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2445C5 +}; + +static const u8 *const gUnknown_085DD000[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2445E8, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244618, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244643, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24468F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2446B4 +}; + +static const u8 *const gUnknown_085DD014[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2446E5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24474D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24479E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24480C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2448A7 +}; + +static const u8 *const gUnknown_085DD028[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2448CD, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2448F5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244939, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244989, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2449E6 +}; + +static const u8 *const gUnknown_085DD03C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_244A23, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244AA9, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244AD6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244B52, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244B93 +}; + +static const u8 *const gUnknown_085DD050[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_244BD2, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244C18, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244C6E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244CD6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244D07 +}; + +static const u8 *const gUnknown_085DD064[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_244D36, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244D82, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244DC6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244DFE, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244E5B +}; + +static const u8 *const gUnknown_085DD078[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_244E7E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244ECA, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244EF4, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244F4F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_244F98 +}; + +static const u8 *const gUnknown_085DD08C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_244FD3, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245013, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24503D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245087, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2450C0 +}; + +static const u8 *const gUnknown_085DD0A0[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2450E6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245196, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2451BD, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24522F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24529A +}; + +static const u8 *const gUnknown_085DD0B4[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2452EF, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2453B4, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245406, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245464, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2454A3 +}; + +static const u8 *const gUnknown_085DD0C8[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2454D6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245535, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24555F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2455EC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245656 +}; + +static const u8 *const gUnknown_085DD0DC[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24568A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2456F5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245740, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2457D9, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24581F +}; + +static const u8 *const gUnknown_085DD0F0[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_245851, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24589C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2458CE, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245923, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24597F +}; + +static const u8 *const gUnknown_085DD104[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2459BE, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2459F7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245A5F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245AB4, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245B3E +}; + +static const u8 *const gUnknown_085DD118[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_245B79, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245B91, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245BBD, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245C05, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245C2D +}; + +static const u8 *const gUnknown_085DD12C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_245C66, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245C7F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245CAC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245CE6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245D07 +}; + +static const u8 *const gUnknown_085DD140[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_245D4B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245D60, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245D8D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245DC7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245DF0 +}; + +static const u8 *const gUnknown_085DD154[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_245E20, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245E41, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245E78, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245EBD, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245EEC +}; + +static const u8 *const gUnknown_085DD168[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_245F2B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245F58, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245F87, + BattleFrontier_BattleTowerMultiBattleRoom_Text_245FC6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246002 +}; + +static const u8 *const gUnknown_085DD17C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246020, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246051, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246082, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2460D5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24610D +}; + +static const u8 *const gUnknown_085DD190[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24614A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24615D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24617D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2461C7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2461F5 +}; + +static const u8 *const gUnknown_085DD1A4[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24622A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246244, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24626E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2462AA, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2462E4 +}; + +static const u8 *const gUnknown_085DD1B8[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24631F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24633C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24636B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2463C5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2463FF +}; + +static const u8 *const gUnknown_085DD1CC[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246449, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246478, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24649D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2464EE, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246529 +}; + +static const u8 *const gUnknown_085DD1E0[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246571, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24658C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2465B5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246605, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24662A +}; + +static const u8 *const gUnknown_085DD1F4[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246662, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246686, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2466B4, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2466E6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24670A +}; + +static const u8 *const gUnknown_085DD208[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246741, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246760, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246791, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2467C4, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2467E6 +}; + +static const u8 *const gUnknown_085DD21C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_2467FF, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246831, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246864, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2468A7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2468FE +}; + +static const u8 *const gUnknown_085DD230[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24692B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24694B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24697C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2469B4, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2469F1 +}; + +static const u8 *const gUnknown_085DD244[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246A22, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246A4E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246A85, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246ACF, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246AF7 +}; + +static const u8 *const gUnknown_085DD258[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246B2B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246B3F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246B6B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246BB2, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246BE9 +}; + +static const u8 *const gUnknown_085DD26C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246C22, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246C35, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246C6C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246CB3, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246CE9 +}; + +static const u8 *const gUnknown_085DD280[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246D2D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246D3F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246D6A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246D9E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246DD3 +}; + +static const u8 *const gUnknown_085DD294[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246E1A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246E39, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246E64, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246EB6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246EEE +}; + +static const u8 *const gUnknown_085DD2A8[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_246F21, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246F4C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246F7B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_246FCC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247013 +}; + +static const u8 *const gUnknown_085DD2BC[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24705B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24707D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2470B2, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2470FD, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24712A +}; + +static const u8 *const gUnknown_085DD2D0[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24716C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24718D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2471C7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2471FB, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247238 +}; + +static const u8 *const gUnknown_085DD2E4[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247268, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247291, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2472C7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247313, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247348 +}; + +static const u8 *const gUnknown_085DD2F8[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24737A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24738F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2473C6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2473FB, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247438 +}; + +static const u8 *const gUnknown_085DD30C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247470, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247484, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2474AF, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2474EC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24751D +}; + +static const u8 *const gUnknown_085DD320[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24754A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24755C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24758B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2475BC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2475D5 +}; + +static const u8 *const gUnknown_085DD334[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24760D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247629, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247655, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24769B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2476ED +}; + +static const u8 *const gUnknown_085DD348[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247724, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247749, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24777A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2477CE, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247807 +}; + +static const u8 *const gUnknown_085DD35C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247838, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247854, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247889, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2478DD, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24790D +}; + +static const u8 *const gUnknown_085DD370[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247942, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24795F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247991, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2479CE, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247A18 +}; + +static const u8 *const gUnknown_085DD384[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247A51, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247A76, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247AA1, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247AE3, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247B16 +}; + +static const u8 *const gUnknown_085DD398[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247B3E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247B62, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247B9B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247BE7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247C23 +}; + +static const u8 *const gUnknown_085DD3AC[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247C4E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247C8C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247CB2, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247D07, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247D4E +}; + +static const u8 *const gUnknown_085DD3C0[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247D97, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247DC7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247DFE, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247E3E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247E7E +}; + +static const u8 *const gUnknown_085DD3D4[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247EA1, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247EB5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247EE9, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247F3F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247F6D +}; + +static const u8 *const gUnknown_085DD3E8[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_247FA3, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247FB7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_247FE9, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248031, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24805E +}; + +static const u8 *const gUnknown_085DD3FC[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24808D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2480AB, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2480DC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248128, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248151 +}; + +static const u8 *const gUnknown_085DD410[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24818E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2481A9, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2481E1, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248221, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24824F +}; + +static const u8 *const gUnknown_085DD424[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248297, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2482B1, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2482DC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248321, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24833D +}; + +static const u8 *const gUnknown_085DD438[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248369, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24838D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2483C1, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248401, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248431 +}; + +static const u8 *const gUnknown_085DD44C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248467, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248477, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2484AC, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2484E7, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248517 +}; + +static const u8 *const gUnknown_085DD460[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248553, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24856A, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24857D, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2485E5, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248614 +}; + +static const u8 *const gUnknown_085DD474[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24864E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248661, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248671, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2486C6, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2486FF +}; + +static const u8 *const gUnknown_085DD488[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248725, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248751, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248781, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2487C9, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2487F7 +}; + +static const u8 *const gUnknown_085DD49C[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248829, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24885B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248892, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2488D8, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248908 +}; + +static const u8 *const gUnknown_085DD4B0[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_24894B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24895F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_24896F, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2489BD, + BattleFrontier_BattleTowerMultiBattleRoom_Text_2489E7 +}; + +static const u8 *const gUnknown_085DD4C4[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248A10, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248A40, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248A72, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248AC0, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248AEB +}; + +static const u8 *const gUnknown_085DD4D8[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248B22, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248B39, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248B4C, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248BB4, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248BEE +}; + +static const u8 *const gUnknown_085DD4EC[] = +{ + BattleFrontier_BattleTowerMultiBattleRoom_Text_248C2E, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248C5B, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248C90, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248CCF, + BattleFrontier_BattleTowerMultiBattleRoom_Text_248D04 +}; + +struct +{ + u32 facilityClass; + const u8 *const *strings; +} const gUnknown_085DD500[] = +{ + {FACILITY_CLASS_LASS, gUnknown_085DD118}, + {FACILITY_CLASS_YOUNGSTER, gUnknown_085DD12C}, + {FACILITY_CLASS_HIKER, gUnknown_085DD140}, + {FACILITY_CLASS_BEAUTY, gUnknown_085DD154}, + {FACILITY_CLASS_FISHERMAN, gUnknown_085DD168}, + {FACILITY_CLASS_LADY, gUnknown_085DD17C}, + {FACILITY_CLASS_CYCLING_TRIATHLETE_F, gUnknown_085DD190}, + {FACILITY_CLASS_BUG_CATCHER, gUnknown_085DD1A4}, + {FACILITY_CLASS_SCHOOL_KID_M, gUnknown_085DD1B8}, + {FACILITY_CLASS_RICH_BOY, gUnknown_085DD1CC}, + {FACILITY_CLASS_BLACK_BELT, gUnknown_085DD1E0}, + {FACILITY_CLASS_TUBER_F, gUnknown_085DD1F4}, + {FACILITY_CLASS_HEX_MANIAC, gUnknown_085DD208}, + {FACILITY_CLASS_PKMN_BREEDER_M, gUnknown_085DD21C}, + {FACILITY_CLASS_RUNNING_TRIATHLETE_F, gUnknown_085DD230}, + {FACILITY_CLASS_RUNNING_TRIATHLETE_M, gUnknown_085DD244}, + {FACILITY_CLASS_BATTLE_GIRL, gUnknown_085DD258}, + {FACILITY_CLASS_CYCLING_TRIATHLETE_M, gUnknown_085DD26C}, + {FACILITY_CLASS_TUBER_M, gUnknown_085DD280}, + {FACILITY_CLASS_GUITARIST, gUnknown_085DD294}, + {FACILITY_CLASS_GENTLEMAN, gUnknown_085DD2A8}, + {FACILITY_CLASS_POKEFAN_M, gUnknown_085DD2BC}, + {FACILITY_CLASS_EXPERT_M, gUnknown_085DD2D0}, + {FACILITY_CLASS_EXPERT_F, gUnknown_085DD2E4}, + {FACILITY_CLASS_DRAGON_TAMER, gUnknown_085DD2F8}, + {FACILITY_CLASS_BIRD_KEEPER, gUnknown_085DD30C}, + {FACILITY_CLASS_NINJA_BOY, gUnknown_085DD320}, + {FACILITY_CLASS_PARASOL_LADY, gUnknown_085DD334}, + {FACILITY_CLASS_BUG_MANIAC, gUnknown_085DD348}, + {FACILITY_CLASS_SAILOR, gUnknown_085DD35C}, + {FACILITY_CLASS_COLLECTOR, gUnknown_085DD370}, + {FACILITY_CLASS_PKMN_RANGER_M, gUnknown_085DD384}, + {FACILITY_CLASS_PKMN_RANGER_F, gUnknown_085DD398}, + {FACILITY_CLASS_AROMA_LADY, gUnknown_085DD3AC}, + {FACILITY_CLASS_RUIN_MANIAC, gUnknown_085DD3C0}, + {FACILITY_CLASS_COOLTRAINER_M, gUnknown_085DD3D4}, + {FACILITY_CLASS_COOLTRAINER_F, gUnknown_085DD3E8}, + {FACILITY_CLASS_POKEMANIAC, gUnknown_085DD3FC}, + {FACILITY_CLASS_KINDLER, gUnknown_085DD410}, + {FACILITY_CLASS_CAMPER, gUnknown_085DD424}, + {FACILITY_CLASS_PICNICKER, gUnknown_085DD438}, + {FACILITY_CLASS_PSYCHIC_M, gUnknown_085DD44C}, + {FACILITY_CLASS_PSYCHIC_F, gUnknown_085DD460}, + {FACILITY_CLASS_SCHOOL_KID_F, gUnknown_085DD474}, + {FACILITY_CLASS_POKEMON_BREEDER_F, gUnknown_085DD488}, + {FACILITY_CLASS_POKEFAN_F, gUnknown_085DD49C}, + {FACILITY_CLASS_SWIMMER_F, gUnknown_085DD4B0}, + {FACILITY_CLASS_SWIMMING_TRIATHLETE_M, gUnknown_085DD4C4}, + {FACILITY_CLASS_SWIMMING_TRIATHLETE_F, gUnknown_085DD4D8}, + {FACILITY_CLASS_SWIMMER_M, gUnknown_085DD4EC} +}; + +static const u8 *const *const gUnknown_085DD690[] = +{ + gUnknown_085DCFD8, + gUnknown_085DCFEC, + gUnknown_085DD000, + gUnknown_085DD014, + gUnknown_085DD028, + gUnknown_085DD03C, + gUnknown_085DD050, + gUnknown_085DD064, + gUnknown_085DD078, + gUnknown_085DD08C, + gUnknown_085DD0A0, + gUnknown_085DD0B4, + gUnknown_085DD0C8, + gUnknown_085DD0DC, + gUnknown_085DD0F0, + gUnknown_085DD104 +}; + +struct +{ + u16 species; + u8 fixedIV; + u8 level; + u8 nature; + u8 evs[6]; + u16 moves[4]; +} const sStevenMons[3] = +{ + { + .species = SPECIES_METANG, + .fixedIV = 31, + .level = 42, + .nature = NATURE_BRAVE, + .evs = {0, 252, 252, 0, 6, 0}, + .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW} + }, + { + .species = SPECIES_SKARMORY, + .fixedIV = 31, + .level = 43, + .nature = NATURE_IMPISH, + .evs = {252, 0, 0, 0, 6, 252}, + .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING} + }, + { + .species = SPECIES_AGGRON, + .fixedIV = 31, + .level = 44, + .nature = NATURE_ADAMANT, + .evs = {0, 252, 0, 0, 252, 6}, + .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW} + } +}; + +#include "data/battle_frontier/battle_tent.h" + static void (* const gUnknown_085DF96C[])(void) = { sub_8161F94, @@ -424,10 +1374,9 @@ u16 sub_8162548(u8 challengeNum, u8 battleNum) return trainerId; } -#ifdef NONMATCHING -static u16 sub_81625B4(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *arg3) // Unused +static void sub_81625B4(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *arg3) // Unused { - register u16 trainerId, count; + u16 trainerId, count; if (challengeNum <= 7) { @@ -451,59 +1400,6 @@ static u16 sub_81625B4(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *arg *trainerIdPtr = trainerId; *arg3 = count; } -#else -NAKED -static u16 sub_81625B4(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *arg3) -{ - asm_unified(" push {r4,lr}\n\ - adds r4, r2, 0\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r2, r0, 0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - cmp r0, 0x7\n\ - bhi _081625F4\n\ - cmp r1, 0x6\n\ - bne _081625D4\n\ - ldr r1, =gUnknown_085DFA1A\n\ - lsls r2, r0, 2\n\ - b _081625D8\n\ - .pool\n\ -_081625D4:\n\ - ldr r1, =gUnknown_085DF9FA\n\ - lsls r2, 2\n\ -_081625D8:\n\ - adds r0, r1, 0x2\n\ - adds r0, r2, r0\n\ - adds r2, r1\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r2]\n\ - subs r0, r1\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r1, r0, 16\n\ - ldrh r0, [r2]\n\ - b _08162604\n\ - .pool\n\ -_081625F4:\n\ - ldr r0, =gUnknown_085DF9FA\n\ - ldrh r1, [r0, 0x1E]\n\ - ldrh r2, [r0, 0x1C]\n\ - subs r1, r2\n\ - adds r1, 0x1\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - ldrh r0, [r0, 0x1C]\n\ -_08162604:\n\ - strh r0, [r4]\n\ - strb r1, [r3]\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); -} -#endif void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId) { @@ -2349,7 +3245,7 @@ static void FillPartnerParty(u16 trainerId) for (i = 0; i < 2; i++) { struct EmeraldBattleTowerRecord *record = &gSaveBlock2Ptr->frontier.towerRecords[trainerId]; - struct UnknownPokemonStruct monData = record->party[gSaveBlock2Ptr->frontier.field_CB4[18 + i]]; + struct BattleTowerPokemon monData = record->party[gSaveBlock2Ptr->frontier.field_CB4[18 + i]]; StringCopy(trainerName, record->name); if (record->language == LANGUAGE_JAPANESE) { @@ -2401,12 +3297,13 @@ bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct Em { dst->lvlMode = src->lvlMode; dst->winStreak = src->winStreak; - for (i = 0; i < (signed) ARRAY_COUNT(sRubyFacilityClassToEmerald); i++) + // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries. + for (i = 0; i < FACILITY_CLASSES_COUNT; i++) { if (sRubyFacilityClassToEmerald[i][0] == src->facilityClass) break; } - if (i != ARRAY_COUNT(sRubyFacilityClassToEmerald)) + if (i != FACILITY_CLASSES_COUNT) dst->facilityClass = sRubyFacilityClassToEmerald[i][1]; else dst->facilityClass = FACILITY_CLASS_YOUNGSTER; @@ -2449,12 +3346,13 @@ bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, stru { dst->lvlMode = src->lvlMode; dst->winStreak = src->winStreak; - for (i = 0; i < (signed) ARRAY_COUNT(sRubyFacilityClassToEmerald); i++) + // BUG: Reading outside the array. sRubyFacilityClassToEmerald has less than FACILITY_CLASSES_COUNT entries. + for (i = 0; i < FACILITY_CLASSES_COUNT; i++) { if (sRubyFacilityClassToEmerald[i][1] == src->facilityClass) break; } - if (i != ARRAY_COUNT(sRubyFacilityClassToEmerald)) + if (i != FACILITY_CLASSES_COUNT) dst->facilityClass = sRubyFacilityClassToEmerald[i][0]; else dst->facilityClass = 0x24; // FACILITY_CLASS_YOUNGSTER in Ruby/Sapphire. diff --git a/src/battle_transition.c b/src/battle_transition.c index 94b9e78f9..37a8cd63f 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -7,7 +7,7 @@ #include "field_effect.h" #include "gpu_regs.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "overworld.h" #include "palette.h" #include "random.h" @@ -59,7 +59,7 @@ typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite); extern const struct OamData gEventObjectBaseOam_32x32; -extern void sub_80AC3D0(void); +extern void SetWeatherScreenFadeOut(void); // this file's functions static void LaunchBattleTransitionTask(u8 transitionId); @@ -612,32 +612,32 @@ static const s16 gUnknown_085C8CF2[] = {4, 517, -1}; static const s16 *const gUnknown_085C8CF8[] = { - gUnknown_085C8C90, - gUnknown_085C8CA4, - gUnknown_085C8C98, - gUnknown_085C8C9E, - gUnknown_085C8CEA, - gUnknown_085C8CE4, - gUnknown_085C8CF2, - gUnknown_085C8CDE + gUnknown_085C8C90, + gUnknown_085C8CA4, + gUnknown_085C8C98, + gUnknown_085C8C9E, + gUnknown_085C8CEA, + gUnknown_085C8CE4, + gUnknown_085C8CF2, + gUnknown_085C8CDE }; static const s16 *const gUnknown_085C8D18[] = { - gUnknown_085C8CBC, - gUnknown_085C8CB0, - gUnknown_085C8CB6, - gUnknown_085C8CAA, - gUnknown_085C8CCA, - gUnknown_085C8CD8, - gUnknown_085C8CC4, - gUnknown_085C8CD2 + gUnknown_085C8CBC, + gUnknown_085C8CB0, + gUnknown_085C8CB6, + gUnknown_085C8CAA, + gUnknown_085C8CCA, + gUnknown_085C8CD8, + gUnknown_085C8CC4, + gUnknown_085C8CD2 }; static const s16 *const *const gUnknown_085C8D38[] = { - gUnknown_085C8CF8, - gUnknown_085C8D18 + gUnknown_085C8CF8, + gUnknown_085C8D18 }; static const TransitionStateFunc sPhase2_Groudon_Funcs[] = @@ -981,7 +981,7 @@ static void Task_BattleTransitionMain(u8 taskId) static bool8 Transition_Phase1(struct Task *task) { - sub_80AC3D0(); + SetWeatherScreenFadeOut(); CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); if (sPhase1_Tasks[task->tTransitionId] != NULL) { diff --git a/src/battle_tv.c b/src/battle_tv.c index 535046fd1..487b6baac 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -815,324 +815,324 @@ void TryPutLinkBattleTvShowOnAir(void) { asm_unified( "push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x20\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r1, 0\n\ - str r1, [sp, 0x4]\n\ - movs r2, 0\n\ - str r2, [sp, 0x8]\n\ - ldr r3, =0x00007fff\n\ - str r3, [sp, 0xC]\n\ - movs r4, 0\n\ - str r4, [sp, 0x10]\n\ - movs r7, 0\n\ - str r7, [sp, 0x14]\n\ - mov r8, r0\n\ - ldr r0, =gBattleStruct\n\ - ldr r1, [r0]\n\ - adds r0, r1, 0\n\ - adds r0, 0xB3\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _0817E42A\n\ - b _0817E670\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x20\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r1, 0\n\ + str r1, [sp, 0x4]\n\ + movs r2, 0\n\ + str r2, [sp, 0x8]\n\ + ldr r3, =0x00007fff\n\ + str r3, [sp, 0xC]\n\ + movs r4, 0\n\ + str r4, [sp, 0x10]\n\ + movs r7, 0\n\ + str r7, [sp, 0x14]\n\ + mov r8, r0\n\ + ldr r0, =gBattleStruct\n\ + ldr r1, [r0]\n\ + adds r0, r1, 0\n\ + adds r0, 0xB3\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _0817E42A\n\ + b _0817E670\n\ _0817E42A:\n\ - movs r2, 0xD2\n\ - lsls r2, 1\n\ - adds r2, r1\n\ - mov r10, r2\n\ - movs r6, 0\n\ + movs r2, 0xD2\n\ + lsls r2, 1\n\ + adds r2, r1\n\ + mov r10, r2\n\ + movs r6, 0\n\ _0817E434:\n\ - movs r0, 0x64\n\ - adds r4, r6, 0\n\ - muls r4, r0\n\ - ldr r0, =gPlayerParty\n\ - adds r0, r4, r0\n\ - movs r1, 0xB\n\ - movs r2, 0\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0817E454\n\ - mov r0, r8\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ + movs r0, 0x64\n\ + adds r4, r6, 0\n\ + muls r4, r0\n\ + ldr r0, =gPlayerParty\n\ + adds r0, r4, r0\n\ + movs r1, 0xB\n\ + movs r2, 0\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _0817E454\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ _0817E454:\n\ - ldr r5, =gEnemyParty\n\ - adds r0, r4, r5\n\ - movs r1, 0xB\n\ - movs r2, 0\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _0817E46A\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ + ldr r5, =gEnemyParty\n\ + adds r0, r4, r5\n\ + movs r1, 0xB\n\ + movs r2, 0\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _0817E46A\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ _0817E46A:\n\ - adds r6, 0x1\n\ - cmp r6, 0x5\n\ - ble _0817E434\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0817E47E\n\ - b _0817E670\n\ + adds r6, 0x1\n\ + cmp r6, 0x5\n\ + ble _0817E434\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r1, 0x2\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0817E47E\n\ + b _0817E670\n\ _0817E47E:\n\ - cmp r8, r7\n\ - beq _0817E484\n\ - b _0817E670\n\ + cmp r8, r7\n\ + beq _0817E484\n\ + b _0817E670\n\ _0817E484:\n\ - movs r6, 0\n\ - lsls r3, r6, 1\n\ - str r3, [sp, 0x18]\n\ - movs r4, 0x64\n\ - mov r8, r4\n\ + movs r6, 0\n\ + lsls r3, r6, 1\n\ + str r3, [sp, 0x18]\n\ + movs r4, 0x64\n\ + mov r8, r4\n\ _0817E48E:\n\ - mov r1, r8\n\ - muls r1, r6\n\ - ldr r0, =gPlayerParty\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - movs r2, 0\n\ - bl GetMonData\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - adds r0, r6, 0x1\n\ - mov r9, r0\n\ - cmp r7, 0\n\ - beq _0817E4EE\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - movs r2, 0\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0817E4EE\n\ - movs r4, 0\n\ - lsls r0, r6, 3\n\ - mov r2, r10\n\ - adds r1, r0, r2\n\ - movs r3, 0x3\n\ + mov r1, r8\n\ + muls r1, r6\n\ + ldr r0, =gPlayerParty\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + movs r2, 0\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + adds r0, r6, 0x1\n\ + mov r9, r0\n\ + cmp r7, 0\n\ + beq _0817E4EE\n\ + adds r0, r4, 0\n\ + movs r1, 0x2D\n\ + movs r2, 0\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + bne _0817E4EE\n\ + movs r4, 0\n\ + lsls r0, r6, 3\n\ + mov r2, r10\n\ + adds r1, r0, r2\n\ + movs r3, 0x3\n\ _0817E4C4:\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - ldrh r4, [r1]\n\ - adds r0, r4\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - adds r1, 0x2\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bge _0817E4C4\n\ - ldr r1, [sp, 0x8]\n\ - lsls r0, r1, 16\n\ - lsls r1, r4, 16\n\ - cmp r0, r1\n\ - bge _0817E4EE\n\ - lsls r0, r6, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x10]\n\ - lsrs r1, 16\n\ - str r1, [sp, 0x8]\n\ - str r7, [sp]\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + ldrh r4, [r1]\n\ + adds r0, r4\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + adds r1, 0x2\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0817E4C4\n\ + ldr r1, [sp, 0x8]\n\ + lsls r0, r1, 16\n\ + lsls r1, r4, 16\n\ + cmp r0, r1\n\ + bge _0817E4EE\n\ + lsls r0, r6, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x10]\n\ + lsrs r1, 16\n\ + str r1, [sp, 0x8]\n\ + str r7, [sp]\n\ _0817E4EE:\n\ - mov r0, r8\n\ - muls r0, r6\n\ - ldr r2, =gEnemyParty\n\ - adds r4, r0, r2\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - movs r2, 0\n\ - bl GetMonData\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - ldr r3, [sp, 0x8]\n\ - lsls r3, 16\n\ - str r3, [sp, 0x1C]\n\ - cmp r7, 0\n\ - beq _0817E5A0\n\ - adds r0, r4, 0\n\ - movs r1, 0x2D\n\ - movs r2, 0\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - bne _0817E5A0\n\ - movs r4, 0\n\ - ldr r0, [sp, 0xC]\n\ - lsls r2, r0, 16\n\ - movs r3, 0x1\n\ - lsls r1, r3, 1\n\ - adds r1, 0x1\n\ - lsls r1, 4\n\ - lsls r0, r6, 3\n\ - adds r0, r1\n\ - mov r3, r10\n\ - adds r1, r0, r3\n\ - movs r3, 0x3\n\ + mov r0, r8\n\ + muls r0, r6\n\ + ldr r2, =gEnemyParty\n\ + adds r4, r0, r2\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + movs r2, 0\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + ldr r3, [sp, 0x8]\n\ + lsls r3, 16\n\ + str r3, [sp, 0x1C]\n\ + cmp r7, 0\n\ + beq _0817E5A0\n\ + adds r0, r4, 0\n\ + movs r1, 0x2D\n\ + movs r2, 0\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + bne _0817E5A0\n\ + movs r4, 0\n\ + ldr r0, [sp, 0xC]\n\ + lsls r2, r0, 16\n\ + movs r3, 0x1\n\ + lsls r1, r3, 1\n\ + adds r1, 0x1\n\ + lsls r1, 4\n\ + lsls r0, r6, 3\n\ + adds r0, r1\n\ + mov r3, r10\n\ + adds r1, r0, r3\n\ + movs r3, 0x3\n\ _0817E534:\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - ldrh r4, [r1]\n\ - adds r0, r4\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - adds r1, 0x2\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bge _0817E534\n\ - asrs r1, r2, 16\n\ - lsls r5, r4, 16\n\ - asrs r0, r5, 16\n\ - cmp r1, r0\n\ - bne _0817E590\n\ - mov r0, r8\n\ - muls r0, r6\n\ - ldr r1, =gEnemyParty\n\ - adds r0, r1\n\ - movs r1, 0x19\n\ - movs r2, 0\n\ - bl GetMonData\n\ - adds r4, r0, 0\n\ - ldr r2, [sp, 0x14]\n\ - mov r0, r8\n\ - muls r0, r2\n\ - ldr r3, =gEnemyParty\n\ - adds r0, r3\n\ - movs r1, 0x19\n\ - movs r2, 0\n\ - bl GetMonData\n\ - cmp r4, r0\n\ - bls _0817E5A0\n\ - b _0817E594\n\ - .pool\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + ldrh r4, [r1]\n\ + adds r0, r4\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + adds r1, 0x2\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0817E534\n\ + asrs r1, r2, 16\n\ + lsls r5, r4, 16\n\ + asrs r0, r5, 16\n\ + cmp r1, r0\n\ + bne _0817E590\n\ + mov r0, r8\n\ + muls r0, r6\n\ + ldr r1, =gEnemyParty\n\ + adds r0, r1\n\ + movs r1, 0x19\n\ + movs r2, 0\n\ + bl GetMonData\n\ + adds r4, r0, 0\n\ + ldr r2, [sp, 0x14]\n\ + mov r0, r8\n\ + muls r0, r2\n\ + ldr r3, =gEnemyParty\n\ + adds r0, r3\n\ + movs r1, 0x19\n\ + movs r2, 0\n\ + bl GetMonData\n\ + cmp r4, r0\n\ + bls _0817E5A0\n\ + b _0817E594\n\ + .pool\n\ _0817E590:\n\ - cmp r1, r0\n\ - ble _0817E5A0\n\ + cmp r1, r0\n\ + ble _0817E5A0\n\ _0817E594:\n\ - lsls r0, r6, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x14]\n\ - lsrs r5, 16\n\ - str r5, [sp, 0xC]\n\ - str r7, [sp, 0x4]\n\ + lsls r0, r6, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x14]\n\ + lsrs r5, 16\n\ + str r5, [sp, 0xC]\n\ + str r7, [sp, 0x4]\n\ _0817E5A0:\n\ - mov r6, r9\n\ - cmp r6, 0x5\n\ - bgt _0817E5A8\n\ - b _0817E48E\n\ + mov r6, r9\n\ + cmp r6, 0x5\n\ + bgt _0817E5A8\n\ + b _0817E48E\n\ _0817E5A8:\n\ - movs r4, 0\n\ - movs r6, 0\n\ - movs r3, 0\n\ - ldr r5, =gPlayerParty\n\ - ldr r7, [sp, 0x10]\n\ - lsls r0, r7, 3\n\ - mov r1, r10\n\ - adds r2, r0, r1\n\ + movs r4, 0\n\ + movs r6, 0\n\ + movs r3, 0\n\ + ldr r5, =gPlayerParty\n\ + ldr r7, [sp, 0x10]\n\ + lsls r0, r7, 3\n\ + mov r1, r10\n\ + adds r2, r0, r1\n\ _0817E5B8:\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - movs r7, 0\n\ - ldrsh r1, [r2, r7]\n\ - cmp r0, r1\n\ - bge _0817E5C8\n\ - ldrh r4, [r2]\n\ - adds r6, r3, 0\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + movs r7, 0\n\ + ldrsh r1, [r2, r7]\n\ + cmp r0, r1\n\ + bge _0817E5C8\n\ + ldrh r4, [r2]\n\ + adds r6, r3, 0\n\ _0817E5C8:\n\ - adds r2, 0x2\n\ - adds r3, 0x1\n\ - cmp r3, 0x3\n\ - ble _0817E5B8\n\ - movs r0, 0x64\n\ - ldr r1, [sp, 0x10]\n\ - muls r0, r1\n\ - adds r0, r5\n\ - adds r1, r6, 0\n\ - adds r1, 0xD\n\ - movs r2, 0\n\ - bl GetMonData\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - ldr r2, [sp, 0x1C]\n\ - cmp r2, 0\n\ - beq _0817E670\n\ - cmp r4, 0\n\ - beq _0817E670\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0817E65C\n\ - ldr r3, [sp, 0x10]\n\ - cmp r3, 0x2\n\ - bhi _0817E620\n\ - ldr r0, =gBattleScripting\n\ - adds r0, 0x25\n\ - ldrb r0, [r0]\n\ - bl GetLinkTrainerFlankId\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - beq _0817E630\n\ - b _0817E670\n\ - .pool\n\ + adds r2, 0x2\n\ + adds r3, 0x1\n\ + cmp r3, 0x3\n\ + ble _0817E5B8\n\ + movs r0, 0x64\n\ + ldr r1, [sp, 0x10]\n\ + muls r0, r1\n\ + adds r0, r5\n\ + adds r1, r6, 0\n\ + adds r1, 0xD\n\ + movs r2, 0\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r2, [sp, 0x1C]\n\ + cmp r2, 0\n\ + beq _0817E670\n\ + cmp r4, 0\n\ + beq _0817E670\n\ + ldr r0, =gBattleTypeFlags\n\ + ldr r0, [r0]\n\ + movs r1, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0817E65C\n\ + ldr r3, [sp, 0x10]\n\ + cmp r3, 0x2\n\ + bhi _0817E620\n\ + ldr r0, =gBattleScripting\n\ + adds r0, 0x25\n\ + ldrb r0, [r0]\n\ + bl GetLinkTrainerFlankId\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _0817E630\n\ + b _0817E670\n\ + .pool\n\ _0817E620:\n\ - ldr r0, =gBattleScripting\n\ - adds r0, 0x25\n\ - ldrb r0, [r0]\n\ - bl GetLinkTrainerFlankId\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - beq _0817E670\n\ + ldr r0, =gBattleScripting\n\ + adds r0, 0x25\n\ + ldrb r0, [r0]\n\ + bl GetLinkTrainerFlankId\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _0817E670\n\ _0817E630:\n\ - movs r3, 0\n\ - ldr r7, [sp, 0x14]\n\ - cmp r7, 0x2\n\ - bls _0817E63A\n\ - movs r3, 0x1\n\ + movs r3, 0\n\ + ldr r7, [sp, 0x14]\n\ + cmp r7, 0x2\n\ + bls _0817E63A\n\ + movs r3, 0x1\n\ _0817E63A:\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - ldr r1, =gBattleScripting\n\ - adds r1, 0x25\n\ - ldrb r1, [r1]\n\ - bl sub_806EF84\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r1, r4, 0\n\ - ldr r2, [sp]\n\ - ldr r3, [sp, 0x4]\n\ - bl PutBattleUpdateOnTheAir\n\ - b _0817E670\n\ - .pool\n\ + lsls r0, r3, 24\n\ + lsrs r0, 24\n\ + ldr r1, =gBattleScripting\n\ + adds r1, 0x25\n\ + ldrb r1, [r1]\n\ + bl sub_806EF84\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r1, r4, 0\n\ + ldr r2, [sp]\n\ + ldr r3, [sp, 0x4]\n\ + bl PutBattleUpdateOnTheAir\n\ + b _0817E670\n\ + .pool\n\ _0817E65C:\n\ - ldr r0, =gBattleScripting\n\ - adds r0, 0x25\n\ - ldrb r1, [r0]\n\ - movs r0, 0x1\n\ - eors r0, r1\n\ - adds r1, r4, 0\n\ - ldr r2, [sp]\n\ - ldr r3, [sp, 0x4]\n\ - bl PutBattleUpdateOnTheAir\n\ + ldr r0, =gBattleScripting\n\ + adds r0, 0x25\n\ + ldrb r1, [r0]\n\ + movs r0, 0x1\n\ + eors r0, r1\n\ + adds r1, r4, 0\n\ + ldr r2, [sp]\n\ + ldr r3, [sp, 0x4]\n\ + bl PutBattleUpdateOnTheAir\n\ _0817E670:\n\ - add sp, 0x20\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"); + add sp, 0x20\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"); } #endif diff --git a/src/battle_util.c b/src/battle_util.c index 251a545c9..2ddd4f550 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -17,13 +17,13 @@ #include "string_util.h" #include "battle_message.h" #include "constants/battle_string_ids.h" +#include "constants/weather.h" #include "battle_ai_script_commands.h" #include "battle_controllers.h" #include "event_data.h" #include "link.h" #include "berry.h" - -extern u8 weather_get_current(void); +#include "field_weather.h" // rom const data static const u16 sSoundMovesTable[] = @@ -1192,7 +1192,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) // fall through case 2: if ((gBattleTypeFlags & BATTLE_TYPE_ARENA) - && gBattleStruct->field_DA == 2 + && gBattleStruct->arenaTurnCounter == 2 && gBattleMons[0].hp != 0 && gBattleMons[1].hp != 0) { s32 i; @@ -1238,7 +1238,7 @@ bool8 HandleFaintedMonActions(void) { gBattlerFainted = gBattlerTarget = gBattleStruct->faintedActionsBattlerId; if (gBattleMons[gBattleStruct->faintedActionsBattlerId].hp == 0 - && !(gBattleStruct->field_DF & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBattlerId]]) + && !(gBattleStruct->givenExpMons & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBattlerId]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBattlerId])) { BattleScriptExecute(BattleScript_GiveExp); @@ -1827,11 +1827,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITYEFFECT_SWITCH_IN_WEATHER: if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) { - switch (weather_get_current()) + switch (GetCurrentWeather()) { - case 3: - case 5: - case 13: + case WEATHER_RAIN_LIGHT: + case WEATHER_RAIN_MED: + case WEATHER_RAIN_HEAVY: if (!(gBattleWeather & WEATHER_RAIN_ANY)) { gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); @@ -1840,7 +1840,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA effect++; } break; - case 8: + case WEATHER_SANDSTORM: if (!(gBattleWeather & WEATHER_SANDSTORM_ANY)) { gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); @@ -1849,7 +1849,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA effect++; } break; - case 12: + case WEATHER_DROUGHT: if (!(gBattleWeather & WEATHER_SUN_ANY)) { gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); @@ -1862,7 +1862,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } if (effect) { - gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); + gBattleCommunication[MULTISTRING_CHOOSER] = GetCurrentWeather(); BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts); } break; diff --git a/src/battle_util2.c b/src/battle_util2.c index d3cbfbb01..70c722298 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_controllers.h" -#include "malloc.h" +#include "alloc.h" #include "pokemon.h" #include "event_data.h" #include "constants/abilities.h" diff --git a/src/berry.c b/src/berry.c index 9f08165b8..24ed370c3 100644 --- a/src/berry.c +++ b/src/berry.c @@ -32,7 +32,7 @@ static u16 GetStageDurationByBerryType(u8); //.rodata static const u8 sBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers."); static const u8 sBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy."); -static const u8 sBerryDescriptionPart1_Chesto[] = _("The BERRY’s thick skin and fruit are"); +static const u8 sBerryDescriptionPart1_Chesto[] = _("The BERRY's thick skin and fruit are"); static const u8 sBerryDescriptionPart2_Chesto[] = _("very tough. It is dry-tasting all over."); static const u8 sBerryDescriptionPart1_Pecha[] = _("Very sweet and delicious."); static const u8 sBerryDescriptionPart2_Pecha[] = _("Also very tender - handle with care."); @@ -44,7 +44,7 @@ static const u8 sBerryDescriptionPart1_Leppa[] = _("Grows slower than CHERI and static const u8 sBerryDescriptionPart2_Leppa[] = _("The smaller the BERRY, the tastier."); static const u8 sBerryDescriptionPart1_Oran[] = _("A peculiar BERRY with a mix of flavors."); static const u8 sBerryDescriptionPart2_Oran[] = _("BERRIES grow in half a day."); -static const u8 sBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRY’s color"); +static const u8 sBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRY's color"); static const u8 sBerryDescriptionPart2_Persim[] = _("grows vivid when exposed to the sun."); static const u8 sBerryDescriptionPart1_Lum[] = _("Slow to grow. If raised with loving"); static const u8 sBerryDescriptionPart2_Lum[] = _("care, it may grow two BERRIES."); @@ -113,7 +113,7 @@ static const u8 sBerryDescriptionPart2_Apicot[] = _("what may happen or how it c static const u8 sBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY."); static const u8 sBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy."); static const u8 sBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the"); -static const u8 sBerryDescriptionPart2_Starf[] = _("world’s edge. Considered a mirage."); +static const u8 sBerryDescriptionPart2_Starf[] = _("world's edge. Considered a mirage."); static const u8 sBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY."); static const u8 sBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars."); diff --git a/src/berry_blender.c b/src/berry_blender.c index 7320e905f..1ffdb1c38 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -12,7 +12,7 @@ #include "bg.h" #include "palette.h" #include "decompress.h" -#include "malloc.h" +#include "alloc.h" #include "gpu_regs.h" #include "text.h" #include "text_window.h" @@ -260,10 +260,10 @@ static const u8 sText_PressAToStart[] = _("Press the A Button to start."); static const u8 sText_PleaseWaitAWhile[] = _("Please wait a while."); static const u8 sText_CommunicationStandby[] = _("Communication standby…"); static const u8 sText_WouldLikeToBlendAnotherBerry[] = _("Would you like to blend another BERRY?"); -static const u8 sText_RunOutOfBerriesForBlending[] = _("You’ve run out of BERRIES for\nblending in the BERRY BLENDER.\p"); +static const u8 sText_RunOutOfBerriesForBlending[] = _("You've run out of BERRIES for\nblending in the BERRY BLENDER.\p"); static const u8 sText_YourPokeblockCaseIsFull[] = _("Your {POKEBLOCK} CASE is full.\p"); static const u8 sText_HasNoBerriesToPut[] = _(" has no BERRIES to put in\nthe BERRY BLENDER."); -static const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("’s {POKEBLOCK} CASE is full.\p"); +static const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("'s {POKEBLOCK} CASE is full.\p"); static const u8 sText_BlendingResults[] = _("RESULTS OF BLENDING"); static const u8 sText_BerryUsed[] = _("BERRY USED"); static const u8 sText_SpaceBerry[] = _(" BERRY"); diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index a90906d05..d87509e10 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -1,7 +1,7 @@ #include "global.h" #include "gpu_regs.h" #include "multiboot.h" -#include "malloc.h" +#include "alloc.h" #include "bg.h" #include "graphics.h" #include "main.h" diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 39927ab99..22f99a426 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -21,7 +21,7 @@ #include "string_util.h" #include "strings.h" #include "bg.h" -#include "malloc.h" +#include "alloc.h" #include "scanline_effect.h" #include "gpu_regs.h" #include "graphics.h" diff --git a/src/birch_pc.c b/src/birch_pc.c index 3148832be..5179b1920 100644 --- a/src/birch_pc.c +++ b/src/birch_pc.c @@ -66,20 +66,20 @@ const u8 *GetPokedexRatingText(u16 count) return gBirchDexRatingText_LessThan200; if (count == 200) { - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1) - || GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200. + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), FLAG_GET_CAUGHT) + || GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), FLAG_GET_CAUGHT)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200. return gBirchDexRatingText_LessThan200; return gBirchDexRatingText_DexCompleted; } - if (count == 201) + if (count == HOENN_DEX_COUNT - 1) { - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1) - && GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // If both of these flags are enabled, it means the actual count is less than 200. + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), FLAG_GET_CAUGHT) + && GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), FLAG_GET_CAUGHT)) // If both of these flags are enabled, it means the actual count is less than 200. return gBirchDexRatingText_LessThan200; return gBirchDexRatingText_DexCompleted; } - if (count == 202) - return gBirchDexRatingText_DexCompleted; // Hoenn dex is considered complete, even though the hoenn dex count is 210. + if (count == HOENN_DEX_COUNT) + return gBirchDexRatingText_DexCompleted; return gBirchDexRatingText_LessThan10; } diff --git a/src/cable_car.c b/src/cable_car.c new file mode 100755 index 000000000..00606c905 --- /dev/null +++ b/src/cable_car.c @@ -0,0 +1,1006 @@ +#include "global.h" +#include "bg.h" +#include "decompress.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "field_weather.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "alloc.h" +#include "main.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "random.h" +#include "scanline_effect.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "constants/event_objects.h" +#include "constants/rgb.h" +#include "constants/songs.h" +#include "constants/weather.h" + +struct CableCar +{ + u8 taskId; + u8 state; + u8 weather; + u16 unk4; + u16 timer; + u8 bg0HorizontalOffset; + u8 bg0VerticalOffset; + u8 fillerA[0x2]; + u8 bg1HorizontalOffset; + u8 bg1VerticalOffset; + u8 fillerE[0x6]; + u8 bg3HorizontalOffset; + u8 bg3VerticalOffset; + u8 filler16[0x2]; + u8 unk18; + u8 unk19; + u8 unk1A; + u8 unk1B; + u8 unk1C; + u8 unk1D; + u8 unk1E; + u8 unk1F; + u8 unk20; + u16 unk22[9][12]; + u8 fillerFA[0x2]; + /*0x00FC*/ u16 bgTilemapBuffers[4][0x800]; + /*0x40FC*/ u16 *mtChimneyTilemap; + /*0x4100*/ u16 *treeTilemap; + /*0x4104*/ u16 *mountainTilemap; + /*0x4108*/ const u16 *pylonHookTilemapEntries; + /*0x410C*/ u8 *pylonStemTilemap; +}; + +static EWRAM_DATA struct CableCar *sCableCar = NULL; +EWRAM_DATA u8 gUnknown_0203ABB0 = 0; +EWRAM_DATA u8 gUnknown_0203ABB1 = 0; +EWRAM_DATA u8 gUnknown_0203ABB2 = 0; +EWRAM_DATA u8 gUnknown_0203ABB3 = 0; +EWRAM_DATA u8 gUnknown_0203ABB4 = 0; +EWRAM_DATA u8 gUnknown_0203ABB5 = 0; + +static void CableCarMainCallback_Setup(void); +static void sub_8150B6C(u8); +static void LoadCableCarSprites(void); +static void sub_81514C8(u8); +static void sub_81503E4(u8); +static void sub_8150550(u8); +static void sub_8150664(u8); +static void CableCarVblankCallback(void); +static void CableCarMainCallback_Run(void); +static void sub_815115C(void); +static void sub_81511B8(void); +static void sub_8150868(struct Sprite *); +static void nullsub_58(struct Sprite *); +static void sub_8151214(void); +static void sub_8151388(void); + +const struct BgTemplate gCableCarBgTemplates[4] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, +}; + +const u8 gCableCarMtChimneyTilemap[] = INCBIN_U8("graphics/misc/cable_car_mt_chimney_map.bin.lz"); +const u8 gCableCarTreeTilemap[] = INCBIN_U8("graphics/misc/cable_car_tree_map.bin.lz"); +const u8 gCableCarMountainTilemap[] = INCBIN_U8("graphics/misc/cable_car_mountain_map.bin.lz"); + +const u16 gCableCarPylonHookTilemapEntries[] = { + 0x3000, + 0x3001, + 0x3002, + 0x3003, + 0x3004, + 0x3005, + 0x3006, + 0x3007, + 0x3008, + 0x3009, +}; + +const u8 gCableCarPylonStemTilemap[] = INCBIN_U8("graphics/misc/cable_car_pylon_stem_map.bin.lz"); + +const struct CompressedSpriteSheet gUnknown_085CDB54[] = { + { gCableCar_Gfx, 0x800, 1 }, + { gCableCarDoor_Gfx, 0x40, 2 }, + { gCableCarCord_Gfx, 0x80, 3 }, + { }, +}; + +const struct SpritePalette gUnknown_085CDB74[] = { + { gCableCar_Pal, 1 }, + { } +}; + +const struct OamData gOamData_85CDB84 = { + .affineMode = ST_OAM_AFFINE_DOUBLE, + .size = 3, + .priority = 2 +}; + +const struct OamData gOamData_85CDB8C = { + .affineMode = ST_OAM_AFFINE_DOUBLE, + .shape = ST_OAM_H_RECTANGLE, + .priority = 2 +}; + +const struct OamData gOamData_85CDB94 = { + .affineMode = ST_OAM_AFFINE_DOUBLE, + .size = 1, + .priority = 2 +}; + +const struct SpriteTemplate gSpriteTemplate_85CDB9C[] = +{ + { + .tileTag = 1, + .paletteTag = 1, + .oam = &gOamData_85CDB84, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8150868, + }, + { + .tileTag = 2, + .paletteTag = 1, + .oam = &gOamData_85CDB8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8150868, + }, +}; + +const struct SpriteTemplate gSpriteTemplate_85CDBCC = { + .tileTag = 3, + .paletteTag = 1, + .oam = &gOamData_85CDB94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_58, +}; + +static void CableCarTask1(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(CableCarMainCallback_Setup); + DestroyTask(taskId); + } +} + +void CableCar(void) +{ + ScriptContext2_Enable(); + CreateTask(CableCarTask1, 1); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); +} + +static void CableCarMainCallback_Setup(void) +{ + u16 imebak; + u8 i = 0; + int sizeOut = 0; + + switch (gMain.state) + { + case 0: + default: + SetVBlankCallback(NULL); + sub_8150B6C(0); + ScanlineEffect_Stop(); + DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); + DmaFill32Defvars(3, 0, (void *)OAM, OAM_SIZE); + DmaFill16Defvars(3, 0, (void *)PLTT, PLTT_SIZE); + sCableCar = AllocZeroed(sizeof(*sCableCar)); + gMain.state++; + break; + case 1: + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + ResetPaletteFade(); + reset_temp_tile_data_buffers(); + StartWeather(); + for (i = 0; i < 20; i++) + gWeatherPtr->sprites.s2.ashSprites[i] = NULL; + + InitMapMusic(); + ResetMapMusic(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gCableCarBgTemplates, ARRAY_COUNT(gCableCarBgTemplates)); + SetBgTilemapBuffer(0, sCableCar->bgTilemapBuffers[0]); + SetBgTilemapBuffer(1, sCableCar->bgTilemapBuffers[1]); + SetBgTilemapBuffer(2, sCableCar->bgTilemapBuffers[2]); + SetBgTilemapBuffer(3, sCableCar->bgTilemapBuffers[3]); + gSpriteCoordOffsetX = gSpriteCoordOffsetY = 0; + gMain.state++; + break; + case 2: + for (i = 0; i < 3; i++) + LoadCompressedObjectPic(&gUnknown_085CDB54[i]); + + LoadSpritePalettes(gUnknown_085CDB74); + sCableCar->mtChimneyTilemap = malloc_and_decompress(gCableCarMtChimneyTilemap, &sizeOut); + sCableCar->treeTilemap = malloc_and_decompress(gCableCarTreeTilemap, &sizeOut); + sCableCar->mountainTilemap = malloc_and_decompress(gCableCarMountainTilemap, &sizeOut); + sCableCar->pylonStemTilemap = malloc_and_decompress(gCableCarPylonStemTilemap, &sizeOut); + sCableCar->pylonHookTilemapEntries = gCableCarPylonHookTilemapEntries; + decompress_and_copy_tile_data_to_vram(0, gUnknown_08DBA5B8, 0, 0, 0); + gMain.state++; + break; + case 3: + if (!free_temp_tile_data_buffers_if_possible()) + { + LoadPalette(gUnknown_08DBA518, 0, 0x80); + gMain.state++; + } + break; + case 4: + LoadCableCarSprites(); + RunTasks(); + gMain.state++; + break; + case 5: + if (sCableCar->weather == WEATHER_ASH) + { + gMain.state++; + } + else if (gWeatherPtr->sprites.s2.ashSprites[0]) + { + for (i = 0; i < 20; i++) + { + if (gWeatherPtr->sprites.s2.ashSprites[i]) + gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0; + } + + gMain.state++; + } + break; + case 6: + CopyToBgTilemapBufferRect_ChangePalette(1, sCableCar->treeTilemap, 0, 17, 32, 15, 17); + CopyToBgTilemapBufferRect_ChangePalette(2, sCableCar->mountainTilemap, 0, 0, 30, 20, 17); + CopyToBgTilemapBufferRect_ChangePalette(3, sCableCar->pylonHookTilemapEntries, 0, 0, 5, 2, 17); + CopyToBgTilemapBufferRect_ChangePalette(3, sCableCar->pylonStemTilemap, 0, 2, 2, 20, 17); + gMain.state++; + break; + case 7: + sub_81514C8(gSpecialVar_0x8004); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x48, 0, 14, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x6C, 12, 17, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x90, 24, 20, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x0, 0, 17, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x24, 0, 20, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x0, 12, 20, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x24, 12, 23, 12, 3, 17); + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x0, 24, 23, 12, 3, 17); + gMain.state++; + break; + case 8: + BeginNormalPaletteFade(0xFFFFFFFF, 3, 16, 0, RGB(0, 0, 0)); + FadeInNewBGM(MUS_ROPEWAY, 1); + sub_8150B6C(1); + gMain.state++; + break; + case 9: + imebak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imebak; + SetVBlankCallback(CableCarVblankCallback); + SetMainCallback2(CableCarMainCallback_Run); + CreateTask(sub_81503E4, 0); + if (gSpecialVar_0x8004 == 0) + sCableCar->taskId = CreateTask(sub_8150550, 1); + else + sCableCar->taskId = CreateTask(sub_8150664, 1); + break; + } +} + +static void CableCarMainCallback_Run(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + MapMusicMain(); +} + +static void CleanupCableCar(void) +{ + u8 i = 0; + + HideBg(0); + HideBg(1); + HideBg(2); + HideBg(3); + sub_8150B6C(0); + gSpriteCoordOffsetX = 0; + sub_80AB130(WEATHER_NONE); + for (i = 0; i < 20; i++) + gWeatherPtr->sprites.s2.ashSprites[i] = NULL; + + ResetTasks(); + ResetSpriteData(); + ResetPaletteFade(); + UnsetBgTilemapBuffer(0); + UnsetBgTilemapBuffer(1); + UnsetBgTilemapBuffer(2); + UnsetBgTilemapBuffer(3); + ResetBgsAndClearDma3BusyFlags(0); + sCableCar->pylonHookTilemapEntries = NULL; + FREE_AND_SET_NULL(sCableCar->pylonStemTilemap); + FREE_AND_SET_NULL(sCableCar->mountainTilemap); + FREE_AND_SET_NULL(sCableCar->treeTilemap); + FREE_AND_SET_NULL(sCableCar->mtChimneyTilemap); + FREE_AND_SET_NULL(sCableCar); + DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); + DmaFill32Defvars(3, 0, (void *)OAM, OAM_SIZE); + DmaFill16Defvars(3, 0, (void *)PLTT, PLTT_SIZE); + WarpIntoMap(); + gFieldCallback = NULL; + SetMainCallback2(CB2_LoadMap); +} + +static void sub_81503E4(u8 taskId) +{ + u8 i = 0; + + sCableCar->timer++; + switch (sCableCar->state) + { + case 0: + if (sCableCar->timer == sCableCar->unk4) + { + ChangeWeather(sCableCar->weather); + sCableCar->state = 1; + } + break; + case 1: + switch (sCableCar->weather) + { + case WEATHER_ASH: + if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL && gWeatherPtr->sprites.s2.ashSprites[0]->oam.priority != 0) + { + for (; i < 20; i++) + { + if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL) + { + gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0; + } + } + sCableCar->state = 2; + } + break; + case WEATHER_SUNNY: + if (gWeatherPtr->currWeather == WEATHER_SUNNY) + { + sCableCar->state = 2; + } + else if (sCableCar->timer >= sCableCar->unk4 + 8) + { + for (; i < 20; i++) + { + if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL) + { + gWeatherPtr->sprites.s2.ashSprites[i]->invisible ^= TRUE; + } + } + } + break; + } + break; + case 2: + if (sCableCar->timer == 570) + { + sCableCar->state = 3; + BeginNormalPaletteFade(0xFFFFFFFF, 3, 0, 16, RGB(0, 0, 0)); + FadeOutBGM(4); + } + break; + case 3: + if (!gPaletteFade.active) + { + sCableCar->state = 0xFF; + } + break; + case 0xFF: + SetVBlankCallback(NULL); + DestroyTask(taskId); + DestroyTask(sCableCar->taskId); + SetMainCallback2(CleanupCableCar); + break; + } +} + +static void sub_8150550(u8 taskId) +{ + if (sCableCar->state != 0xFF) + { + sCableCar->bg3HorizontalOffset--; + if ((sCableCar->timer % 2) == 0) + sCableCar->bg3VerticalOffset--; + + if ((sCableCar->timer % 8) == 0) + { + sCableCar->bg1HorizontalOffset--; + sCableCar->bg1VerticalOffset--; + } + + switch (sCableCar->bg3HorizontalOffset) + { + case 175: + FillBgTilemapBufferRect(3, 0, 0, 22, 2, 10, 17); + break; + case 40: + FillBgTilemapBufferRect(3, 0, 3, 0, 2, 2, 17); + break; + case 32: + FillBgTilemapBufferRect(3, 0, 2, 0, 1, 2, 17); + break; + case 16: + CopyToBgTilemapBufferRect_ChangePalette(3, sCableCar->pylonHookTilemapEntries, 0, 0, 5, 2, 17); + CopyToBgTilemapBufferRect_ChangePalette(3, sCableCar->pylonStemTilemap, 0, 2, 2, 30, 17); + sCableCar->bg3VerticalOffset = 64; + break; + } + } + + sub_815115C(); + gSpriteCoordOffsetX = (gSpriteCoordOffsetX + 1) % 128; +} + +static void sub_8150664(u8 taskId) +{ + if (sCableCar->state != 0xFF) + { + sCableCar->bg3HorizontalOffset++; + if ((sCableCar->timer % 2) == 0) + sCableCar->bg3VerticalOffset++; + + if ((sCableCar->timer % 8) == 0) + { + sCableCar->bg1HorizontalOffset++; + sCableCar->bg1VerticalOffset++; + } + + switch (sCableCar->bg3HorizontalOffset) + { + case 176: + CopyToBgTilemapBufferRect_ChangePalette(3, sCableCar->pylonStemTilemap, 0, 2, 2, 30, 17); + break; + case 16: + FillBgTilemapBufferRect(3, 0, 2, 0, 3, 2, 17); + FillBgTilemapBufferRect(3, 0, 0, 22, 2, 10, 17); + sCableCar->bg3VerticalOffset = 192; + break; + case 32: + FillBgTilemapBufferRect(3, sCableCar->pylonHookTilemapEntries[2], 2, 0, 1, 1, 17); + FillBgTilemapBufferRect(3, sCableCar->pylonHookTilemapEntries[3], 3, 0, 1, 1, 17); + FillBgTilemapBufferRect(3, sCableCar->pylonHookTilemapEntries[7], 2, 1, 1, 1, 17); + FillBgTilemapBufferRect(3, sCableCar->pylonHookTilemapEntries[8], 3, 1, 1, 1, 17); + break; + case 40: + FillBgTilemapBufferRect(3, sCableCar->pylonHookTilemapEntries[4], 4, 0, 1, 1, 17); + FillBgTilemapBufferRect(3, sCableCar->pylonHookTilemapEntries[9], 4, 1, 1, 1, 17); + break; + } + } + + sub_81511B8(); + if (sCableCar->timer < sCableCar->unk4) + gSpriteCoordOffsetX = (gSpriteCoordOffsetX + 247) % 248; + else + gWeatherPtr->unknown_6FC = (gWeatherPtr->unknown_6FC + 247) % 248; +} + +static void CableCarVblankCallback(void) +{ + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(3); + SetGpuReg(REG_OFFSET_BG3HOFS, sCableCar->bg3HorizontalOffset); + SetGpuReg(REG_OFFSET_BG3VOFS, sCableCar->bg3VerticalOffset); + SetGpuReg(REG_OFFSET_BG1HOFS, sCableCar->bg1HorizontalOffset); + SetGpuReg(REG_OFFSET_BG1VOFS, sCableCar->bg1VerticalOffset); + SetGpuReg(REG_OFFSET_BG0HOFS, sCableCar->bg0HorizontalOffset); + SetGpuReg(REG_OFFSET_BG0VOFS, sCableCar->bg0VerticalOffset); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void nullsub_58(struct Sprite *sprite) +{ +} + +static void sub_8150868(struct Sprite *sprite) +{ + if (sCableCar->state != 0xFF) + { + if (gSpecialVar_0x8004 == 0) + { + sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + } + else + { + sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + } + } +} + +void sub_8150948(struct Sprite *sprite) +{ + if (sCableCar->state != 255) + { + if (!gSpecialVar_0x8004) + { + sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + } + else + { + sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(sCableCar->timer)); + sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(sCableCar->timer)); + } + + switch (sprite->data[2]) + { + case 0: + sprite->pos2.y = 17; + if (sprite->data[3] ++ > 9) + { + sprite->data[3] = 0; + sprite->data[2] ++; + } + break; + default: + sprite->pos2.y = 16; + if (sprite->data[3] ++ > 9) + { + sprite->data[3] = 0; + sprite->data[2] = 0; + } + break; + } + } +} + +static void sub_8150A68(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + sprite->pos1.x += 2 * sprite->centerToCornerVecX; + sprite->pos1.y += 16 + sprite->centerToCornerVecY; + } + + if (++sprite->data[0] >= sprite->data[2]) + { + switch (sprite->data[1]) + { + case 0: + sprite->pos1.x++; + if ((sprite->data[0] % 4) == 0) + sprite->pos1.y++; + break; + case 1: + if ((sprite->data[0] % 2) != 0) + { + sprite->pos1.x++; + if ((sprite->pos1.x % 4) == 0) + sprite->pos1.y++; + } + break; + } + + if (sprite->pos1.y > 160) + DestroySprite(sprite); + } +} + +static void sub_8150AF4(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + sprite->pos1.y += 16 + sprite->centerToCornerVecY; + + if (++sprite->data[0] >= sprite->data[2]) + { + switch (sprite->data[1]) + { + case 0: + sprite->pos1.x--; + if ((sprite->data[0] % 4) == 0) + sprite->pos1.y--; + break; + case 1: + if ((sprite->data[0] % 2) != 0) + { + sprite->pos1.x--; + if ((sprite->pos1.x % 4) == 0) + sprite->pos1.y--; + } + break; + } + + if (sprite->pos1.y < 80) + DestroySprite(sprite); + } +} + +static void sub_8150B6C(bool8 which) +{ + switch (which) + { + case FALSE: + default: + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + break; + case TRUE: + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN1H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WIN1V, 0); + if (gSpecialVar_0x8004 == 0) + { + sCableCar->bg3HorizontalOffset = 176; + sCableCar->bg3VerticalOffset = 16; + sCableCar->bg1HorizontalOffset = 0; + sCableCar->bg1VerticalOffset = 80; + sCableCar->bg0VerticalOffset = 0; + sCableCar->bg0VerticalOffset = 0; + } + else + { + sCableCar->bg3HorizontalOffset = 96; + sCableCar->bg3VerticalOffset = 232; + sCableCar->bg1HorizontalOffset = 0; + sCableCar->bg1VerticalOffset = 4; + sCableCar->bg0VerticalOffset = 0; + sCableCar->bg0VerticalOffset = 0; + } + + SetGpuReg(REG_OFFSET_BG3HOFS, sCableCar->bg3HorizontalOffset); + SetGpuReg(REG_OFFSET_BG3VOFS, sCableCar->bg3VerticalOffset); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, sCableCar->bg1HorizontalOffset); + SetGpuReg(REG_OFFSET_BG1VOFS, sCableCar->bg1VerticalOffset); + SetGpuReg(REG_OFFSET_BG0HOFS, sCableCar->bg0HorizontalOffset); + SetGpuReg(REG_OFFSET_BG0VOFS, sCableCar->bg0VerticalOffset); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL); + break; + } +} + +static void LoadCableCarSprites(void) +{ + u8 spriteId; + u8 i; + + u8 playerGraphicsIds[2] = { + EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL, + EVENT_OBJ_GFX_RIVAL_MAY_NORMAL + }; + u16 rval = Random(); + u8 hikerGraphicsIds[4] = { + EVENT_OBJ_GFX_HIKER, + EVENT_OBJ_GFX_CAMPER, + EVENT_OBJ_GFX_PICNICKER, + EVENT_OBJ_GFX_ZIGZAGOON_1 + }; + s16 hikerCoords[2][2] = { + { 0, 80 }, + { 240, 146 } + }; + u8 hikerMovementDelayTable[4] = { + 0, + 60, + 120, + 170 + }; + void (*callbacks[2])(struct Sprite *) = { + sub_8150A68, + sub_8150AF4 + }; + + switch (gSpecialVar_0x8004) + { + case 0: + default: + spriteId = AddPseudoEventObject(playerGraphicsIds[gSaveBlock2Ptr->playerGender], sub_8150948, 200, 73, 102); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].pos2.x = 8; + gSprites[spriteId].pos2.y = 16; + gSprites[spriteId].data[0] = 0xc8; + gSprites[spriteId].data[1] = 0x49; + } + spriteId = CreateSprite(&gSpriteTemplate_85CDB9C[0], 176, 43, 0x67); + gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 32; + gSprites[spriteId].data[0] = 176; + gSprites[spriteId].data[1] = 43; + spriteId = CreateSprite(&gSpriteTemplate_85CDB9C[1], 200, 99, 0x65); + gSprites[spriteId].pos2.x = 8; + gSprites[spriteId].pos2.y = 4; + gSprites[spriteId].data[0] = 200; + gSprites[spriteId].data[1] = 99; + sCableCar->weather = WEATHER_ASH; + sCableCar->unk4 = 0x15e; + sub_80AB130(WEATHER_SUNNY); + break; + case 1: + CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x24, 24, 26, 12, 3, 17); + spriteId = AddPseudoEventObject(playerGraphicsIds[gSaveBlock2Ptr->playerGender], sub_8150948, 128, 39, 102); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].pos2.x = 8; + gSprites[spriteId].pos2.y = 16; + gSprites[spriteId].data[0] = 0x80; + gSprites[spriteId].data[1] = 0x27; + } + spriteId = CreateSprite(&gSpriteTemplate_85CDB9C[0], 104, 9, 0x67); + gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 0x20; + gSprites[spriteId].data[0] = 104; + gSprites[spriteId].data[1] = 9; + spriteId = CreateSprite(&gSpriteTemplate_85CDB9C[1], 128, 65, 0x65); + gSprites[spriteId].pos2.x = 8; + gSprites[spriteId].pos2.y = 4; + gSprites[spriteId].data[0] = 0x80; + gSprites[spriteId].data[1] = 0x41; + sCableCar->weather = WEATHER_SUNNY; + sCableCar->unk4 = 0x109; + sub_80AB130(WEATHER_ASH); + break; + } + for (i = 0; i < 9; i++) + { + spriteId = CreateSprite(&gSpriteTemplate_85CDBCC, 16 * i + 96, 8 * i - 8, 0x68); + gSprites[spriteId].pos2.x = 8; + gSprites[spriteId].pos2.y = 8; + } + if ((rval % 64) == 0) + { + spriteId = AddPseudoEventObject(hikerGraphicsIds[rval % 3], callbacks[gSpecialVar_0x8004], hikerCoords[gSpecialVar_0x8004][0], hikerCoords[gSpecialVar_0x8004][1], 0x6a); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].pos2.x = -gSprites[spriteId].centerToCornerVecX; + gSprites[spriteId].pos2.y = -gSprites[spriteId].centerToCornerVecY; + if (gSpecialVar_0x8004 == 0) + { + if (rval % 2) + { + StartSpriteAnim(&gSprites[spriteId], 6); + gSprites[spriteId].data[1] = 1; + gSprites[spriteId].pos1.y += 2; + } + else + { + StartSpriteAnim(&gSprites[spriteId], 7); + gSprites[spriteId].data[1] = 0; + } + } + else + { + if (rval % 2) + { + StartSpriteAnim(&gSprites[spriteId], 7); + gSprites[spriteId].data[1] = 1; + gSprites[spriteId].pos1.y += 2; + } + else + { + StartSpriteAnim(&gSprites[spriteId], 6); + gSprites[spriteId].data[1] = 0; + } + } + gSprites[spriteId].data[2] = hikerMovementDelayTable[rval % 4]; + } + } +} + +void sub_8151088(void) +{ + u8 i; + u8 j; + u8 k; + u8 offset; + + for (i = 0, k = 0, offset = 0x24 * (sCableCar->unk1B + 2); i < 3; i++) + { + for (j = 0; j < 12; j++) + { + sCableCar->unk22[i][j] = sCableCar->mtChimneyTilemap[offset++]; + sCableCar->unk22[i + 3][j] = sCableCar->mtChimneyTilemap[k]; + sCableCar->unk22[i + 6][j] = (sCableCar->mtChimneyTilemap + 0x24)[k]; + k++; + } + } + + sCableCar->unk1B = (sCableCar->unk1B + 1) % 3; +} + +static void sub_815115C(void) +{ + sCableCar->unk1C = (sCableCar->unk1C + 1) % 0x60; + sCableCar->bg0HorizontalOffset = sCableCar->unk1F - sCableCar->unk1D; + sCableCar->bg0VerticalOffset = sCableCar->unk20 - sCableCar->unk1E; + sCableCar->unk1D++; + if ((sCableCar->unk1D % 4) == 0) + sCableCar->unk1E++; + + if (sCableCar->unk1D > 16) + sub_8151214(); +} + +static void sub_81511B8(void) +{ + sCableCar->unk1C = (sCableCar->unk1C + 1) % 0x60; + sCableCar->bg0HorizontalOffset = sCableCar->unk1F + sCableCar->unk1D; + sCableCar->bg0VerticalOffset = sCableCar->unk20 + sCableCar->unk1E; + sCableCar->unk1D++; + if ((sCableCar->unk1D % 4) == 0) + sCableCar->unk1E++; + + if (sCableCar->unk1D > 16) + sub_8151388(); +} + +static void sub_8151214(void) +{ + u8 i = 0; + + sCableCar->unk1D = sCableCar->unk1E = 0; + sCableCar->unk1F = sCableCar->bg0HorizontalOffset; + sCableCar->unk20 = sCableCar->bg0VerticalOffset; + sCableCar->unk19 = (sCableCar->unk19 + 30) % 32; + sCableCar->unk18 -= 2; + gUnknown_0203ABB2 = (sCableCar->unk1A + 23) % 32; + for (i = 0; i < 9; i++) + { + gUnknown_0203ABB0 = sCableCar->unk19; + gUnknown_0203ABB1 = (gUnknown_0203ABB2 + i) % 32; + FillBgTilemapBufferRect(0, sCableCar->unk22[i][sCableCar->unk18], gUnknown_0203ABB0, gUnknown_0203ABB1, 1, 1, 17); + gUnknown_0203ABB0 = (gUnknown_0203ABB0 + 1) % 32; + FillBgTilemapBufferRect(0, sCableCar->unk22[i][sCableCar->unk18 + 1], gUnknown_0203ABB0, gUnknown_0203ABB1, 1, 1, 17); + } + + gUnknown_0203ABB0 = (sCableCar->unk19 + 30) % 32; + FillBgTilemapBufferRect(0, 0, gUnknown_0203ABB0, 0, 2, 32, 17); + if (sCableCar->unk18 == 0) + { + sCableCar->unk1A = (sCableCar->unk1A + 29) % 32; + sCableCar->unk18 = 12; + sub_8151088(); + gUnknown_0203ABB0 = (sCableCar->unk1A + 1) % 32; + FillBgTilemapBufferRect(0, 0, 0, gUnknown_0203ABB0, 32, 9, 17); + } +} + +static void sub_8151388(void) +{ + u8 i = 0; + + sCableCar->unk1D = sCableCar->unk1E = 0; + sCableCar->unk1F = sCableCar->bg0HorizontalOffset; + sCableCar->unk20 = sCableCar->bg0VerticalOffset; + sCableCar->unk19 = (sCableCar->unk19 + 2) % 32; + sCableCar->unk18 += 2; + gUnknown_0203ABB5 = sCableCar->unk1A; + for (i = 0; i < 9; i++) + { + gUnknown_0203ABB3 = sCableCar->unk19; + gUnknown_0203ABB4 = (gUnknown_0203ABB5 + i) % 32; + FillBgTilemapBufferRect(0, sCableCar->unk22[i][sCableCar->unk18], gUnknown_0203ABB3, gUnknown_0203ABB4, 1, 1, 17); + gUnknown_0203ABB3 = (gUnknown_0203ABB3 + 1) % 32; + FillBgTilemapBufferRect(0, sCableCar->unk22[i][sCableCar->unk18 + 1], gUnknown_0203ABB3, gUnknown_0203ABB4, 1, 1, 17); + } + + gUnknown_0203ABB4 = (sCableCar->unk1A + 23) % 32; + FillBgTilemapBufferRect(0, 0, sCableCar->unk19, gUnknown_0203ABB4, 2, 9, 17); + if (sCableCar->unk18 == 10) + { + sCableCar->unk1A = (sCableCar->unk1A + 3) % 32; + sCableCar->unk18 = 0xfe; + sub_8151088(); + } +} + +static void sub_81514C8(u8 arg0) +{ + switch (arg0) + { + case 0: + default: + sCableCar->unk1B = 2; + sCableCar->unk19 = 0; + sCableCar->unk1A = 20; + sCableCar->unk18 = 12; + sub_8151088(); + sub_8151214(); + break; + case 1: + sCableCar->unk1B = 2; + sCableCar->unk19 = 28; + sCableCar->unk1A = 20; + sCableCar->unk18 = 4; + sub_8151088(); + sub_8151388(); + break; + } + + sCableCar->unk1C = 0; +} diff --git a/src/clock.c b/src/clock.c index 91eb5f16d..aea6c2088 100644 --- a/src/clock.c +++ b/src/clock.c @@ -5,7 +5,7 @@ #include "lottery_corner.h" #include "dewford_trend.h" #include "tv.h" -#include "field_screen.h" +#include "field_weather.h" #include "berry.h" #include "main.h" #include "overworld.h" diff --git a/src/contest.c b/src/contest.c index 0c3a041b0..0c4397f30 100644 --- a/src/contest.c +++ b/src/contest.c @@ -1,7 +1,7 @@ #include "global.h" #include "gpu_regs.h" #include "bg.h" -#include "malloc.h" +#include "alloc.h" #include "constants/items.h" #include "constants/event_objects.h" #include "constants/moves.h" diff --git a/src/contest_painting.c b/src/contest_painting.c index 7950b7cac..9de3d733d 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,8 +1,709 @@ #include "global.h" +#include "alloc.h" +#include "battle.h" +#include "bg.h" +#include "contest.h" +#include "contest_painting.h" +#include "contest_painting_effects.h" +#include "battle_gfx_sfx_util.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "international_string_util.h" +#include "main.h" +#include "lilycove_lady.h" +#include "palette.h" +#include "random.h" +#include "scanline_effect.h" +#include "string_util.h" +#include "strings.h" +#include "text.h" +#include "window.h" +#include "constants/rgb.h" + +extern u8 gUnknown_02039F5C; +extern u8 gUnknown_02039F5D; + +extern u16 (*gUnknown_03006190)[][32]; +extern struct ContestWinner *gUnknown_030061C0; +extern u16 *gContestPaintingMonPalette; +extern struct Unk030061A0 gUnknown_030061A0; // IWRAM bss -IWRAM_DATA u8 gUnknown_030011F0; -IWRAM_DATA u16 gUnknown_030011F2; -IWRAM_DATA u16 gUnknown_030011F4; -IWRAM_DATA u8 gUnknown_030011F6; -IWRAM_DATA u8 gUnknown_030011F7; +IWRAM_DATA u8 gContestPaintingState; +IWRAM_DATA u16 gContestPaintingMosaicVal; +IWRAM_DATA u16 gContestPaintingFadeCounter; +IWRAM_DATA bool8 gUnknown_030011F6; +IWRAM_DATA u8 gContestPaintingWindowId; + +static void ShowContestPainting(void); +static void HoldContestPainting(void); +static void InitContestPaintingWindow(void); +static void InitContestPaintingBg(void); +static void InitContestPaintingVars(bool8); +static void sub_8130884(u8, u8); +static void PrintContestPaintingCaption(u8, u8); +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[]; +extern const u8 gContestSmartness[]; +extern const u8 gContestToughness[]; +extern const u8 gContestRankNormal[]; +extern const u8 gContestRankSuper[]; +extern const u8 gContestRankHyper[]; +extern const u8 gContestRankMaster[]; +extern const u8 gContestLink[]; +extern const u8 gContestPaintingCool1[]; +extern const u8 gContestPaintingCool2[]; +extern const u8 gContestPaintingCool3[]; +extern const u8 gContestPaintingBeauty1[]; +extern const u8 gContestPaintingBeauty2[]; +extern const u8 gContestPaintingBeauty3[]; +extern const u8 gContestPaintingCute1[]; +extern const u8 gContestPaintingCute2[]; +extern const u8 gContestPaintingCute3[]; +extern const u8 gContestPaintingSmart1[]; +extern const u8 gContestPaintingSmart2[]; +extern const u8 gContestPaintingSmart3[]; +extern const u8 gContestPaintingTough1[]; +extern const u8 gContestPaintingTough2[]; +extern const u8 gContestPaintingTough3[]; + +const u16 gPictureFramePalettes[] = INCBIN_U16("graphics/picture_frame/bg.gbapal"); +const u8 gPictureFrameTiles_0[] = INCBIN_U8("graphics/picture_frame/frame0.4bpp.rl"); +const u8 gPictureFrameTiles_1[] = INCBIN_U8("graphics/picture_frame/frame1.4bpp.rl"); +const u8 gPictureFrameTiles_2[] = INCBIN_U8("graphics/picture_frame/frame2.4bpp.rl"); +const u8 gPictureFrameTiles_3[] = INCBIN_U8("graphics/picture_frame/frame3.4bpp.rl"); +const u8 gPictureFrameTiles_4[] = INCBIN_U8("graphics/picture_frame/frame4.4bpp.rl"); +const u8 gPictureFrameTiles_5[] = INCBIN_U8("graphics/picture_frame/frame5.4bpp.rl"); +const u8 gPictureFrameTilemap_0[] = INCBIN_U8("graphics/picture_frame/frame0_map.bin.rl"); +const u8 gPictureFrameTilemap_1[] = INCBIN_U8("graphics/picture_frame/frame1_map.bin.rl"); +const u8 gPictureFrameTilemap_2[] = INCBIN_U8("graphics/picture_frame/frame2_map.bin.rl"); +const u8 gPictureFrameTilemap_3[] = INCBIN_U8("graphics/picture_frame/frame3_map.bin.rl"); +const u8 gPictureFrameTilemap_4[] = INCBIN_U8("graphics/picture_frame/frame4_map.bin.rl"); +const u8 gPictureFrameTilemap_5[] = INCBIN_U8("graphics/picture_frame/frame5_map.bin.rl"); + +const u8 *const gUnknown_085B07C0[] = +{ + gContestCoolness, + gContestBeauty, + gContestCuteness, + gContestSmartness, + gContestToughness, +}; + +const u8 *const gContestRankTextPointers[] = +{ + gContestRankNormal, + gContestRankSuper, + gContestRankHyper, + gContestRankMaster, + gContestLink, +}; + +const struct BgTemplate gUnknown_085B07E8[] = +{ + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 10, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, +}; + +const struct WindowTemplate gUnknown_085B07EC = +{ + .bg = 1, + .tilemapLeft = 2, + .tilemapTop = 14, + .width = 26, + .height = 4, + .paletteNum = 15, + .baseBlock = 1, +}; + +const u8 *const gContestPaintingDescriptionPointers[] = +{ + gContestPaintingCool1, + gContestPaintingCool2, + gContestPaintingCool3, + gContestPaintingBeauty1, + gContestPaintingBeauty2, + gContestPaintingBeauty3, + gContestPaintingCute1, + gContestPaintingCute2, + gContestPaintingCute3, + gContestPaintingSmart1, + gContestPaintingSmart2, + gContestPaintingSmart3, + gContestPaintingTough1, + gContestPaintingTough2, + gContestPaintingTough3, +}; + +const struct OamData gUnknown_085B0830 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 1, + .bpp = ST_OAM_8BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const u16 gUnknown_085B0838[] = {RGB(0, 0, 0), RGB(0, 0, 0)}; + +void sub_812FDA8(int contestWinner) +{ + // probably fakematching + u8 *ptr1 = &gUnknown_02039F5D; + u8 *ptr2 = &gUnknown_02039F5C; + gUnknown_02039F3C = gSaveBlock1Ptr->contestWinners[contestWinner - 1]; + *ptr1 = contestWinner - 1; + *ptr2 = 0; +} + +void CB2_ContestPainting(void) +{ + ShowContestPainting(); +} + +static void CB2_HoldContestPainting(void) +{ + HoldContestPainting(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void CB2_QuitContestPainting(void) +{ + SetMainCallback2(gMain.savedCallback); + FREE_AND_SET_NULL(gContestPaintingMonPalette); + FREE_AND_SET_NULL(gUnknown_03006190); + RemoveWindow(gContestPaintingWindowId); + Free(GetBgTilemapBuffer(1)); + FreeMonSpritesGfx(); +} + +static void ShowContestPainting(void) +{ + switch (gMain.state) + { + case 0: + ScanlineEffect_Stop(); + SetVBlankCallback(NULL); + AllocateMonSpritesGfx(); + gUnknown_030061C0 = &gUnknown_02039F3C; + InitContestPaintingVars(1); + InitContestPaintingBg(); + gMain.state++; + break; + case 1: + ResetPaletteFade(); + DmaFillLarge32(3, 0, (void *)BG_VRAM, 0x18000, 0x1000); + ResetSpriteData(); + gMain.state++; + break; + case 2: + SeedRng(gMain.vblankCounter1); + InitKeys(); + InitContestPaintingWindow(); + gMain.state++; + break; + case 3: + sub_8130884(gUnknown_02039F5D, gUnknown_02039F5C); + gMain.state++; + break; + case 4: + PrintContestPaintingCaption(gUnknown_02039F5D, gUnknown_02039F5C); + LoadPalette(gUnknown_085B0838, 0, 1 * 2); + DmaClear32(3, PLTT, PLTT_SIZE); + BeginFastPaletteFade(2); + SetVBlankCallback(VBlankCB_ContestPainting); + gContestPaintingState = 0; + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); + SetMainCallback2(CB2_HoldContestPainting); + break; + } +} + +static void HoldContestPainting(void) +{ + switch (gContestPaintingState) + { + case 0: + if (!gPaletteFade.active) + gContestPaintingState = 1; + if (gUnknown_030011F6 && gContestPaintingFadeCounter) + gContestPaintingFadeCounter--; + break; + case 1: + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + u8 two = 2; //needed to make the asm match + gContestPaintingState = two; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + } + + if (gUnknown_030011F6) + gContestPaintingFadeCounter = 0; + break; + case 2: + if (!gPaletteFade.active) + SetMainCallback2(CB2_QuitContestPainting); + if (gUnknown_030011F6 && gContestPaintingFadeCounter < 30) + gContestPaintingFadeCounter++; + break; + } +} + +static void InitContestPaintingWindow(void) +{ + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085B07E8, ARRAY_COUNT(gUnknown_085B07E8)); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE)); + gContestPaintingWindowId = AddWindow(&gUnknown_085B07EC); + DeactivateAllTextPrinters(); + FillWindowPixelBuffer(gContestPaintingWindowId, 0); + PutWindowTilemap(gContestPaintingWindowId); + CopyWindowToVram(gContestPaintingWindowId, 3); + ShowBg(1); +} + +static void PrintContestPaintingCaption(u8 contestType, u8 arg1) +{ + int x; + u8 category; + + if (arg1 == TRUE) + return; + + category = gUnknown_030061C0->contestCategory; + if (contestType < 8) + { + sub_818E868(gStringVar1, category); + StringAppend(gStringVar1, gText_Space); + StringAppend(gStringVar1, gContestRankTextPointers[gUnknown_030061C0->contestRank]); + StringCopy(gStringVar2, gUnknown_030061C0->trainerName); + sub_81DB5AC(gStringVar2); + StringCopy(gStringVar3, gUnknown_030061C0->monName); + StringExpandPlaceholders(gStringVar4, gUnknown_0827EA0C); + } + else + { + StringCopy(gStringVar1, gUnknown_030061C0->monName); + StringExpandPlaceholders(gStringVar4, gContestPaintingDescriptionPointers[category]); + } + + x = GetStringCenterAlignXOffset(1, gStringVar4, 208); + AddTextPrinterParameterized(gContestPaintingWindowId, 1, gStringVar4, x, 1, 0, 0); + CopyBgTilemapBufferToVram(1); +} + +static void InitContestPaintingBg(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0); + REG_IE |= INTR_FLAG_VBLANK; + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(12) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256); + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); +} + +static void InitContestPaintingVars(bool8 arg0) +{ + if (arg0 == FALSE) + { + gUnknown_030011F6 = FALSE; + gContestPaintingMosaicVal = 0; + gContestPaintingFadeCounter = 0; + } + else + { + gUnknown_030011F6 = TRUE; + gContestPaintingMosaicVal = 15; + gContestPaintingFadeCounter = 30; + } +} + +static void UpdateContestPaintingMosaicEffect(void) +{ + if (!gUnknown_030011F6) + { + SetGpuReg(REG_OFFSET_MOSAIC, 0); + } + else + { + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256); + gContestPaintingMosaicVal = gContestPaintingFadeCounter / 2; + SetGpuReg(REG_OFFSET_MOSAIC, (gContestPaintingMosaicVal << 12) | (gContestPaintingMosaicVal << 8) | (gContestPaintingMosaicVal << 4) | (gContestPaintingMosaicVal << 0)); + } +} + +static void VBlankCB_ContestPainting(void) +{ + UpdateContestPaintingMosaicEffect(); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_81302E8(u16 species, u8 arg1) +{ + const void *pal = GetFrontSpritePalFromSpeciesAndPersonality(species, gUnknown_030061C0->trainerId, gUnknown_030061C0->personality); + LZDecompressVram(pal, gContestPaintingMonPalette); + if (!arg1) + { + HandleLoadSpecialPokePic_DontHandleDeoxys( + &gMonFrontPicTable[species], + gMonSpritesGfxPtr->sprites[1], + species, + gUnknown_030061C0->personality); + sub_8130380(gMonSpritesGfxPtr->sprites[1], gContestPaintingMonPalette, (void *)gUnknown_03006190); + } + else + { + HandleLoadSpecialPokePic_DontHandleDeoxys( + &gMonBackPicTable[species], + gMonSpritesGfxPtr->sprites[0], + species, + gUnknown_030061C0->personality); + sub_8130380(gMonSpritesGfxPtr->sprites[0], gContestPaintingMonPalette, (void *)gUnknown_03006190); + } +} + +#ifdef NONMATCHING +// functionally equivalent. +static void sub_8130380(u8 *spritePixels, u16 *palette, u16 (*destColorBuffer)[64][64]) +{ + u16 tileY, tileX, pixelY, pixelX; + u8 colorIndex; + + for (tileY = 0; tileY < 8; tileY++) + { + for (tileX = 0; tileX < 8; tileX++) + { + for (pixelY = 0; pixelY < 8; pixelY++) + { + for (pixelX = 0; pixelX < 8; pixelX++) + { + int offset = 32 * (8 * tileY + tileX) + (pixelY * 4 + pixelX / 2); + colorIndex = spritePixels[offset]; + if (pixelX & 1) + colorIndex >>= 4; + else + colorIndex &= 0xF; + + if (colorIndex == 0) // transparent pixel + (*destColorBuffer)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000; + else + (*destColorBuffer)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex]; + } + } + } + } +} +#else +NAKED +static void sub_8130380(u8 *spritePixels, u16 *palette, u16 (*destColorBuffer)[64][64]) +{ + 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\ + mov r10, r0\n\ + mov r9, r1\n\ + str r2, [sp]\n\ + movs r0, 0\n\ +_08130394:\n\ + movs r3, 0\n\ + adds r1, r0, 0x1\n\ + str r1, [sp, 0x4]\n\ + lsls r0, 3\n\ + str r0, [sp, 0x8]\n\ +_0813039E:\n\ + movs r1, 0\n\ + adds r2, r3, 0x1\n\ + mov r8, r2\n\ + ldr r7, [sp, 0x8]\n\ + adds r0, r7, r3\n\ + lsls r0, 5\n\ + mov r12, r0\n\ + lsls r4, r3, 3\n\ +_081303AE:\n\ + movs r3, 0\n\ + lsls r0, r1, 2\n\ + adds r6, r1, 0x1\n\ + mov r2, r12\n\ + adds r5, r2, r0\n\ + ldr r7, [sp, 0x8]\n\ + adds r0, r7, r1\n\ + lsls r0, 7\n\ + ldr r1, [sp]\n\ + adds r2, r0, r1\n\ +_081303C2:\n\ + lsrs r0, r3, 1\n\ + adds r0, r5, r0\n\ + add r0, r10\n\ + ldrb r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r3\n\ + cmp r0, 0\n\ + beq _081303D6\n\ + lsrs r1, 4\n\ + b _081303DA\n\ +_081303D6:\n\ + movs r0, 0xF\n\ + ands r1, r0\n\ +_081303DA:\n\ + cmp r1, 0\n\ + bne _081303EC\n\ + adds r0, r4, r3\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + movs r7, 0x80\n\ + lsls r7, 8\n\ + adds r1, r7, 0\n\ + b _081303F8\n\ +_081303EC:\n\ + adds r0, r4, r3\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + lsls r1, 1\n\ + add r1, r9\n\ + ldrh r1, [r1]\n\ +_081303F8:\n\ + strh r1, [r0]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x7\n\ + bls _081303C2\n\ + lsls r0, r6, 16\n\ + lsrs r1, r0, 16\n\ + cmp r1, 0x7\n\ + bls _081303AE\n\ + mov r1, r8\n\ + lsls r0, r1, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x7\n\ + bls _0813039E\n\ + ldr r2, [sp, 0x4]\n\ + lsls r0, r2, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x7\n\ + bls _08130394\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"); +} +#endif + +static void sub_8130430(u8 arg0, u8 arg1) +{ + u8 x, y; + + LoadPalette(gPictureFramePalettes, 0, 0x100); + if (arg1 == 1) + { + switch (gUnknown_030061C0->contestCategory / 3) + { + case CONTEST_CATEGORY_COOL: + RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); + RLUnCompWram(gPictureFrameTilemap_0, gUnknown_03006190); + break; + case CONTEST_CATEGORY_BEAUTY: + RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); + RLUnCompWram(gPictureFrameTilemap_1, gUnknown_03006190); + break; + case CONTEST_CATEGORY_CUTE: + RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); + RLUnCompWram(gPictureFrameTilemap_2, gUnknown_03006190); + break; + case CONTEST_CATEGORY_SMART: + RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); + RLUnCompWram(gPictureFrameTilemap_3, gUnknown_03006190); + break; + case CONTEST_CATEGORY_TOUGH: + RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); + RLUnCompWram(gPictureFrameTilemap_4, gUnknown_03006190); + break; + } + +#define VRAM_PICTURE_DATA(x, y) (((u16 *)(VRAM + 0x6000))[(y) * 32 + (x)]) + + // Set the background + for (y = 0; y < 20; y++) + { + for (x = 0; x < 32; x++) + VRAM_PICTURE_DATA(x, y) = 0x1015; + } + + // Copy the image frame + for (y = 0; y < 10; y++) + { + for (x = 0; x < 18; x++) + VRAM_PICTURE_DATA(x + 6, y + 2) = (*gUnknown_03006190)[y + 2][x + 6]; + } + + // Re-set the entire top row to the first top frame part + for (x = 0; x < 16; x++) + VRAM_PICTURE_DATA(x + 7, 2) = (*gUnknown_03006190)[2][7]; + +#undef VRAM_PICTURE_DATA + } + else if (arg0 < 8) + { + RLUnCompVram(gPictureFrameTiles_5, (void *)VRAM); + RLUnCompVram(gPictureFrameTilemap_5, (void *)(VRAM + 0x6000)); + } + else + { + switch (gUnknown_030061C0->contestCategory / 3) + { + case CONTEST_CATEGORY_COOL: + RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); + RLUnCompVram(gPictureFrameTilemap_0, (void *)(VRAM + 0x6000)); + break; + case CONTEST_CATEGORY_BEAUTY: + RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); + RLUnCompVram(gPictureFrameTilemap_1, (void *)(VRAM + 0x6000)); + break; + case CONTEST_CATEGORY_CUTE: + RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); + RLUnCompVram(gPictureFrameTilemap_2, (void *)(VRAM + 0x6000)); + break; + case CONTEST_CATEGORY_SMART: + RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); + RLUnCompVram(gPictureFrameTilemap_3, (void *)(VRAM + 0x6000)); + break; + case CONTEST_CATEGORY_TOUGH: + RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); + RLUnCompVram(gPictureFrameTilemap_4, (void *)(VRAM + 0x6000)); + break; + } + } +} + +static void sub_8130688(u8 arg0) +{ + //Some hacks just to get the asm to match +#ifndef NONMATCHING + asm(""::"r"(arg0)); +#endif + + gMain.oamBuffer[0] = gUnknown_085B0830; + gMain.oamBuffer[0].tileNum = 0; + +#ifndef NONMATCHING + if (arg0) arg0 = gMain.oamBuffer[0].tileNum; +#endif + + gMain.oamBuffer[0].x = 88; + gMain.oamBuffer[0].y = 24; +} + +static u8 sub_81306CC(u8 arg0) +{ + u8 contestCategory; + + if (arg0 < 8) + contestCategory = gUnknown_030061C0->contestCategory; + else + contestCategory = gUnknown_030061C0->contestCategory / 3; + + switch (contestCategory) + { + case CONTEST_CATEGORY_COOL: + return CONTESTRESULT_COOL; + case CONTEST_CATEGORY_BEAUTY: + return CONTESTRESULT_BEAUTY; + case CONTEST_CATEGORY_CUTE: + return CONTESTRESULT_CUTE; + case CONTEST_CATEGORY_SMART: + return CONTESTRESULT_SMART; + case CONTEST_CATEGORY_TOUGH: + return CONTESTRESULT_TOUGH; + } + + return contestCategory; +} + +static void sub_8130738(void) +{ + gContestPaintingMonPalette = AllocZeroed(0x200); + gUnknown_03006190 = AllocZeroed(0x2000); +} + +static void sub_8130760(u8 contestResult) +{ + gUnknown_030061A0.var_4 = gUnknown_03006190; + gUnknown_030061A0.var_8 = gContestPaintingMonPalette; + gUnknown_030061A0.var_18 = 0; + gUnknown_030061A0.var_1F = gUnknown_030061C0->personality % 256; + gUnknown_030061A0.var_19 = 0; + gUnknown_030061A0.var_1A = 0; + gUnknown_030061A0.var_1B = 64; + gUnknown_030061A0.var_1C = 64; + gUnknown_030061A0.var_1D = 64; + gUnknown_030061A0.var_1E = 64; + + switch (contestResult) + { + case CONTESTRESULT_SMART: + case CONTESTRESULT_TOUGH: + gUnknown_030061A0.var_14 = 3; + break; + case CONTESTRESULT_COOL: + case CONTESTRESULT_BEAUTY: + case CONTESTRESULT_CUTE: + default: + gUnknown_030061A0.var_14 = 1; + break; + } + + gUnknown_030061A0.var_16 = 2; + gUnknown_030061A0.var_0 = contestResult; + gUnknown_030061A0.var_10 = 0x6010000; + + sub_8124F2C(&gUnknown_030061A0); + sub_81261A4(&gUnknown_030061A0); + sub_8126058(&gUnknown_030061A0); + + LoadPalette(gContestPaintingMonPalette, 0x100, 0x200); +} + +static void sub_8130884(u8 arg0, u8 arg1) +{ + sub_8130738(); + sub_81302E8(gUnknown_030061C0->species, 0); + sub_8130760(sub_81306CC(arg0)); + sub_8130688(arg0); + sub_8130430(arg0, arg1); +} diff --git a/src/credits.c b/src/credits.c index df17ec70b..67ab97481 100644 --- a/src/credits.c +++ b/src/credits.c @@ -3,7 +3,7 @@ #include "main.h" #include "task.h" #include "bg.h" -#include "malloc.h" +#include "alloc.h" #include "window.h" #include "text.h" #include "menu.h" @@ -135,7 +135,7 @@ struct Unk201C000 u16 unk90; u16 unk92; u16 unk94; - u16 unk96[386]; + u16 unk96[NATIONAL_DEX_COUNT]; u16 unk39A; u16 unk39C[7]; }; @@ -2254,12 +2254,12 @@ static void sub_8177050(struct Sprite *sprite) } } -static u8 sub_8177224(u16 species, s16 x, s16 y, u16 position) +static u8 sub_8177224(u16 nationalDexNum, s16 x, s16 y, u16 position) { u8 spriteId; u8 spriteId2; - spriteId = sub_80C0E9C(species, x, y, position); + spriteId = CreateMonSpriteFromNationalDexNumber(nationalDexNum, x, y, position); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].data[1] = position + 1; gSprites[spriteId].invisible = TRUE; @@ -2297,16 +2297,16 @@ static void sub_8177388(void) u16 dexNum; u16 j; - for (dexNum = 1, j = 0; dexNum < 386; dexNum++) + for (dexNum = 1, j = 0; dexNum < NATIONAL_DEX_COUNT; dexNum++) { - if (GetSetPokedexFlag(dexNum, 1)) + if (GetSetPokedexFlag(dexNum, FLAG_GET_CAUGHT)) { gUnknown_0203BCE8->unk96[j] = dexNum; j++; } } - for (dexNum = j; dexNum < 386; dexNum++) + for (dexNum = j; dexNum < NATIONAL_DEX_COUNT; dexNum++) gUnknown_0203BCE8->unk96[dexNum] = 0; gUnknown_0203BCE8->unk39A = j; diff --git a/src/data/battle_frontier/battle_frontier_mons.h b/src/data/battle_frontier/battle_frontier_mons.h new file mode 100644 index 000000000..44cfb8036 --- /dev/null +++ b/src/data/battle_frontier/battle_frontier_mons.h @@ -0,0 +1,6177 @@ +const struct FacilityMon gBattleFrontierMons[] = +{ + [0] = { + .species = SPECIES_SUNKERN, + .moves = {MOVE_MEGA_DRAIN, MOVE_HELPING_HAND, MOVE_SUNNY_DAY, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [1] = { + .species = SPECIES_AZURILL, + .moves = {MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SING, MOVE_CHARM}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RASH + }, + [2] = { + .species = SPECIES_CATERPIE, + .moves = {MOVE_TACKLE, MOVE_STRING_SHOT, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [3] = { + .species = SPECIES_WEEDLE, + .moves = {MOVE_POISON_STING, MOVE_STRING_SHOT, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [4] = { + .species = SPECIES_WURMPLE, + .moves = {MOVE_TACKLE, MOVE_STRING_SHOT, MOVE_POISON_STING, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [5] = { + .species = SPECIES_RALTS, + .moves = {MOVE_CONFUSION, MOVE_IMPRISON, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [6] = { + .species = SPECIES_MAGIKARP, + .moves = {MOVE_FLAIL, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [7] = { + .species = SPECIES_FEEBAS, + .moves = {MOVE_FLAIL, MOVE_MIRROR_COAT, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [8] = { + .species = SPECIES_METAPOD, + .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BASHFUL + }, + [9] = { + .species = SPECIES_KAKUNA, + .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BASHFUL + }, + [10] = { + .species = SPECIES_PICHU, + .moves = {MOVE_SWEET_KISS, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_SHOCK_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RASH + }, + [11] = { + .species = SPECIES_SILCOON, + .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BASHFUL + }, + [12] = { + .species = SPECIES_CASCOON, + .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BASHFUL + }, + [13] = { + .species = SPECIES_IGGLYBUFF, + .moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_ATTRACT, MOVE_SEISMIC_TOSS}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [14] = { + .species = SPECIES_WOOPER, + .moves = {MOVE_YAWN, MOVE_DIG, MOVE_WATER_PULSE, MOVE_RAIN_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [15] = { + .species = SPECIES_TYROGUE, + .moves = {MOVE_MACH_PUNCH, MOVE_PROTECT, MOVE_DOUBLE_TEAM, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [16] = { + .species = SPECIES_SENTRET, + .moves = {MOVE_QUICK_ATTACK, MOVE_FOLLOW_ME, MOVE_HELPING_HAND, MOVE_ASSIST}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [17] = { + .species = SPECIES_CLEFFA, + .moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_ATTRACT, MOVE_METRONOME}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SERIOUS + }, + [18] = { + .species = SPECIES_SEEDOT, + .moves = {MOVE_BULLET_SEED, MOVE_BIDE, MOVE_DEFENSE_CURL, MOVE_ROLLOUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [19] = { + .species = SPECIES_LOTAD, + .moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_SUNNY_DAY, MOVE_MEGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [20] = { + .species = SPECIES_POOCHYENA, + .moves = {MOVE_CRUNCH, MOVE_SWAGGER, MOVE_ROAR, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [21] = { + .species = SPECIES_SHEDINJA, + .moves = {MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_SILVER_WIND, MOVE_GRUDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_NAIVE + }, + [22] = { + .species = SPECIES_MAKUHITA, + .moves = {MOVE_FAKE_OUT, MOVE_SEISMIC_TOSS, MOVE_DETECT, MOVE_WHIRLWIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [23] = { + .species = SPECIES_WHISMUR, + .moves = {MOVE_UPROAR, MOVE_SWAGGER, MOVE_BODY_SLAM, MOVE_SMELLING_SALT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [24] = { + .species = SPECIES_ZIGZAGOON, + .moves = {MOVE_HEADBUTT, MOVE_PIN_MISSILE, MOVE_SWIFT, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_TIMID + }, + [25] = { + .species = SPECIES_ZUBAT, + .moves = {MOVE_POISON_FANG, MOVE_WHIRLWIND, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [26] = { + .species = SPECIES_TOGEPI, + .moves = {MOVE_RETURN, MOVE_YAWN, MOVE_WISH, MOVE_SWEET_KISS}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [27] = { + .species = SPECIES_SPINARAK, + .moves = {MOVE_SIGNAL_BEAM, MOVE_NIGHT_SHADE, MOVE_SPIDER_WEB, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [28] = { + .species = SPECIES_MARILL, + .moves = {MOVE_WATER_PULSE, MOVE_RAIN_DANCE, MOVE_LIGHT_SCREEN, MOVE_RETURN}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_GENTLE + }, + [29] = { + .species = SPECIES_HOPPIP, + .moves = {MOVE_MEGA_DRAIN, MOVE_LEECH_SEED, MOVE_SLEEP_POWDER, MOVE_STUN_SPORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_LAX + }, + [30] = { + .species = SPECIES_SLUGMA, + .moves = {MOVE_EMBER, MOVE_ROCK_SLIDE, MOVE_YAWN, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [31] = { + .species = SPECIES_SWINUB, + .moves = {MOVE_ICY_WIND, MOVE_DIG, MOVE_ROCK_TOMB, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_GENTLE + }, + [32] = { + .species = SPECIES_SMEARGLE, + .moves = {MOVE_EXTREME_SPEED, MOVE_FAKE_OUT, MOVE_QUICK_ATTACK, MOVE_MACH_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [33] = { + .species = SPECIES_PIDGEY, + .moves = {MOVE_GUST, MOVE_SAND_ATTACK, MOVE_WHIRLWIND, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [34] = { + .species = SPECIES_RATTATA, + .moves = {MOVE_HYPER_FANG, MOVE_PURSUIT, MOVE_QUICK_ATTACK, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [35] = { + .species = SPECIES_WYNAUT, + .moves = {MOVE_ENCORE, MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_CHARM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_JOLLY + }, + [36] = { + .species = SPECIES_SKITTY, + .moves = {MOVE_SING, MOVE_ATTRACT, MOVE_CHARM, MOVE_DOUBLE_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [37] = { + .species = SPECIES_SPEAROW, + .moves = {MOVE_FURY_ATTACK, MOVE_PURSUIT, MOVE_MIRROR_MOVE, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [38] = { + .species = SPECIES_HOOTHOOT, + .moves = {MOVE_CONFUSION, MOVE_HYPNOSIS, MOVE_SUPERSONIC, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [39] = { + .species = SPECIES_DIGLETT, + .moves = {MOVE_MAGNITUDE, MOVE_SLASH, MOVE_ROCK_TOMB, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAIVE + }, + [40] = { + .species = SPECIES_LEDYBA, + .moves = {MOVE_PSYBEAM, MOVE_AGILITY, MOVE_BATON_PASS, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BASHFUL + }, + [41] = { + .species = SPECIES_NINCADA, + .moves = {MOVE_MUD_SLAP, MOVE_DIG, MOVE_TOXIC, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [42] = { + .species = SPECIES_SURSKIT, + .moves = {MOVE_BUBBLE_BEAM, MOVE_RAIN_DANCE, MOVE_SWEET_SCENT, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [43] = { + .species = SPECIES_JIGGLYPUFF, + .moves = {MOVE_SING, MOVE_WISH, MOVE_MIMIC, MOVE_DOUBLE_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [44] = { + .species = SPECIES_TAILLOW, + .moves = {MOVE_FLY, MOVE_QUICK_ATTACK, MOVE_ENDEAVOR, MOVE_FOCUS_ENERGY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_GENTLE + }, + [45] = { + .species = SPECIES_WINGULL, + .moves = {MOVE_WATER_PULSE, MOVE_FLY, MOVE_QUICK_ATTACK, MOVE_STEEL_WING}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [46] = { + .species = SPECIES_NIDORAN_M, + .moves = {MOVE_DOUBLE_KICK, MOVE_POISON_STING, MOVE_DISABLE, MOVE_HELPING_HAND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [47] = { + .species = SPECIES_NIDORAN_F, + .moves = {MOVE_CRUNCH, MOVE_DOUBLE_KICK, MOVE_FLATTER, MOVE_HELPING_HAND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [48] = { + .species = SPECIES_KIRLIA, + .moves = {MOVE_CONFUSION, MOVE_WILL_O_WISP, MOVE_FUTURE_SIGHT, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [49] = { + .species = SPECIES_MAREEP, + .moves = {MOVE_SHOCK_WAVE, MOVE_FLASH, MOVE_REFLECT, MOVE_COTTON_SPORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [50] = { + .species = SPECIES_MEDITITE, + .moves = {MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [51] = { + .species = SPECIES_SLAKOTH, + .moves = {MOVE_YAWN, MOVE_SCRATCH, MOVE_ENCORE, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [52] = { + .species = SPECIES_PARAS, + .moves = {MOVE_SPORE, MOVE_LEECH_LIFE, MOVE_SLASH, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [53] = { + .species = SPECIES_EKANS, + .moves = {MOVE_ACID, MOVE_DIG, MOVE_SCREECH, MOVE_TORMENT}, + .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [54] = { + .species = SPECIES_DITTO, + .moves = {MOVE_TRANSFORM, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_METAL_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [55] = { + .species = SPECIES_BARBOACH, + .moves = {MOVE_MAGNITUDE, MOVE_WATER_PULSE, MOVE_SPARK, MOVE_FUTURE_SIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_BASHFUL + }, + [56] = { + .species = SPECIES_MEOWTH, + .moves = {MOVE_SLASH, MOVE_BITE, MOVE_SCREECH, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [57] = { + .species = SPECIES_PINECO, + .moves = {MOVE_SELF_DESTRUCT, MOVE_TAKE_DOWN, MOVE_REFLECT, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [58] = { + .species = SPECIES_TRAPINCH, + .moves = {MOVE_TOXIC, MOVE_DIG, MOVE_SANDSTORM, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SERIOUS + }, + [59] = { + .species = SPECIES_SPHEAL, + .moves = {MOVE_ICE_BALL, MOVE_WATER_PULSE, MOVE_HAIL, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [60] = { + .species = SPECIES_HORSEA, + .moves = {MOVE_WATER_GUN, MOVE_AGILITY, MOVE_ICY_WIND, MOVE_TWISTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [61] = { + .species = SPECIES_SHROOMISH, + .moves = {MOVE_SPORE, MOVE_BULLET_SEED, MOVE_LEECH_SEED, MOVE_HEADBUTT}, + .itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [62] = { + .species = SPECIES_SHUPPET, + .moves = {MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_GRUDGE, MOVE_KNOCK_OFF}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RASH + }, + [63] = { + .species = SPECIES_DUSKULL, + .moves = {MOVE_SKILL_SWAP, MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [64] = { + .species = SPECIES_ELECTRIKE, + .moves = {MOVE_SPARK, MOVE_THUNDER_WAVE, MOVE_ROAR, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [65] = { + .species = SPECIES_VULPIX, + .moves = {MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_FIRE_SPIN, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [66] = { + .species = SPECIES_PIKACHU, + .moves = {MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_DOUBLE_TEAM, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIGHT_BALL, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [67] = { + .species = SPECIES_SANDSHREW, + .moves = {MOVE_DIG, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [68] = { + .species = SPECIES_POLIWAG, + .moves = {MOVE_HYPNOSIS, MOVE_ICY_WIND, MOVE_WATER_GUN, MOVE_RAIN_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [69] = { + .species = SPECIES_BELLSPROUT, + .moves = {MOVE_RAZOR_LEAF, MOVE_ACID, MOVE_STUN_SPORE, MOVE_WRAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_LAX + }, + [70] = { + .species = SPECIES_GEODUDE, + .moves = {MOVE_MAGNITUDE, MOVE_ROCK_BLAST, MOVE_STRENGTH, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [71] = { + .species = SPECIES_DRATINI, + .moves = {MOVE_OUTRAGE, MOVE_THUNDER_WAVE, MOVE_SUPERSONIC, MOVE_WATER_PULSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [72] = { + .species = SPECIES_SNUBBULL, + .moves = {MOVE_BITE, MOVE_CHARM, MOVE_SWAGGER, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [73] = { + .species = SPECIES_REMORAID, + .moves = {MOVE_BUBBLE_BEAM, MOVE_AURORA_BEAM, MOVE_PSYBEAM, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [74] = { + .species = SPECIES_LARVITAR, + .moves = {MOVE_THRASH, MOVE_ROCK_SLIDE, MOVE_DIG, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [75] = { + .species = SPECIES_BALTOY, + .moves = {MOVE_PSYBEAM, MOVE_ANCIENT_POWER, MOVE_LIGHT_SCREEN, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [76] = { + .species = SPECIES_SNORUNT, + .moves = {MOVE_ICY_WIND, MOVE_HEADBUTT, MOVE_LEER, MOVE_BITE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [77] = { + .species = SPECIES_BAGON, + .moves = {MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_BRICK_BREAK, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [78] = { + .species = SPECIES_BELDUM, + .moves = {MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [79] = { + .species = SPECIES_GULPIN, + .moves = {MOVE_TOXIC, MOVE_YAWN, MOVE_PAIN_SPLIT, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SERIOUS + }, + [80] = { + .species = SPECIES_VENONAT, + .moves = {MOVE_PSYBEAM, MOVE_SUPERSONIC, MOVE_STUN_SPORE, MOVE_SKILL_SWAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [81] = { + .species = SPECIES_MANKEY, + .moves = {MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SCREECH, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [82] = { + .species = SPECIES_MACHOP, + .moves = {MOVE_SEISMIC_TOSS, MOVE_REVENGE, MOVE_ROCK_TOMB, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [83] = { + .species = SPECIES_SHELLDER, + .moves = {MOVE_ICICLE_SPEAR, MOVE_SUPERSONIC, MOVE_CLAMP, MOVE_WITHDRAW}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [84] = { + .species = SPECIES_SMOOCHUM, + .moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_MUD_SLAP, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [85] = { + .species = SPECIES_NUMEL, + .moves = {MOVE_EMBER, MOVE_MAGNITUDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [86] = { + .species = SPECIES_CARVANHA, + .moves = {MOVE_BITE, MOVE_SCREECH, MOVE_SCARY_FACE, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [87] = { + .species = SPECIES_CORPHISH, + .moves = {MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_MUD_SLAP, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [88] = { + .species = SPECIES_CHARMANDER, + .moves = {MOVE_FIRE_SPIN, MOVE_METAL_CLAW, MOVE_SMOKESCREEN, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [89] = { + .species = SPECIES_CYNDAQUIL, + .moves = {MOVE_EMBER, MOVE_SWIFT, MOVE_QUICK_ATTACK, MOVE_SMOKESCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [90] = { + .species = SPECIES_ABRA, + .moves = {MOVE_MIMIC, MOVE_METRONOME, MOVE_FLASH, MOVE_SEISMIC_TOSS}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [91] = { + .species = SPECIES_DODUO, + .moves = {MOVE_FURY_ATTACK, MOVE_UPROAR, MOVE_MUD_SLAP, MOVE_FAINT_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [92] = { + .species = SPECIES_GASTLY, + .moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_NIGHT_SHADE, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [93] = { + .species = SPECIES_SWABLU, + .moves = {MOVE_TAKE_DOWN, MOVE_DREAM_EATER, MOVE_SING, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [94] = { + .species = SPECIES_TREECKO, + .moves = {MOVE_BULLET_SEED, MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_LONELY + }, + [95] = { + .species = SPECIES_TORCHIC, + .moves = {MOVE_FIRE_SPIN, MOVE_QUICK_ATTACK, MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [96] = { + .species = SPECIES_MUDKIP, + .moves = {MOVE_WHIRLPOOL, MOVE_ENDEAVOR, MOVE_MUD_SPORT, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [97] = { + .species = SPECIES_SQUIRTLE, + .moves = {MOVE_WATER_PULSE, MOVE_BITE, MOVE_WITHDRAW, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [98] = { + .species = SPECIES_TOTODILE, + .moves = {MOVE_SLASH, MOVE_WATER_PULSE, MOVE_SCREECH, MOVE_ICY_WIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [99] = { + .species = SPECIES_SLOWPOKE, + .moves = {MOVE_CONFUSION, MOVE_DISABLE, MOVE_WATER_PULSE, MOVE_YAWN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [100] = { + .species = SPECIES_BULBASAUR, + .moves = {MOVE_RAZOR_LEAF, MOVE_SWEET_SCENT, MOVE_SLEEP_POWDER, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [101] = { + .species = SPECIES_CHIKORITA, + .moves = {MOVE_SECRET_POWER, MOVE_BULLET_SEED, MOVE_MUD_SLAP, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [102] = { + .species = SPECIES_ODDISH, + .moves = {MOVE_ACID, MOVE_STUN_SPORE, MOVE_SWEET_SCENT, MOVE_MOONLIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [103] = { + .species = SPECIES_PSYDUCK, + .moves = {MOVE_CONFUSION, MOVE_FURY_SWIPES, MOVE_AERIAL_ACE, MOVE_DISABLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HASTY + }, + [104] = { + .species = SPECIES_CUBONE, + .moves = {MOVE_BONE_CLUB, MOVE_HEADBUTT, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [105] = { + .species = SPECIES_GOLDEEN, + .moves = {MOVE_WATERFALL, MOVE_FURY_ATTACK, MOVE_AGILITY, MOVE_PSYBEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [106] = { + .species = SPECIES_NATU, + .moves = {MOVE_NIGHT_SHADE, MOVE_FUTURE_SIGHT, MOVE_CONFUSE_RAY, MOVE_FLASH}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [107] = { + .species = SPECIES_CLEFAIRY, + .moves = {MOVE_FOLLOW_ME, MOVE_RETURN, MOVE_ENCORE, MOVE_SING}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [108] = { + .species = SPECIES_MAGNEMITE, + .moves = {MOVE_SHOCK_WAVE, MOVE_SUPERSONIC, MOVE_METAL_SOUND, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_GENTLE + }, + [109] = { + .species = SPECIES_SEEL, + .moves = {MOVE_AURORA_BEAM, MOVE_DIVE, MOVE_BODY_SLAM, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [110] = { + .species = SPECIES_GRIMER, + .moves = {MOVE_SLUDGE, MOVE_ROCK_TOMB, MOVE_ACID_ARMOR, MOVE_MINIMIZE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [111] = { + .species = SPECIES_KRABBY, + .moves = {MOVE_CRABHAMMER, MOVE_MUD_SHOT, MOVE_FLAIL, MOVE_KNOCK_OFF}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [112] = { + .species = SPECIES_EXEGGCUTE, + .moves = {MOVE_CONFUSION, MOVE_ANCIENT_POWER, MOVE_LEECH_SEED, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [113] = { + .species = SPECIES_EEVEE, + .moves = {MOVE_CHARM, MOVE_ATTRACT, MOVE_FLAIL, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [114] = { + .species = SPECIES_DROWZEE, + .moves = {MOVE_CONFUSION, MOVE_HEADBUTT, MOVE_DISABLE, MOVE_BARRIER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [115] = { + .species = SPECIES_VOLTORB, + .moves = {MOVE_SPARK, MOVE_SCREECH, MOVE_ROLLOUT, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [116] = { + .species = SPECIES_CHINCHOU, + .moves = {MOVE_SPARK, MOVE_DIVE, MOVE_CONFUSE_RAY, MOVE_TAKE_DOWN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [117] = { + .species = SPECIES_TEDDIURSA, + .moves = {MOVE_SECRET_POWER, MOVE_FAKE_TEARS, MOVE_FAINT_ATTACK, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [118] = { + .species = SPECIES_DELIBIRD, + .moves = {MOVE_PRESENT, MOVE_ICE_BALL, MOVE_AERIAL_ACE, MOVE_HAIL}, + .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [119] = { + .species = SPECIES_HOUNDOUR, + .moves = {MOVE_CRUNCH, MOVE_EMBER, MOVE_ROAR, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [120] = { + .species = SPECIES_PHANPY, + .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_ROCK_TOMB, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [121] = { + .species = SPECIES_SPOINK, + .moves = {MOVE_PSYWAVE, MOVE_BOUNCE, MOVE_MAGIC_COAT, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [122] = { + .species = SPECIES_ARON, + .moves = {MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_METAL_SOUND, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [123] = { + .species = SPECIES_LUVDISC, + .moves = {MOVE_SWEET_KISS, MOVE_ATTRACT, MOVE_DIVE, MOVE_RAIN_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [124] = { + .species = SPECIES_TENTACOOL, + .moves = {MOVE_BUBBLE_BEAM, MOVE_ACID, MOVE_BARRIER, MOVE_WRAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [125] = { + .species = SPECIES_CACNEA, + .moves = {MOVE_NEEDLE_ARM, MOVE_FAINT_ATTACK, MOVE_COTTON_SPORE, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [126] = { + .species = SPECIES_UNOWN, + .moves = {MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [127] = { + .species = SPECIES_KOFFING, + .moves = {MOVE_SLUDGE, MOVE_SMOKESCREEN, MOVE_TORMENT, MOVE_HAZE}, + .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [128] = { + .species = SPECIES_STARYU, + .moves = {MOVE_BUBBLE_BEAM, MOVE_MINIMIZE, MOVE_SWIFT, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [129] = { + .species = SPECIES_SKIPLOOM, + .moves = {MOVE_MEGA_DRAIN, MOVE_CONFUSION, MOVE_COTTON_SPORE, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [130] = { + .species = SPECIES_NUZLEAF, + .moves = {MOVE_EXTRASENSORY, MOVE_FAKE_OUT, MOVE_RAZOR_WIND, MOVE_FAINT_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [131] = { + .species = SPECIES_LOMBRE, + .moves = {MOVE_WATER_PULSE, MOVE_FAKE_OUT, MOVE_BRICK_BREAK, MOVE_ABSORB}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [132] = { + .species = SPECIES_VIBRAVA, + .moves = {MOVE_DRAGON_BREATH, MOVE_DIG, MOVE_SCREECH, MOVE_ROCK_TOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [133] = { + .species = SPECIES_RHYHORN, + .moves = {MOVE_ROCK_BLAST, MOVE_DIG, MOVE_SCARY_FACE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [134] = { + .species = SPECIES_CLAMPERL, + .moves = {MOVE_DIVE, MOVE_TOXIC, MOVE_IRON_DEFENSE, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_DEEP_SEA_SCALE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [135] = { + .species = SPECIES_PIDGEOTTO, + .moves = {MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK, MOVE_FEATHER_DANCE, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [136] = { + .species = SPECIES_GROWLITHE, + .moves = {MOVE_FLAME_WHEEL, MOVE_BITE, MOVE_ROAR, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [137] = { + .species = SPECIES_FARFETCHD, + .moves = {MOVE_SLASH, MOVE_KNOCK_OFF, MOVE_SWORDS_DANCE, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_STICK, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [138] = { + .species = SPECIES_OMANYTE, + .moves = {MOVE_MUD_SHOT, MOVE_WATER_GUN, MOVE_ANCIENT_POWER, MOVE_TICKLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [139] = { + .species = SPECIES_KABUTO, + .moves = {MOVE_MEGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_SAND_ATTACK, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [140] = { + .species = SPECIES_LILEEP, + .moves = {MOVE_ANCIENT_POWER, MOVE_ACID, MOVE_INGRAIN, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [141] = { + .species = SPECIES_ANORITH, + .moves = {MOVE_METAL_CLAW, MOVE_FURY_CUTTER, MOVE_ANCIENT_POWER, MOVE_WATER_GUN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [142] = { + .species = SPECIES_AIPOM, + .moves = {MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_BATON_PASS, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [143] = { + .species = SPECIES_ELEKID, + .moves = {MOVE_THUNDER_PUNCH, MOVE_QUICK_ATTACK, MOVE_SWIFT, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAIVE + }, + [144] = { + .species = SPECIES_LOUDRED, + .moves = {MOVE_STOMP, MOVE_HOWL, MOVE_ASTONISH, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [145] = { + .species = SPECIES_SPINDA, + .moves = {MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FAINT_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [146] = { + .species = SPECIES_NIDORINA, + .moves = {MOVE_DOUBLE_KICK, MOVE_BITE, MOVE_AERIAL_ACE, MOVE_FLATTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [147] = { + .species = SPECIES_NIDORINO, + .moves = {MOVE_DOUBLE_KICK, MOVE_WATER_PULSE, MOVE_MUD_SLAP, MOVE_FLATTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [148] = { + .species = SPECIES_FLAAFFY, + .moves = {MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_COTTON_SPORE, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MILD + }, + [149] = { + .species = SPECIES_MAGBY, + .moves = {MOVE_FIRE_PUNCH, MOVE_SMOKESCREEN, MOVE_CONFUSE_RAY, MOVE_SMOG}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [150] = { + .species = SPECIES_NOSEPASS, + .moves = {MOVE_ROCK_SLIDE, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [151] = { + .species = SPECIES_CORSOLA, + .moves = {MOVE_BUBBLE_BEAM, MOVE_MIRROR_COAT, MOVE_ATTRACT, MOVE_ANCIENT_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [152] = { + .species = SPECIES_MAWILE, + .moves = {MOVE_CRUNCH, MOVE_FAKE_TEARS, MOVE_IRON_DEFENSE, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [153] = { + .species = SPECIES_BUTTERFREE, + .moves = {MOVE_SILVER_WIND, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_WHIRLWIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [154] = { + .species = SPECIES_BEEDRILL, + .moves = {MOVE_TWINEEDLE, MOVE_PURSUIT, MOVE_ENDEAVOR, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [155] = { + .species = SPECIES_POLIWHIRL, + .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_SLAP, MOVE_ICY_WIND, MOVE_RAIN_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [156] = { + .species = SPECIES_ONIX, + .moves = {MOVE_ROCK_SLIDE, MOVE_BIND, MOVE_DRAGON_BREATH, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [157] = { + .species = SPECIES_BEAUTIFLY, + .moves = {MOVE_SILVER_WIND, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_WHIRLWIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [158] = { + .species = SPECIES_DUSTOX, + .moves = {MOVE_SILVER_WIND, MOVE_TOXIC, MOVE_PSYBEAM, MOVE_WHIRLWIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [159] = { + .species = SPECIES_LEDIAN, + .moves = {MOVE_COMET_PUNCH, MOVE_BATON_PASS, MOVE_SWORDS_DANCE, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_BASHFUL + }, + [160] = { + .species = SPECIES_ARIADOS, + .moves = {MOVE_SIGNAL_BEAM, MOVE_SPIDER_WEB, MOVE_NIGHT_SHADE, MOVE_TOXIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SERIOUS + }, + [161] = { + .species = SPECIES_YANMA, + .moves = {MOVE_SIGNAL_BEAM, MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, MOVE_DETECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_RELAXED + }, + [162] = { + .species = SPECIES_DELCATTY, + .moves = {MOVE_SECRET_POWER, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_HEAL_BELL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [163] = { + .species = SPECIES_SABLEYE, + .moves = {MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY, MOVE_KNOCK_OFF, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [164] = { + .species = SPECIES_LICKITUNG, + .moves = {MOVE_SLAM, MOVE_BRICK_BREAK, MOVE_LICK, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [165] = { + .species = SPECIES_WEEPINBELL, + .moves = {MOVE_RAZOR_LEAF, MOVE_ACID, MOVE_WRAP, MOVE_SWEET_SCENT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [166] = { + .species = SPECIES_GRAVELER, + .moves = {MOVE_MAGNITUDE, MOVE_ROCK_THROW, MOVE_DEFENSE_CURL, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [167] = { + .species = SPECIES_GLOOM, + .moves = {MOVE_PETAL_DANCE, MOVE_ACID, MOVE_STUN_SPORE, MOVE_MOONLIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [168] = { + .species = SPECIES_PORYGON, + .moves = {MOVE_PSYBEAM, MOVE_ICY_WIND, MOVE_RECYCLE, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [169] = { + .species = SPECIES_KADABRA, + .moves = {MOVE_CONFUSION, MOVE_ROLE_PLAY, MOVE_FUTURE_SIGHT, MOVE_DISABLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [170] = { + .species = SPECIES_WAILMER, + .moves = {MOVE_WHIRLPOOL, MOVE_ROAR, MOVE_DEFENSE_CURL, MOVE_ROLLOUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_DOCILE + }, + [171] = { + .species = SPECIES_ROSELIA, + .moves = {MOVE_MAGICAL_LEAF, MOVE_TOXIC, MOVE_GRASS_WHISTLE, MOVE_COTTON_SPORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [172] = { + .species = SPECIES_VOLBEAT, + .moves = {MOVE_SILVER_WIND, MOVE_CONFUSE_RAY, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [173] = { + .species = SPECIES_ILLUMISE, + .moves = {MOVE_SILVER_WIND, MOVE_WISH, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [174] = { + .species = SPECIES_IVYSAUR, + .moves = {MOVE_PETAL_DANCE, MOVE_GROWTH, MOVE_SWEET_SCENT, MOVE_FURY_CUTTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_GENTLE + }, + [175] = { + .species = SPECIES_CHARMELEON, + .moves = {MOVE_SLASH, MOVE_FIRE_SPIN, MOVE_SWORDS_DANCE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [176] = { + .species = SPECIES_WARTORTLE, + .moves = {MOVE_WATER_PULSE, MOVE_BITE, MOVE_MUD_SLAP, MOVE_YAWN}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [177] = { + .species = SPECIES_PARASECT, + .moves = {MOVE_SLASH, MOVE_PSYBEAM, MOVE_STUN_SPORE, MOVE_FLASH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_RASH + }, + [178] = { + .species = SPECIES_MACHOKE, + .moves = {MOVE_LOW_KICK, MOVE_ROCK_TOMB, MOVE_FORESIGHT, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [179] = { + .species = SPECIES_HAUNTER, + .moves = {MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_SPITE, MOVE_GRUDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RASH + }, + [180] = { + .species = SPECIES_BAYLEEF, + .moves = {MOVE_RAZOR_LEAF, MOVE_TOXIC, MOVE_SAFEGUARD, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [181] = { + .species = SPECIES_QUILAVA, + .moves = {MOVE_FLAME_WHEEL, MOVE_FURY_SWIPES, MOVE_SWIFT, MOVE_SMOKESCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [182] = { + .species = SPECIES_CROCONAW, + .moves = {MOVE_SLASH, MOVE_WATER_PULSE, MOVE_BITE, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [183] = { + .species = SPECIES_TOGETIC, + .moves = {MOVE_AERIAL_ACE, MOVE_MAGICAL_LEAF, MOVE_WISH, MOVE_FOLLOW_ME}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [184] = { + .species = SPECIES_MURKROW, + .moves = {MOVE_FAINT_ATTACK, MOVE_FLY, MOVE_TORMENT, MOVE_TAUNT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [185] = { + .species = SPECIES_WOBBUFFET, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_CHARM, MOVE_SAFEGUARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [186] = { + .species = SPECIES_PLUSLE, + .moves = {MOVE_SPARK, MOVE_FAKE_TEARS, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [187] = { + .species = SPECIES_MINUN, + .moves = {MOVE_SPARK, MOVE_CHARM, MOVE_ENCORE, MOVE_HELPING_HAND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [188] = { + .species = SPECIES_GROVYLE, + .moves = {MOVE_FURY_CUTTER, MOVE_ENDEAVOR, MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [189] = { + .species = SPECIES_COMBUSKEN, + .moves = {MOVE_EMBER, MOVE_DOUBLE_KICK, MOVE_QUICK_ATTACK, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [190] = { + .species = SPECIES_MARSHTOMP, + .moves = {MOVE_MUD_SHOT, MOVE_WATER_GUN, MOVE_ROCK_TOMB, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [191] = { + .species = SPECIES_PONYTA, + .moves = {MOVE_FIRE_SPIN, MOVE_BOUNCE, MOVE_QUICK_ATTACK, MOVE_TAIL_WHIP}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [192] = { + .species = SPECIES_AZUMARILL, + .moves = {MOVE_BUBBLE_BEAM, MOVE_FACADE, MOVE_DIG, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_DOCILE + }, + [193] = { + .species = SPECIES_SUDOWOODO, + .moves = {MOVE_ROCK_SLIDE, MOVE_FAINT_ATTACK, MOVE_SANDSTORM, MOVE_BLOCK}, + .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [194] = { + .species = SPECIES_MAGCARGO, + .moves = {MOVE_ROCK_SLIDE, MOVE_EMBER, MOVE_ACID_ARMOR, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_GENTLE + }, + [195] = { + .species = SPECIES_PUPITAR, + .moves = {MOVE_DIG, MOVE_BITE, MOVE_SCARY_FACE, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [196] = { + .species = SPECIES_SEALEO, + .moves = {MOVE_ICE_BALL, MOVE_HAIL, MOVE_SNORE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [197] = { + .species = SPECIES_RATICATE, + .moves = {MOVE_ENDEAVOR, MOVE_PURSUIT, MOVE_SCARY_FACE, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAIVE + }, + [198] = { + .species = SPECIES_MASQUERAIN, + .moves = {MOVE_SILVER_WIND, MOVE_AERIAL_ACE, MOVE_ICY_WIND, MOVE_STUN_SPORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_RELAXED + }, + [199] = { + .species = SPECIES_FURRET, + .moves = {MOVE_SLAM, MOVE_PROTECT, MOVE_HELPING_HAND, MOVE_FOLLOW_ME}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_SERIOUS + }, + [200] = { + .species = SPECIES_DUNSPARCE, + .moves = {MOVE_HEADBUTT, MOVE_GLARE, MOVE_DEFENSE_CURL, MOVE_ROLLOUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [201] = { + .species = SPECIES_DRAGONAIR, + .moves = {MOVE_DRAGON_BREATH, MOVE_LEER, MOVE_WRAP, MOVE_SAFEGUARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [202] = { + .species = SPECIES_MIGHTYENA, + .moves = {MOVE_BITE, MOVE_POISON_FANG, MOVE_TAUNT, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_TIMID + }, + [203] = { + .species = SPECIES_LINOONE, + .moves = {MOVE_SECRET_POWER, MOVE_SAND_ATTACK, MOVE_COVET, MOVE_TICKLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [204] = { + .species = SPECIES_CASTFORM, + .moves = {MOVE_EMBER, MOVE_WATER_PULSE, MOVE_SHOCK_WAVE, MOVE_ICY_WIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HASTY + }, + [205] = { + .species = SPECIES_SHELGON, + .moves = {MOVE_HEADBUTT, MOVE_DRAGON_BREATH, MOVE_PROTECT, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [206] = { + .species = SPECIES_METANG, + .moves = {MOVE_METAL_CLAW, MOVE_CONFUSION, MOVE_PURSUIT, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [207] = { + .species = SPECIES_WIGGLYTUFF, + .moves = {MOVE_SING, MOVE_DISABLE, MOVE_WISH, MOVE_SECRET_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_RELAXED + }, + [208] = { + .species = SPECIES_SUNFLORA, + .moves = {MOVE_PETAL_DANCE, MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [209] = { + .species = SPECIES_CHIMECHO, + .moves = {MOVE_PSYWAVE, MOVE_TAKE_DOWN, MOVE_HEAL_BELL, MOVE_SAFEGUARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [210] = { + .species = SPECIES_GLIGAR, + .moves = {MOVE_METAL_CLAW, MOVE_DIG, MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HASTY + }, + [211] = { + .species = SPECIES_QWILFISH, + .moves = {MOVE_BUBBLE_BEAM, MOVE_PIN_MISSILE, MOVE_SPIKES, MOVE_MINIMIZE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, + .nature = NATURE_IMPISH + }, + [212] = { + .species = SPECIES_SNEASEL, + .moves = {MOVE_FAINT_ATTACK, MOVE_FAKE_OUT, MOVE_ICY_WIND, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [213] = { + .species = SPECIES_PELIPPER, + .moves = {MOVE_WATER_PULSE, MOVE_AERIAL_ACE, MOVE_STOCKPILE, MOVE_SWALLOW}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [214] = { + .species = SPECIES_SWELLOW, + .moves = {MOVE_FLY, MOVE_ENDEAVOR, MOVE_FACADE, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [215] = { + .species = SPECIES_LAIRON, + .moves = {MOVE_METAL_CLAW, MOVE_ROCK_TOMB, MOVE_IRON_DEFENSE, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [216] = { + .species = SPECIES_TANGELA, + .moves = {MOVE_MEGA_DRAIN, MOVE_SLAM, MOVE_TOXIC, MOVE_BIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [217] = { + .species = SPECIES_ARBOK, + .moves = {MOVE_POISON_FANG, MOVE_DIG, MOVE_BITE, MOVE_GLARE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [218] = { + .species = SPECIES_PERSIAN, + .moves = {MOVE_FAKE_OUT, MOVE_SLASH, MOVE_TORMENT, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [219] = { + .species = SPECIES_SEADRA, + .moves = {MOVE_AURORA_BEAM, MOVE_SMOKESCREEN, MOVE_WATER_GUN, MOVE_RAIN_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [220] = { + .species = SPECIES_KECLEON, + .moves = {MOVE_SECRET_POWER, MOVE_PSYBEAM, MOVE_MAGIC_COAT, MOVE_SEISMIC_TOSS}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAIVE + }, + [221] = { + .species = SPECIES_VIGOROTH, + .moves = {MOVE_SLASH, MOVE_COUNTER, MOVE_ENCORE, MOVE_UPROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [222] = { + .species = SPECIES_LUNATONE, + .moves = {MOVE_CONFUSION, MOVE_COSMIC_POWER, MOVE_LIGHT_SCREEN, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [223] = { + .species = SPECIES_SOLROCK, + .moves = {MOVE_CONFUSION, MOVE_FIRE_SPIN, MOVE_LIGHT_SCREEN, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [224] = { + .species = SPECIES_NOCTOWL, + .moves = {MOVE_CONFUSION, MOVE_AERIAL_ACE, MOVE_FAINT_ATTACK, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [225] = { + .species = SPECIES_SANDSLASH, + .moves = {MOVE_CRUSH_CLAW, MOVE_ROCK_SLIDE, MOVE_SWIFT, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [226] = { + .species = SPECIES_VENOMOTH, + .moves = {MOVE_SILVER_WIND, MOVE_PSYBEAM, MOVE_SLEEP_POWDER, MOVE_SKILL_SWAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [227] = { + .species = SPECIES_CHANSEY, + .moves = {MOVE_METRONOME, MOVE_REFRESH, MOVE_DEFENSE_CURL, MOVE_MINIMIZE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_RELAXED + }, + [228] = { + .species = SPECIES_SEAKING, + .moves = {MOVE_WATER_PULSE, MOVE_PSYBEAM, MOVE_SWIFT, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [229] = { + .species = SPECIES_JUMPLUFF, + .moves = {MOVE_AERIAL_ACE, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [230] = { + .species = SPECIES_PILOSWINE, + .moves = {MOVE_DIG, MOVE_ANCIENT_POWER, MOVE_HAIL, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [231] = { + .species = SPECIES_GOLBAT, + .moves = {MOVE_AIR_CUTTER, MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_STEEL_WING}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [232] = { + .species = SPECIES_PRIMEAPE, + .moves = {MOVE_KARATE_CHOP, MOVE_COUNTER, MOVE_SWAGGER, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [233] = { + .species = SPECIES_HITMONLEE, + .moves = {MOVE_ROLLING_KICK, MOVE_BRICK_BREAK, MOVE_FOCUS_ENERGY, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [234] = { + .species = SPECIES_HITMONCHAN, + .moves = {MOVE_MACH_PUNCH, MOVE_SKY_UPPERCUT, MOVE_DETECT, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [235] = { + .species = SPECIES_GIRAFARIG, + .moves = {MOVE_PSYBEAM, MOVE_STOMP, MOVE_WISH, MOVE_SKILL_SWAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [236] = { + .species = SPECIES_HITMONTOP, + .moves = {MOVE_TRIPLE_KICK, MOVE_DIG, MOVE_MACH_PUNCH, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [237] = { + .species = SPECIES_BANETTE, + .moves = {MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SPITE, MOVE_KNOCK_OFF}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [238] = { + .species = SPECIES_NINJASK, + .moves = {MOVE_BATON_PASS, MOVE_SWORDS_DANCE, MOVE_ENDURE, MOVE_DIG}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MILD + }, + [239] = { + .species = SPECIES_SEVIPER, + .moves = {MOVE_POISON_TAIL, MOVE_BITE, MOVE_GLARE, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [240] = { + .species = SPECIES_ZANGOOSE, + .moves = {MOVE_SLASH, MOVE_DOUBLE_KICK, MOVE_ROAR, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [241] = { + .species = SPECIES_CAMERUPT, + .moves = {MOVE_MAGNITUDE, MOVE_PROTECT, MOVE_SANDSTORM, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [242] = { + .species = SPECIES_SHARPEDO, + .moves = {MOVE_SLASH, MOVE_BITE, MOVE_WATER_PULSE, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [243] = { + .species = SPECIES_TROPIUS, + .moves = {MOVE_MAGICAL_LEAF, MOVE_WHIRLWIND, MOVE_AERIAL_ACE, MOVE_STEEL_WING}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [244] = { + .species = SPECIES_MAGNETON, + .moves = {MOVE_SHOCK_WAVE, MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_LONELY + }, + [245] = { + .species = SPECIES_MANTINE, + .moves = {MOVE_BUBBLE_BEAM, MOVE_AERIAL_ACE, MOVE_RAIN_DANCE, MOVE_ICY_WIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [246] = { + .species = SPECIES_STANTLER, + .moves = {MOVE_EXTRASENSORY, MOVE_CONFUSE_RAY, MOVE_STOMP, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_GENTLE + }, + [247] = { + .species = SPECIES_ABSOL, + .moves = {MOVE_BITE, MOVE_RAZOR_WIND, MOVE_FUTURE_SIGHT, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [248] = { + .species = SPECIES_SWALOT, + .moves = {MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_SPIT_UP, MOVE_SLUDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIRKY + }, + [249] = { + .species = SPECIES_CRAWDAUNT, + .moves = {MOVE_BUBBLE_BEAM, MOVE_VICE_GRIP, MOVE_KNOCK_OFF, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [250] = { + .species = SPECIES_PIDGEOT, + .moves = {MOVE_AERIAL_ACE, MOVE_FEATHER_DANCE, MOVE_MUD_SLAP, MOVE_FAINT_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [251] = { + .species = SPECIES_GRUMPIG, + .moves = {MOVE_PSYBEAM, MOVE_CONFUSE_RAY, MOVE_FUTURE_SIGHT, MOVE_MAGIC_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [252] = { + .species = SPECIES_TORKOAL, + .moves = {MOVE_EMBER, MOVE_FIRE_SPIN, MOVE_SMOKESCREEN, MOVE_AMNESIA}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [253] = { + .species = SPECIES_KINGLER, + .moves = {MOVE_CRABHAMMER, MOVE_METAL_CLAW, MOVE_MUD_SHOT, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [254] = { + .species = SPECIES_CACTURNE, + .moves = {MOVE_NEEDLE_ARM, MOVE_FAINT_ATTACK, MOVE_ACID, MOVE_MEGA_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_HASTY + }, + [255] = { + .species = SPECIES_BELLOSSOM, + .moves = {MOVE_PETAL_DANCE, MOVE_SAFEGUARD, MOVE_SUNNY_DAY, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [256] = { + .species = SPECIES_OCTILLERY, + .moves = {MOVE_OCTAZOOKA, MOVE_AURORA_BEAM, MOVE_PSYBEAM, MOVE_ROCK_BLAST}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [257] = { + .species = SPECIES_HUNTAIL, + .moves = {MOVE_WHIRLPOOL, MOVE_SCARY_FACE, MOVE_MUD_SLAP, MOVE_BITE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [258] = { + .species = SPECIES_GOREBYSS, + .moves = {MOVE_WHIRLPOOL, MOVE_AMNESIA, MOVE_ICY_WIND, MOVE_CONFUSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [259] = { + .species = SPECIES_RELICANTH, + .moves = {MOVE_ANCIENT_POWER, MOVE_WATER_PULSE, MOVE_HARDEN, MOVE_AMNESIA}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [260] = { + .species = SPECIES_OMASTAR, + .moves = {MOVE_BUBBLE_BEAM, MOVE_SPIKE_CANNON, MOVE_TICKLE, MOVE_ANCIENT_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [261] = { + .species = SPECIES_KABUTOPS, + .moves = {MOVE_SLASH, MOVE_DIG, MOVE_FURY_CUTTER, MOVE_KNOCK_OFF}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [262] = { + .species = SPECIES_POLIWRATH, + .moves = {MOVE_SUBMISSION, MOVE_DIG, MOVE_ROCK_TOMB, MOVE_BUBBLE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [263] = { + .species = SPECIES_SCYTHER, + .moves = {MOVE_FURY_CUTTER, MOVE_AERIAL_ACE, MOVE_LIGHT_SCREEN, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [264] = { + .species = SPECIES_PINSIR, + .moves = {MOVE_SUBMISSION, MOVE_FOCUS_ENERGY, MOVE_SWORDS_DANCE, MOVE_REVENGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [265] = { + .species = SPECIES_POLITOED, + .moves = {MOVE_DIVE, MOVE_DIG, MOVE_HYPNOSIS, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_RELAXED + }, + [266] = { + .species = SPECIES_CLOYSTER, + .moves = {MOVE_AURORA_BEAM, MOVE_SPIKE_CANNON, MOVE_SUPERSONIC, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [267] = { + .species = SPECIES_DELCATTY, + .moves = {MOVE_FAKE_TEARS, MOVE_SING, MOVE_THUNDERBOLT, MOVE_ICE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [268] = { + .species = SPECIES_SABLEYE, + .moves = {MOVE_SHADOW_BALL, MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [269] = { + .species = SPECIES_LICKITUNG, + .moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [270] = { + .species = SPECIES_WEEPINBELL, + .moves = {MOVE_SLUDGE_BOMB, MOVE_RAZOR_LEAF, MOVE_SLEEP_POWDER, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIRKY + }, + [271] = { + .species = SPECIES_GRAVELER, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [272] = { + .species = SPECIES_GLOOM, + .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SLUDGE_BOMB, MOVE_MOONLIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [273] = { + .species = SPECIES_PORYGON, + .moves = {MOVE_TRI_ATTACK, MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [274] = { + .species = SPECIES_KADABRA, + .moves = {MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_REFLECT, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [275] = { + .species = SPECIES_WAILMER, + .moves = {MOVE_WATER_SPOUT, MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_DOCILE + }, + [276] = { + .species = SPECIES_ROSELIA, + .moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_GRASS_WHISTLE, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [277] = { + .species = SPECIES_VOLBEAT, + .moves = {MOVE_SIGNAL_BEAM, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_TAIL_GLOW}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [278] = { + .species = SPECIES_ILLUMISE, + .moves = {MOVE_SILVER_WIND, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [279] = { + .species = SPECIES_IVYSAUR, + .moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_SLEEP_POWDER, MOVE_LEECH_SEED}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [280] = { + .species = SPECIES_CHARMELEON, + .moves = {MOVE_FLAMETHROWER, MOVE_SLASH, MOVE_ANCIENT_POWER, MOVE_DRAGON_RAGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [281] = { + .species = SPECIES_WARTORTLE, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAPID_SPIN, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [282] = { + .species = SPECIES_PARASECT, + .moves = {MOVE_SPORE, MOVE_GIGA_DRAIN, MOVE_DIG, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [283] = { + .species = SPECIES_MACHOKE, + .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FORESIGHT, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [284] = { + .species = SPECIES_HAUNTER, + .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_NIGHTMARE, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [285] = { + .species = SPECIES_BAYLEEF, + .moves = {MOVE_GIGA_DRAIN, MOVE_BODY_SLAM, MOVE_GRASS_WHISTLE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [286] = { + .species = SPECIES_QUILAVA, + .moves = {MOVE_FLAMETHROWER, MOVE_CRUSH_CLAW, MOVE_BODY_SLAM, MOVE_SMOKESCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [287] = { + .species = SPECIES_CROCONAW, + .moves = {MOVE_MEGA_KICK, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_DIG}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [288] = { + .species = SPECIES_TOGETIC, + .moves = {MOVE_RETURN, MOVE_SWEET_KISS, MOVE_AERIAL_ACE, MOVE_YAWN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [289] = { + .species = SPECIES_MURKROW, + .moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [290] = { + .species = SPECIES_WOBBUFFET, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_ENCORE, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_CAREFUL + }, + [291] = { + .species = SPECIES_PLUSLE, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_SEISMIC_TOSS, MOVE_WISH}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [292] = { + .species = SPECIES_MINUN, + .moves = {MOVE_THUNDERBOLT, MOVE_ATTRACT, MOVE_CHARM, MOVE_WISH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [293] = { + .species = SPECIES_GROVYLE, + .moves = {MOVE_GIGA_DRAIN, MOVE_CRUSH_CLAW, MOVE_SCREECH, MOVE_ROCK_TOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [294] = { + .species = SPECIES_COMBUSKEN, + .moves = {MOVE_FLAMETHROWER, MOVE_SKY_UPPERCUT, MOVE_SLASH, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [295] = { + .species = SPECIES_MARSHTOMP, + .moves = {MOVE_MUDDY_WATER, MOVE_EARTHQUAKE, MOVE_MUD_SLAP, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [296] = { + .species = SPECIES_PONYTA, + .moves = {MOVE_FLAMETHROWER, MOVE_BODY_SLAM, MOVE_DOUBLE_KICK, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [297] = { + .species = SPECIES_AZUMARILL, + .moves = {MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_IRON_TAIL, MOVE_DIG}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [298] = { + .species = SPECIES_SUDOWOODO, + .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_LOW_KICK, MOVE_SELF_DESTRUCT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [299] = { + .species = SPECIES_MAGCARGO, + .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [300] = { + .species = SPECIES_PUPITAR, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUNCH, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [301] = { + .species = SPECIES_SEALEO, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_BODY_SLAM, MOVE_HAIL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [302] = { + .species = SPECIES_RATICATE, + .moves = {MOVE_SUPER_FANG, MOVE_HYPER_FANG, MOVE_SHADOW_BALL, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [303] = { + .species = SPECIES_MASQUERAIN, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_GIGA_DRAIN, MOVE_STUN_SPORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [304] = { + .species = SPECIES_FURRET, + .moves = {MOVE_TRICK, MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_FOLLOW_ME}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [305] = { + .species = SPECIES_DUNSPARCE, + .moves = {MOVE_ICE_BEAM, MOVE_ROCK_TOMB, MOVE_BITE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [306] = { + .species = SPECIES_DRAGONAIR, + .moves = {MOVE_RETURN, MOVE_REST, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [307] = { + .species = SPECIES_MIGHTYENA, + .moves = {MOVE_CRUNCH, MOVE_SHADOW_BALL, MOVE_FRUSTRATION, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIRKY + }, + [308] = { + .species = SPECIES_LINOONE, + .moves = {MOVE_TRICK, MOVE_FRUSTRATION, MOVE_THUNDER_WAVE, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [309] = { + .species = SPECIES_CASTFORM, + .moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_WATER_PULSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [310] = { + .species = SPECIES_SHELGON, + .moves = {MOVE_FRUSTRATION, MOVE_DRAGON_DANCE, MOVE_CRUNCH, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [311] = { + .species = SPECIES_METANG, + .moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_BODY_SLAM, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [312] = { + .species = SPECIES_WIGGLYTUFF, + .moves = {MOVE_FAKE_TEARS, MOVE_SING, MOVE_DREAM_EATER, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_DOCILE + }, + [313] = { + .species = SPECIES_SUNFLORA, + .moves = {MOVE_GIGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_GROWTH, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [314] = { + .species = SPECIES_CHIMECHO, + .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEAL_BELL}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [315] = { + .species = SPECIES_GLIGAR, + .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_GUILLOTINE, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [316] = { + .species = SPECIES_QWILFISH, + .moves = {MOVE_REVENGE, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [317] = { + .species = SPECIES_SNEASEL, + .moves = {MOVE_CRUSH_CLAW, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [318] = { + .species = SPECIES_PELIPPER, + .moves = {MOVE_SURF, MOVE_BLIZZARD, MOVE_AERIAL_ACE, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [319] = { + .species = SPECIES_SWELLOW, + .moves = {MOVE_FACADE, MOVE_AERIAL_ACE, MOVE_PURSUIT, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [320] = { + .species = SPECIES_LAIRON, + .moves = {MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_ROAR, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [321] = { + .species = SPECIES_TANGELA, + .moves = {MOVE_GIGA_DRAIN, MOVE_STUN_SPORE, MOVE_REST, MOVE_AMNESIA}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [322] = { + .species = SPECIES_ARBOK, + .moves = {MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_GLARE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [323] = { + .species = SPECIES_PERSIAN, + .moves = {MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_ROAR, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [324] = { + .species = SPECIES_SEADRA, + .moves = {MOVE_HYDRO_PUMP, MOVE_FRUSTRATION, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [325] = { + .species = SPECIES_KECLEON, + .moves = {MOVE_TRICK, MOVE_BRICK_BREAK, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [326] = { + .species = SPECIES_VIGOROTH, + .moves = {MOVE_CRUSH_CLAW, MOVE_REVERSAL, MOVE_ENDURE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [327] = { + .species = SPECIES_LUNATONE, + .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_COSMIC_POWER, MOVE_CALM_MIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [328] = { + .species = SPECIES_SOLROCK, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COSMIC_POWER, MOVE_OVERHEAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [329] = { + .species = SPECIES_NOCTOWL, + .moves = {MOVE_PSYCHIC, MOVE_FAINT_ATTACK, MOVE_AERIAL_ACE, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [330] = { + .species = SPECIES_SANDSLASH, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUSH_CLAW, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [331] = { + .species = SPECIES_VENOMOTH, + .moves = {MOVE_SIGNAL_BEAM, MOVE_PSYCHIC, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [332] = { + .species = SPECIES_CHANSEY, + .moves = {MOVE_SEISMIC_TOSS, MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_SOFT_BOILED}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_RELAXED + }, + [333] = { + .species = SPECIES_SEAKING, + .moves = {MOVE_HORN_DRILL, MOVE_MEGAHORN, MOVE_SLEEP_TALK, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [334] = { + .species = SPECIES_JUMPLUFF, + .moves = {MOVE_LEECH_SEED, MOVE_SLEEP_POWDER, MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BOLD + }, + [335] = { + .species = SPECIES_PILOSWINE, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BODY_SLAM, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_ADAMANT + }, + [336] = { + .species = SPECIES_GOLBAT, + .moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_AIR_CUTTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [337] = { + .species = SPECIES_PRIMEAPE, + .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_TOMB, MOVE_OVERHEAT, MOVE_BULK_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [338] = { + .species = SPECIES_HITMONLEE, + .moves = {MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_FORESIGHT, MOVE_ROCK_TOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [339] = { + .species = SPECIES_HITMONCHAN, + .moves = {MOVE_DYNAMIC_PUNCH, MOVE_MACH_PUNCH, MOVE_DETECT, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [340] = { + .species = SPECIES_GIRAFARIG, + .moves = {MOVE_PSYCHIC, MOVE_CRUNCH, MOVE_BATON_PASS, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [341] = { + .species = SPECIES_HITMONTOP, + .moves = {MOVE_DOUBLE_EDGE, MOVE_SEISMIC_TOSS, MOVE_ROCK_SLIDE, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [342] = { + .species = SPECIES_BANETTE, + .moves = {MOVE_SHADOW_BALL, MOVE_FRUSTRATION, MOVE_SCREECH, MOVE_WILL_O_WISP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_ADAMANT + }, + [343] = { + .species = SPECIES_NINJASK, + .moves = {MOVE_SLASH, MOVE_SHADOW_BALL, MOVE_SWORDS_DANCE, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [344] = { + .species = SPECIES_SEVIPER, + .moves = {MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [345] = { + .species = SPECIES_ZANGOOSE, + .moves = {MOVE_CRUSH_CLAW, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [346] = { + .species = SPECIES_CAMERUPT, + .moves = {MOVE_EARTHQUAKE, MOVE_ERUPTION, MOVE_BODY_SLAM, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [347] = { + .species = SPECIES_SHARPEDO, + .moves = {MOVE_DOUBLE_EDGE, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_SURF}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [348] = { + .species = SPECIES_TROPIUS, + .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [349] = { + .species = SPECIES_MAGNETON, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [350] = { + .species = SPECIES_MANTINE, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAIN_DANCE, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [351] = { + .species = SPECIES_STANTLER, + .moves = {MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [352] = { + .species = SPECIES_ABSOL, + .moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_IRON_TAIL}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [353] = { + .species = SPECIES_SWALOT, + .moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_BODY_SLAM, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [354] = { + .species = SPECIES_CRAWDAUNT, + .moves = {MOVE_GUILLOTINE, MOVE_FRUSTRATION, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [355] = { + .species = SPECIES_PIDGEOT, + .moves = {MOVE_RETURN, MOVE_AERIAL_ACE, MOVE_STEEL_WING, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [356] = { + .species = SPECIES_GRUMPIG, + .moves = {MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [357] = { + .species = SPECIES_TORKOAL, + .moves = {MOVE_OVERHEAT, MOVE_BODY_SLAM, MOVE_SMOKESCREEN, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [358] = { + .species = SPECIES_KINGLER, + .moves = {MOVE_GUILLOTINE, MOVE_ROCK_TOMB, MOVE_FLAIL, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [359] = { + .species = SPECIES_CACTURNE, + .moves = {MOVE_MEGA_KICK, MOVE_TEETER_DANCE, MOVE_FAINT_ATTACK, MOVE_SANDSTORM}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_HARDY + }, + [360] = { + .species = SPECIES_BELLOSSOM, + .moves = {MOVE_SOLAR_BEAM, MOVE_ATTRACT, MOVE_SUNNY_DAY, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [361] = { + .species = SPECIES_OCTILLERY, + .moves = {MOVE_OCTAZOOKA, MOVE_FIRE_BLAST, MOVE_THUNDER_WAVE, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [362] = { + .species = SPECIES_HUNTAIL, + .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_CRUNCH, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [363] = { + .species = SPECIES_GOREBYSS, + .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_PSYCHIC, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [364] = { + .species = SPECIES_RELICANTH, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AMNESIA, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [365] = { + .species = SPECIES_OMASTAR, + .moves = {MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_ICE_BEAM, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [366] = { + .species = SPECIES_KABUTOPS, + .moves = {MOVE_SLASH, MOVE_ROCK_SLIDE, MOVE_FLAIL, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [367] = { + .species = SPECIES_POLIWRATH, + .moves = {MOVE_BRICK_BREAK, MOVE_HYPNOSIS, MOVE_REST, MOVE_BELLY_DRUM}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [368] = { + .species = SPECIES_SCYTHER, + .moves = {MOVE_SILVER_WIND, MOVE_AERIAL_ACE, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [369] = { + .species = SPECIES_PINSIR, + .moves = {MOVE_GUILLOTINE, MOVE_SWORDS_DANCE, MOVE_FLAIL, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [370] = { + .species = SPECIES_POLITOED, + .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_MUD_SLAP, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [371] = { + .species = SPECIES_CLOYSTER, + .moves = {MOVE_DIVE, MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [372] = { + .species = SPECIES_DUGTRIO, + .moves = {MOVE_EARTHQUAKE, MOVE_TRI_ATTACK, MOVE_SLASH, MOVE_SAND_TOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [373] = { + .species = SPECIES_MEDICHAM, + .moves = {MOVE_PSYCHIC, MOVE_HI_JUMP_KICK, MOVE_CALM_MIND, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [374] = { + .species = SPECIES_MISDREAVUS, + .moves = {MOVE_PAIN_SPLIT, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [375] = { + .species = SPECIES_FEAROW, + .moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_FACADE, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [376] = { + .species = SPECIES_GRANBULL, + .moves = {MOVE_MEGA_KICK, MOVE_SMELLING_SALT, MOVE_THUNDER_WAVE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [377] = { + .species = SPECIES_JYNX, + .moves = {MOVE_ICE_BEAM, MOVE_FAKE_OUT, MOVE_LOVELY_KISS, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [378] = { + .species = SPECIES_DUSCLOPS, + .moves = {MOVE_WILL_O_WISP, MOVE_SEISMIC_TOSS, MOVE_PAIN_SPLIT, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [379] = { + .species = SPECIES_DODRIO, + .moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_SLEEP_TALK, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [380] = { + .species = SPECIES_MR_MIME, + .moves = {MOVE_PSYCHIC, MOVE_MAGICAL_LEAF, MOVE_FAKE_OUT, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [381] = { + .species = SPECIES_LANTURN, + .moves = {MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_ATTRACT, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [382] = { + .species = SPECIES_BRELOOM, + .moves = {MOVE_SKY_UPPERCUT, MOVE_MACH_PUNCH, MOVE_HEADBUTT, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [383] = { + .species = SPECIES_FORRETRESS, + .moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_LIGHT_SCREEN, MOVE_SPIKES}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [384] = { + .species = SPECIES_WHISCASH, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AMNESIA, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [385] = { + .species = SPECIES_XATU, + .moves = {MOVE_DRILL_PECK, MOVE_NIGHT_SHADE, MOVE_WISH, MOVE_FUTURE_SIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [386] = { + .species = SPECIES_SKARMORY, + .moves = {MOVE_STEEL_WING, MOVE_AIR_CUTTER, MOVE_COUNTER, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [387] = { + .species = SPECIES_MAROWAK, + .moves = {MOVE_BONEMERANG, MOVE_ROCK_SLIDE, MOVE_ICY_WIND, MOVE_HEADBUTT}, + .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [388] = { + .species = SPECIES_QUAGSIRE, + .moves = {MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_COUNTER, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [389] = { + .species = SPECIES_CLEFABLE, + .moves = {MOVE_METRONOME, MOVE_DOUBLE_TEAM, MOVE_REFLECT, MOVE_FOLLOW_ME}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BRAVE + }, + [390] = { + .species = SPECIES_HARIYAMA, + .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [391] = { + .species = SPECIES_RAICHU, + .moves = {MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_LIGHT_SCREEN, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [392] = { + .species = SPECIES_DEWGONG, + .moves = {MOVE_ICE_BEAM, MOVE_ICY_WIND, MOVE_HEADBUTT, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [393] = { + .species = SPECIES_MANECTRIC, + .moves = {MOVE_THUNDERBOLT, MOVE_FLASH, MOVE_QUICK_ATTACK, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [394] = { + .species = SPECIES_VILEPLUME, + .moves = {MOVE_SLUDGE_BOMB, MOVE_PETAL_DANCE, MOVE_MOONLIGHT, MOVE_AROMATHERAPY}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [395] = { + .species = SPECIES_VICTREEBEL, + .moves = {MOVE_GIGA_DRAIN, MOVE_SLEEP_POWDER, MOVE_SWEET_SCENT, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [396] = { + .species = SPECIES_ELECTRODE, + .moves = {MOVE_THUNDERBOLT, MOVE_SWIFT, MOVE_LIGHT_SCREEN, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [397] = { + .species = SPECIES_EXPLOUD, + .moves = {MOVE_HYPER_VOICE, MOVE_SHADOW_BALL, MOVE_SLEEP_TALK, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [398] = { + .species = SPECIES_SHIFTRY, + .moves = {MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_QUICK_ATTACK, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [399] = { + .species = SPECIES_GLALIE, + .moves = {MOVE_ICE_BEAM, MOVE_CRUNCH, MOVE_HAIL, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [400] = { + .species = SPECIES_LUDICOLO, + .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [401] = { + .species = SPECIES_HYPNO, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_HYPNOSIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [402] = { + .species = SPECIES_GOLEM, + .moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ROCK_TOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [403] = { + .species = SPECIES_RHYDON, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SCARY_FACE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [404] = { + .species = SPECIES_ALAKAZAM, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [405] = { + .species = SPECIES_WEEZING, + .moves = {MOVE_SLUDGE_BOMB, MOVE_WILL_O_WISP, MOVE_SHADOW_BALL, MOVE_SMOKESCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [406] = { + .species = SPECIES_KANGASKHAN, + .moves = {MOVE_DIZZY_PUNCH, MOVE_BRICK_BREAK, MOVE_COUNTER, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [407] = { + .species = SPECIES_ELECTABUZZ, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_BRICK_BREAK, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [408] = { + .species = SPECIES_TAUROS, + .moves = {MOVE_EARTHQUAKE, MOVE_THRASH, MOVE_SWAGGER, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [409] = { + .species = SPECIES_SLOWBRO, + .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_HEADBUTT, MOVE_ICE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [410] = { + .species = SPECIES_SLOWKING, + .moves = {MOVE_PSYCHIC, MOVE_BRICK_BREAK, MOVE_AMNESIA, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [411] = { + .species = SPECIES_MILTANK, + .moves = {MOVE_FACADE, MOVE_SHADOW_BALL, MOVE_COUNTER, MOVE_MILK_DRINK}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [412] = { + .species = SPECIES_ALTARIA, + .moves = {MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE, MOVE_REFRESH, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [413] = { + .species = SPECIES_NIDOQUEEN, + .moves = {MOVE_SLUDGE_BOMB, MOVE_DOUBLE_KICK, MOVE_BODY_SLAM, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [414] = { + .species = SPECIES_NIDOKING, + .moves = {MOVE_HORN_DRILL, MOVE_DOUBLE_KICK, MOVE_BODY_SLAM, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [415] = { + .species = SPECIES_MAGMAR, + .moves = {MOVE_FLAMETHROWER, MOVE_SMOKESCREEN, MOVE_BRICK_BREAK, MOVE_BARRIER}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [416] = { + .species = SPECIES_CRADILY, + .moves = {MOVE_GIGA_DRAIN, MOVE_ROCK_SLIDE, MOVE_BARRIER, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [417] = { + .species = SPECIES_ARMALDO, + .moves = {MOVE_SLASH, MOVE_AERIAL_ACE, MOVE_ANCIENT_POWER, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [418] = { + .species = SPECIES_GOLDUCK, + .moves = {MOVE_HYDRO_PUMP, MOVE_DIG, MOVE_BRICK_BREAK, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [419] = { + .species = SPECIES_RAPIDASH, + .moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_KICK, MOVE_QUICK_ATTACK, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIET + }, + [420] = { + .species = SPECIES_MUK, + .moves = {MOVE_SLUDGE_BOMB, MOVE_BODY_SLAM, MOVE_SCREECH, MOVE_MINIMIZE}, + .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [421] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_CONFUSE_RAY, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_TIMID + }, + [422] = { + .species = SPECIES_AMPHAROS, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_THUNDER_WAVE, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [423] = { + .species = SPECIES_SCIZOR, + .moves = {MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_COUNTER, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [424] = { + .species = SPECIES_HERACROSS, + .moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_ROCK_TOMB, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [425] = { + .species = SPECIES_URSARING, + .moves = {MOVE_MEGA_KICK, MOVE_CRUNCH, MOVE_AERIAL_ACE, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [426] = { + .species = SPECIES_HOUNDOOM, + .moves = {MOVE_FLAMETHROWER, MOVE_SHADOW_BALL, MOVE_COUNTER, MOVE_WILL_O_WISP}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [427] = { + .species = SPECIES_DONPHAN, + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SWAGGER, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [428] = { + .species = SPECIES_CLAYDOL, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [429] = { + .species = SPECIES_WAILORD, + .moves = {MOVE_SURF, MOVE_ICY_WIND, MOVE_BODY_SLAM, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [430] = { + .species = SPECIES_NINETALES, + .moves = {MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [431] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [432] = { + .species = SPECIES_SHUCKLE, + .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_SLEEP_TALK, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BRAVE + }, + [433] = { + .species = SPECIES_STEELIX, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_ROCK_TOMB, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [434] = { + .species = SPECIES_TENTACRUEL, + .moves = {MOVE_SLUDGE_BOMB, MOVE_ICY_WIND, MOVE_BARRIER, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_IMPISH + }, + [435] = { + .species = SPECIES_AERODACTYL, + .moves = {MOVE_ANCIENT_POWER, MOVE_DRAGON_BREATH, MOVE_AERIAL_ACE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [436] = { + .species = SPECIES_PORYGON2, + .moves = {MOVE_TRI_ATTACK, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [437] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_MAGICAL_LEAF, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_TIMID + }, + [438] = { + .species = SPECIES_EXEGGUTOR, + .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [439] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [440] = { + .species = SPECIES_FLYGON, + .moves = {MOVE_EARTHQUAKE, MOVE_STEEL_WING, MOVE_FAINT_ATTACK, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [441] = { + .species = SPECIES_VENUSAUR, + .moves = {MOVE_GIGA_DRAIN, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_SLEEP_POWDER}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [442] = { + .species = SPECIES_VAPOREON, + .moves = {MOVE_SURF, MOVE_ROAR, MOVE_BITE, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [443] = { + .species = SPECIES_JOLTEON, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [444] = { + .species = SPECIES_FLAREON, + .moves = {MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_BITE, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [445] = { + .species = SPECIES_MEGANIUM, + .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_LIGHT_SCREEN, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [446] = { + .species = SPECIES_ESPEON, + .moves = {MOVE_PSYCHIC, MOVE_CHARM, MOVE_CALM_MIND, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [447] = { + .species = SPECIES_UMBREON, + .moves = {MOVE_CONFUSE_RAY, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [448] = { + .species = SPECIES_BLASTOISE, + .moves = {MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_BITE, MOVE_SEISMIC_TOSS}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [449] = { + .species = SPECIES_FERALIGATR, + .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_AERIAL_ACE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [450] = { + .species = SPECIES_AGGRON, + .moves = {MOVE_IRON_TAIL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [451] = { + .species = SPECIES_BLAZIKEN, + .moves = {MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_DOUBLE_KICK, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [452] = { + .species = SPECIES_WALREIN, + .moves = {MOVE_BLIZZARD, MOVE_HAIL, MOVE_YAWN, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [453] = { + .species = SPECIES_SCEPTILE, + .moves = {MOVE_LEAF_BLADE, MOVE_LEECH_SEED, MOVE_AERIAL_ACE, MOVE_DETECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [454] = { + .species = SPECIES_CHARIZARD, + .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_ROAR, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [455] = { + .species = SPECIES_TYPHLOSION, + .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_SMOKESCREEN, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [456] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_SURF, MOVE_ATTRACT, MOVE_CONFUSE_RAY, MOVE_SING}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BOLD + }, + [457] = { + .species = SPECIES_CROBAT, + .moves = {MOVE_SLUDGE_BOMB, MOVE_BITE, MOVE_ASTONISH, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [458] = { + .species = SPECIES_SWAMPERT, + .moves = {MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_REST, MOVE_CURSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [459] = { + .species = SPECIES_GYARADOS, + .moves = {MOVE_RETURN, MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [460] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_FACADE, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [461] = { + .species = SPECIES_KINGDRA, + .moves = {MOVE_HYDRO_PUMP, MOVE_DRAGON_BREATH, MOVE_ICY_WIND, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [462] = { + .species = SPECIES_BLISSEY, + .moves = {MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_SING, MOVE_SOFT_BOILED}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BOLD + }, + [463] = { + .species = SPECIES_MILOTIC, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICY_WIND, MOVE_RECOVER, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [464] = { + .species = SPECIES_ARCANINE, + .moves = {MOVE_FLAMETHROWER, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [465] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE, MOVE_HEADBUTT, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [466] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_METEOR_MASH, MOVE_AERIAL_ACE, MOVE_FACADE, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [467] = { + .species = SPECIES_SLAKING, + .moves = {MOVE_YAWN, MOVE_BULK_UP, MOVE_SWAGGER, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [468] = { + .species = SPECIES_DUGTRIO, + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_TRI_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [469] = { + .species = SPECIES_MEDICHAM, + .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_PSYCHIC, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [470] = { + .species = SPECIES_MAROWAK, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_ICY_WIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [471] = { + .species = SPECIES_QUAGSIRE, + .moves = {MOVE_CURSE, MOVE_ATTRACT, MOVE_YAWN, MOVE_ANCIENT_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_SASSY + }, + [472] = { + .species = SPECIES_MISDREAVUS, + .moves = {MOVE_PSYCHIC, MOVE_ATTRACT, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BOLD + }, + [473] = { + .species = SPECIES_FEAROW, + .moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_ATTRACT, MOVE_PURSUIT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [474] = { + .species = SPECIES_GRANBULL, + .moves = {MOVE_OVERHEAT, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, + .nature = NATURE_QUIET + }, + [475] = { + .species = SPECIES_JYNX, + .moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_LOVELY_KISS, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [476] = { + .species = SPECIES_DUSCLOPS, + .moves = {MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [477] = { + .species = SPECIES_DODRIO, + .moves = {MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_FAINT_ATTACK, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [478] = { + .species = SPECIES_MR_MIME, + .moves = {MOVE_BATON_PASS, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_PSYCHIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [479] = { + .species = SPECIES_LANTURN, + .moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_THUNDERBOLT, MOVE_SURF}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [480] = { + .species = SPECIES_BRELOOM, + .moves = {MOVE_GIGA_DRAIN, MOVE_LEECH_SEED, MOVE_FOCUS_PUNCH, MOVE_SPORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [481] = { + .species = SPECIES_FORRETRESS, + .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_COUNTER, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [482] = { + .species = SPECIES_SKARMORY, + .moves = {MOVE_SPIKES, MOVE_ROAR, MOVE_DRILL_PECK, MOVE_TOXIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [483] = { + .species = SPECIES_WHISCASH, + .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_SPARK, MOVE_FUTURE_SIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [484] = { + .species = SPECIES_XATU, + .moves = {MOVE_FLY, MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [485] = { + .species = SPECIES_CLEFABLE, + .moves = {MOVE_METEOR_MASH, MOVE_COSMIC_POWER, MOVE_DOUBLE_TEAM, MOVE_FOLLOW_ME}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [486] = { + .species = SPECIES_HARIYAMA, + .moves = {MOVE_CROSS_CHOP, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [487] = { + .species = SPECIES_RAICHU, + .moves = {MOVE_THUNDERBOLT, MOVE_REVERSAL, MOVE_ENDURE, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [488] = { + .species = SPECIES_DEWGONG, + .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_ENCORE, MOVE_DISABLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [489] = { + .species = SPECIES_MANECTRIC, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_CRUNCH, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [490] = { + .species = SPECIES_VILEPLUME, + .moves = {MOVE_INGRAIN, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [491] = { + .species = SPECIES_VICTREEBEL, + .moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_SLEEP_POWDER, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_SERIOUS + }, + [492] = { + .species = SPECIES_ELECTRODE, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [493] = { + .species = SPECIES_EXPLOUD, + .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [494] = { + .species = SPECIES_SHIFTRY, + .moves = {MOVE_LEECH_SEED, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_IMPISH + }, + [495] = { + .species = SPECIES_GLALIE, + .moves = {MOVE_EXPLOSION, MOVE_ENDURE, MOVE_BODY_SLAM, MOVE_ICY_WIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [496] = { + .species = SPECIES_LUDICOLO, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [497] = { + .species = SPECIES_HYPNO, + .moves = {MOVE_HYPNOSIS, MOVE_NIGHTMARE, MOVE_DREAM_EATER, MOVE_PSYCHIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [498] = { + .species = SPECIES_GOLEM, + .moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_DOUBLE_TEAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [499] = { + .species = SPECIES_RHYDON, + .moves = {MOVE_EARTHQUAKE, MOVE_HORN_DRILL, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [500] = { + .species = SPECIES_ALAKAZAM, + .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_THUNDER_WAVE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [501] = { + .species = SPECIES_WEEZING, + .moves = {MOVE_MEMENTO, MOVE_SLUDGE_BOMB, MOVE_FACADE, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [502] = { + .species = SPECIES_KANGASKHAN, + .moves = {MOVE_CRUSH_CLAW, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [503] = { + .species = SPECIES_ELECTABUZZ, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_ATTRACT, MOVE_FOCUS_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [504] = { + .species = SPECIES_TAUROS, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [505] = { + .species = SPECIES_SLOWBRO, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_YAWN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_MODEST + }, + [506] = { + .species = SPECIES_SLOWKING, + .moves = {MOVE_YAWN, MOVE_THUNDER_WAVE, MOVE_SURF, MOVE_PSYCHIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [507] = { + .species = SPECIES_MILTANK, + .moves = {MOVE_FOCUS_PUNCH, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [508] = { + .species = SPECIES_ALTARIA, + .moves = {MOVE_PERISH_SONG, MOVE_DRAGON_BREATH, MOVE_PURSUIT, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [509] = { + .species = SPECIES_NIDOQUEEN, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [510] = { + .species = SPECIES_NIDOKING, + .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [511] = { + .species = SPECIES_MAGMAR, + .moves = {MOVE_FIRE_BLAST, MOVE_SMOKESCREEN, MOVE_THUNDER_PUNCH, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [512] = { + .species = SPECIES_CRADILY, + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [513] = { + .species = SPECIES_ARMALDO, + .moves = {MOVE_IRON_TAIL, MOVE_ANCIENT_POWER, MOVE_BRICK_BREAK, MOVE_KNOCK_OFF}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [514] = { + .species = SPECIES_GOLDUCK, + .moves = {MOVE_CROSS_CHOP, MOVE_SURF, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [515] = { + .species = SPECIES_RAPIDASH, + .moves = {MOVE_FIRE_BLAST, MOVE_BOUNCE, MOVE_DOUBLE_TEAM, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [516] = { + .species = SPECIES_MUK, + .moves = {MOVE_CURSE, MOVE_REST, MOVE_SLUDGE_BOMB, MOVE_DYNAMIC_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [517] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [518] = { + .species = SPECIES_AMPHAROS, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_FOCUS_PUNCH, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [519] = { + .species = SPECIES_SCIZOR, + .moves = {MOVE_SILVER_WIND, MOVE_STEEL_WING, MOVE_SWORDS_DANCE, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [520] = { + .species = SPECIES_HERACROSS, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ATTRACT, MOVE_BULK_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [521] = { + .species = SPECIES_URSARING, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [522] = { + .species = SPECIES_HOUNDOOM, + .moves = {MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_ROAR, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [523] = { + .species = SPECIES_DONPHAN, + .moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [524] = { + .species = SPECIES_CLAYDOL, + .moves = {MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_COSMIC_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [525] = { + .species = SPECIES_WAILORD, + .moves = {MOVE_DOUBLE_EDGE, MOVE_REST, MOVE_CURSE, MOVE_AMNESIA}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [526] = { + .species = SPECIES_NINETALES, + .moves = {MOVE_HEAT_WAVE, MOVE_BODY_SLAM, MOVE_GRUDGE, MOVE_SUNNY_DAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [527] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_BULK_UP, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [528] = { + .species = SPECIES_SHUCKLE, + .moves = {MOVE_SANDSTORM, MOVE_DIG, MOVE_FLASH, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_CAREFUL + }, + [529] = { + .species = SPECIES_STEELIX, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_SANDSTORM, MOVE_BLOCK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [530] = { + .species = SPECIES_TENTACRUEL, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_SURF}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [531] = { + .species = SPECIES_AERODACTYL, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ANCIENT_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [532] = { + .species = SPECIES_PORYGON2, + .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THUNDER_WAVE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [533] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [534] = { + .species = SPECIES_EXEGGUTOR, + .moves = {MOVE_RETURN, MOVE_CURSE, MOVE_SLEEP_POWDER, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [535] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [536] = { + .species = SPECIES_FLYGON, + .moves = {MOVE_SOLAR_BEAM, MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_SUNNY_DAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [537] = { + .species = SPECIES_VENUSAUR, + .moves = {MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [538] = { + .species = SPECIES_VAPOREON, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BODY_SLAM, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [539] = { + .species = SPECIES_JOLTEON, + .moves = {MOVE_THUNDERBOLT, MOVE_DIG, MOVE_DOUBLE_KICK, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [540] = { + .species = SPECIES_FLAREON, + .moves = {MOVE_CURSE, MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [541] = { + .species = SPECIES_MEGANIUM, + .moves = {MOVE_LEECH_SEED, MOVE_SUBSTITUTE, MOVE_DOUBLE_TEAM, MOVE_GRASS_WHISTLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [542] = { + .species = SPECIES_ESPEON, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_CALM_MIND, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [543] = { + .species = SPECIES_UMBREON, + .moves = {MOVE_CURSE, MOVE_SCREECH, MOVE_DOUBLE_TEAM, MOVE_DOUBLE_EDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [544] = { + .species = SPECIES_BLASTOISE, + .moves = {MOVE_HYDRO_PUMP, MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [545] = { + .species = SPECIES_FERALIGATR, + .moves = {MOVE_SURF, MOVE_DRAGON_CLAW, MOVE_BRICK_BREAK, MOVE_SCARY_FACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [546] = { + .species = SPECIES_AGGRON, + .moves = {MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [547] = { + .species = SPECIES_BLAZIKEN, + .moves = {MOVE_BLAZE_KICK, MOVE_MEGA_KICK, MOVE_THUNDER_PUNCH, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [548] = { + .species = SPECIES_WALREIN, + .moves = {MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_CURSE, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [549] = { + .species = SPECIES_SCEPTILE, + .moves = {MOVE_LEAF_BLADE, MOVE_THUNDER_PUNCH, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [550] = { + .species = SPECIES_CHARIZARD, + .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE, MOVE_SMOKESCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [551] = { + .species = SPECIES_TYPHLOSION, + .moves = {MOVE_FLAMETHROWER, MOVE_THUNDER_PUNCH, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [552] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BODY_SLAM, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_TIMID + }, + [553] = { + .species = SPECIES_CROBAT, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [554] = { + .species = SPECIES_SWAMPERT, + .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [555] = { + .species = SPECIES_GYARADOS, + .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDERBOLT, MOVE_FIRE_BLAST, MOVE_BLIZZARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [556] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CURSE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [557] = { + .species = SPECIES_KINGDRA, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_DRAGON_BREATH, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [558] = { + .species = SPECIES_BLISSEY, + .moves = {MOVE_SEISMIC_TOSS, MOVE_SING, MOVE_ATTRACT, MOVE_SUBSTITUTE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BOLD + }, + [559] = { + .species = SPECIES_MILOTIC, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_SAFEGUARD, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [560] = { + .species = SPECIES_ARCANINE, + .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_CRUNCH, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [561] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_DOUBLE_EDGE, MOVE_CRUNCH, MOVE_SWAGGER, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [562] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_EARTHQUAKE, MOVE_METEOR_MASH, MOVE_PSYCH_UP, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [563] = { + .species = SPECIES_SLAKING, + .moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_YAWN, MOVE_AMNESIA}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_ADAMANT + }, + [564] = { + .species = SPECIES_DUGTRIO, + .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_FISSURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [565] = { + .species = SPECIES_MEDICHAM, + .moves = {MOVE_DYNAMIC_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_HARDY + }, + [566] = { + .species = SPECIES_MISDREAVUS, + .moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [567] = { + .species = SPECIES_FEAROW, + .moves = {MOVE_DRILL_PECK, MOVE_RETURN, MOVE_STEEL_WING, MOVE_FAINT_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [568] = { + .species = SPECIES_GRANBULL, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [569] = { + .species = SPECIES_JYNX, + .moves = {MOVE_DREAM_EATER, MOVE_LOVELY_KISS, MOVE_ATTRACT, MOVE_SUBSTITUTE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [570] = { + .species = SPECIES_DUSCLOPS, + .moves = {MOVE_PSYCH_UP, MOVE_SWAGGER, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [571] = { + .species = SPECIES_DODRIO, + .moves = {MOVE_DOUBLE_EDGE, MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_FAINT_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [572] = { + .species = SPECIES_MR_MIME, + .moves = {MOVE_TRICK, MOVE_TORMENT, MOVE_PSYCHIC, MOVE_THUNDERBOLT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [573] = { + .species = SPECIES_LANTURN, + .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_CONFUSE_RAY, MOVE_RAIN_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [574] = { + .species = SPECIES_BRELOOM, + .moves = {MOVE_IRON_TAIL, MOVE_FOCUS_PUNCH, MOVE_ATTRACT, MOVE_SPORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [575] = { + .species = SPECIES_FORRETRESS, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_ZAP_CANNON}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [576] = { + .species = SPECIES_WHISCASH, + .moves = {MOVE_SLEEP_TALK, MOVE_REST, MOVE_SURF, MOVE_FISSURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_HARDY + }, + [577] = { + .species = SPECIES_XATU, + .moves = {MOVE_DRILL_PECK, MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_STEEL_WING}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [578] = { + .species = SPECIES_SKARMORY, + .moves = {MOVE_TOXIC, MOVE_CURSE, MOVE_REST, MOVE_FLY}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [579] = { + .species = SPECIES_MAROWAK, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [580] = { + .species = SPECIES_QUAGSIRE, + .moves = {MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_DOUBLE_EDGE, MOVE_CURSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [581] = { + .species = SPECIES_CLEFABLE, + .moves = {MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_FLAMETHROWER, MOVE_MAGICAL_LEAF}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [582] = { + .species = SPECIES_HARIYAMA, + .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [583] = { + .species = SPECIES_RAICHU, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_IRON_TAIL, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [584] = { + .species = SPECIES_DEWGONG, + .moves = {MOVE_HORN_DRILL, MOVE_SHEER_COLD, MOVE_SLEEP_TALK, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [585] = { + .species = SPECIES_MANECTRIC, + .moves = {MOVE_THUNDERBOLT, MOVE_IRON_TAIL, MOVE_THUNDER_WAVE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [586] = { + .species = SPECIES_VILEPLUME, + .moves = {MOVE_ATTRACT, MOVE_STUN_SPORE, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [587] = { + .species = SPECIES_VICTREEBEL, + .moves = {MOVE_STUN_SPORE, MOVE_INGRAIN, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [588] = { + .species = SPECIES_ELECTRODE, + .moves = {MOVE_EXPLOSION, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [589] = { + .species = SPECIES_EXPLOUD, + .moves = {MOVE_OVERHEAT, MOVE_ICE_BEAM, MOVE_THUNDER_PUNCH, MOVE_EXTRASENSORY}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [590] = { + .species = SPECIES_SHIFTRY, + .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [591] = { + .species = SPECIES_GLALIE, + .moves = {MOVE_BLIZZARD, MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [592] = { + .species = SPECIES_LUDICOLO, + .moves = {MOVE_LEECH_SEED, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [593] = { + .species = SPECIES_HYPNO, + .moves = {MOVE_PSYCH_UP, MOVE_SWAGGER, MOVE_MEGA_KICK, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [594] = { + .species = SPECIES_GOLEM, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [595] = { + .species = SPECIES_RHYDON, + .moves = {MOVE_MEGAHORN, MOVE_CRUSH_CLAW, MOVE_EARTHQUAKE, MOVE_HORN_DRILL}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [596] = { + .species = SPECIES_ALAKAZAM, + .moves = {MOVE_TRICK, MOVE_DISABLE, MOVE_PSYCHIC, MOVE_SKILL_SWAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [597] = { + .species = SPECIES_WEEZING, + .moves = {MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [598] = { + .species = SPECIES_KANGASKHAN, + .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [599] = { + .species = SPECIES_ELECTABUZZ, + .moves = {MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDERBOLT, MOVE_CROSS_CHOP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [600] = { + .species = SPECIES_TAUROS, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ICE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [601] = { + .species = SPECIES_SLOWBRO, + .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, + .nature = NATURE_QUIET + }, + [602] = { + .species = SPECIES_SLOWKING, + .moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [603] = { + .species = SPECIES_MILTANK, + .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [604] = { + .species = SPECIES_ALTARIA, + .moves = {MOVE_SING, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [605] = { + .species = SPECIES_NIDOQUEEN, + .moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_CRUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [606] = { + .species = SPECIES_NIDOKING, + .moves = {MOVE_HORN_DRILL, MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_SURF}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [607] = { + .species = SPECIES_MAGMAR, + .moves = {MOVE_MEGA_KICK, MOVE_CROSS_CHOP, MOVE_IRON_TAIL, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_IMPISH + }, + [608] = { + .species = SPECIES_CRADILY, + .moves = {MOVE_SUBSTITUTE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [609] = { + .species = SPECIES_ARMALDO, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_SWORDS_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [610] = { + .species = SPECIES_GOLDUCK, + .moves = {MOVE_HYDRO_PUMP, MOVE_CROSS_CHOP, MOVE_BLIZZARD, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [611] = { + .species = SPECIES_RAPIDASH, + .moves = {MOVE_OVERHEAT, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_HYPNOSIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [612] = { + .species = SPECIES_MUK, + .moves = {MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_QUIET + }, + [613] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_GIGA_DRAIN, MOVE_SKILL_SWAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [614] = { + .species = SPECIES_AMPHAROS, + .moves = {MOVE_THUNDERBOLT, MOVE_MEGA_KICK, MOVE_IRON_TAIL, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [615] = { + .species = SPECIES_SCIZOR, + .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_AGILITY, MOVE_SLASH}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_CAREFUL + }, + [616] = { + .species = SPECIES_HERACROSS, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [617] = { + .species = SPECIES_URSARING, + .moves = {MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_CRUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [618] = { + .species = SPECIES_HOUNDOOM, + .moves = {MOVE_OVERHEAT, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_DOUBLE_EDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [619] = { + .species = SPECIES_DONPHAN, + .moves = {MOVE_FISSURE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SECRET_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [620] = { + .species = SPECIES_CLAYDOL, + .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [621] = { + .species = SPECIES_WAILORD, + .moves = {MOVE_HYDRO_PUMP, MOVE_FISSURE, MOVE_DOUBLE_TEAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [622] = { + .species = SPECIES_NINETALES, + .moves = {MOVE_FIRE_BLAST, MOVE_IRON_TAIL, MOVE_CONFUSE_RAY, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [623] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_CROSS_CHOP, MOVE_FIRE_BLAST, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [624] = { + .species = SPECIES_SHUCKLE, + .moves = {MOVE_SUBSTITUTE, MOVE_ATTRACT, MOVE_TOXIC, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_CAREFUL + }, + [625] = { + .species = SPECIES_STEELIX, + .moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_ROCK_SLIDE, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [626] = { + .species = SPECIES_TENTACRUEL, + .moves = {MOVE_SURF, MOVE_GIGA_DRAIN, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [627] = { + .species = SPECIES_AERODACTYL, + .moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_DRAGON_CLAW}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [628] = { + .species = SPECIES_PORYGON2, + .moves = {MOVE_PSYCHIC, MOVE_TRI_ATTACK, MOVE_THUNDER_WAVE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [629] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH, MOVE_MAGICAL_LEAF}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [630] = { + .species = SPECIES_EXEGGUTOR, + .moves = {MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [631] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [632] = { + .species = SPECIES_FLYGON, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_FLAMETHROWER, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [633] = { + .species = SPECIES_VENUSAUR, + .moves = {MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_SLEEP_POWDER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [634] = { + .species = SPECIES_VAPOREON, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_ACID_ARMOR, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [635] = { + .species = SPECIES_JOLTEON, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_AGILITY, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [636] = { + .species = SPECIES_FLAREON, + .moves = {MOVE_SHADOW_BALL, MOVE_FLAIL, MOVE_ENDURE, MOVE_OVERHEAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [637] = { + .species = SPECIES_MEGANIUM, + .moves = {MOVE_EARTHQUAKE, MOVE_FLAIL, MOVE_ENDURE, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [638] = { + .species = SPECIES_ESPEON, + .moves = {MOVE_PSYCHIC, MOVE_BITE, MOVE_WISH, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [639] = { + .species = SPECIES_UMBREON, + .moves = {MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_ATTRACT, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [640] = { + .species = SPECIES_BLASTOISE, + .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [641] = { + .species = SPECIES_FERALIGATR, + .moves = {MOVE_HYDRO_PUMP, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [642] = { + .species = SPECIES_AGGRON, + .moves = {MOVE_SURF, MOVE_THUNDER, MOVE_FIRE_BLAST, MOVE_BLIZZARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [643] = { + .species = SPECIES_BLAZIKEN, + .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_ENDURE, MOVE_REVERSAL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [644] = { + .species = SPECIES_WALREIN, + .moves = {MOVE_SHEER_COLD, MOVE_FISSURE, MOVE_SURF, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [645] = { + .species = SPECIES_SCEPTILE, + .moves = {MOVE_LEAF_BLADE, MOVE_EARTHQUAKE, MOVE_CRUSH_CLAW, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [646] = { + .species = SPECIES_CHARIZARD, + .moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_BITE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [647] = { + .species = SPECIES_TYPHLOSION, + .moves = {MOVE_EARTHQUAKE, MOVE_OVERHEAT, MOVE_ENDURE, MOVE_REVERSAL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [648] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_DOUBLE_EDGE, MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [649] = { + .species = SPECIES_CROBAT, + .moves = {MOVE_AIR_CUTTER, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [650] = { + .species = SPECIES_SWAMPERT, + .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_BRAVE + }, + [651] = { + .species = SPECIES_GYARADOS, + .moves = {MOVE_SURF, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [652] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_ADAMANT + }, + [653] = { + .species = SPECIES_KINGDRA, + .moves = {MOVE_FLAIL, MOVE_HYDRO_PUMP, MOVE_DRAGON_DANCE, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [654] = { + .species = SPECIES_BLISSEY, + .moves = {MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_CALM_MIND, MOVE_SOFT_BOILED}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BOLD + }, + [655] = { + .species = SPECIES_MILOTIC, + .moves = {MOVE_SURF, MOVE_BLIZZARD, MOVE_ATTRACT, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [656] = { + .species = SPECIES_ARCANINE, + .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [657] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [658] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_EARTHQUAKE, MOVE_METEOR_MASH, MOVE_DOUBLE_TEAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [659] = { + .species = SPECIES_SLAKING, + .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_ADAMANT + }, + [660] = { + .species = SPECIES_DUGTRIO, + .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_FISSURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [661] = { + .species = SPECIES_MEDICHAM, + .moves = {MOVE_MEGA_KICK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [662] = { + .species = SPECIES_MISDREAVUS, + .moves = {MOVE_DESTINY_BOND, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_TIMID + }, + [663] = { + .species = SPECIES_FEAROW, + .moves = {MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_STEEL_WING, MOVE_SKY_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [664] = { + .species = SPECIES_GRANBULL, + .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_BRAVE + }, + [665] = { + .species = SPECIES_JYNX, + .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_LOVELY_KISS, MOVE_FAKE_TEARS}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [666] = { + .species = SPECIES_DUSCLOPS, + .moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_CURSE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [667] = { + .species = SPECIES_DODRIO, + .moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_DRILL_PECK, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [668] = { + .species = SPECIES_MR_MIME, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [669] = { + .species = SPECIES_LANTURN, + .moves = {MOVE_SURF, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [670] = { + .species = SPECIES_BRELOOM, + .moves = {MOVE_FOCUS_PUNCH, MOVE_SLUDGE_BOMB, MOVE_SPORE, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [671] = { + .species = SPECIES_FORRETRESS, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DOUBLE_EDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [672] = { + .species = SPECIES_WHISCASH, + .moves = {MOVE_FISSURE, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [673] = { + .species = SPECIES_XATU, + .moves = {MOVE_PSYCHIC, MOVE_DRILL_PECK, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [674] = { + .species = SPECIES_SKARMORY, + .moves = {MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_COUNTER, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [675] = { + .species = SPECIES_MAROWAK, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_MEGA_KICK}, + .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [676] = { + .species = SPECIES_QUAGSIRE, + .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_AMNESIA}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_SASSY + }, + [677] = { + .species = SPECIES_CLEFABLE, + .moves = {MOVE_MEGA_KICK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_SOFT_BOILED}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [678] = { + .species = SPECIES_HARIYAMA, + .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [679] = { + .species = SPECIES_RAICHU, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_PROTECT, MOVE_MEGA_KICK}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [680] = { + .species = SPECIES_DEWGONG, + .moves = {MOVE_SHEER_COLD, MOVE_ICE_BEAM, MOVE_SURF, MOVE_SIGNAL_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [681] = { + .species = SPECIES_MANECTRIC, + .moves = {MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_THUNDER_WAVE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [682] = { + .species = SPECIES_VILEPLUME, + .moves = {MOVE_SOLAR_BEAM, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [683] = { + .species = SPECIES_VICTREEBEL, + .moves = {MOVE_GIGA_DRAIN, MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_SYNTHESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [684] = { + .species = SPECIES_ELECTRODE, + .moves = {MOVE_EXPLOSION, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [685] = { + .species = SPECIES_EXPLOUD, + .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_OVERHEAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [686] = { + .species = SPECIES_SHIFTRY, + .moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_MEGA_KICK, MOVE_FAKE_OUT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [687] = { + .species = SPECIES_GLALIE, + .moves = {MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [688] = { + .species = SPECIES_LUDICOLO, + .moves = {MOVE_LEECH_SEED, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_TOXIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [689] = { + .species = SPECIES_HYPNO, + .moves = {MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [690] = { + .species = SPECIES_GOLEM, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DOUBLE_EDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [691] = { + .species = SPECIES_RHYDON, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_HORN_DRILL}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [692] = { + .species = SPECIES_ALAKAZAM, + .moves = {MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [693] = { + .species = SPECIES_WEEZING, + .moves = {MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_FRUSTRATION, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [694] = { + .species = SPECIES_KANGASKHAN, + .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [695] = { + .species = SPECIES_ELECTABUZZ, + .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_MEGA_KICK, MOVE_CROSS_CHOP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [696] = { + .species = SPECIES_TAUROS, + .moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_TOMB, MOVE_THUNDERBOLT, MOVE_SURF}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [697] = { + .species = SPECIES_SLOWBRO, + .moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, + .nature = NATURE_SASSY + }, + [698] = { + .species = SPECIES_SLOWKING, + .moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM, MOVE_FLAMETHROWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [699] = { + .species = SPECIES_MILTANK, + .moves = {MOVE_DOUBLE_EDGE, MOVE_CURSE, MOVE_DOUBLE_TEAM, MOVE_MILK_DRINK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [700] = { + .species = SPECIES_ALTARIA, + .moves = {MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ICE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [701] = { + .species = SPECIES_NIDOQUEEN, + .moves = {MOVE_SUPERPOWER, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [702] = { + .species = SPECIES_NIDOKING, + .moves = {MOVE_MEGAHORN, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_THUNDER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [703] = { + .species = SPECIES_MAGMAR, + .moves = {MOVE_FLAMETHROWER, MOVE_PSYCHIC, MOVE_CROSS_CHOP, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [704] = { + .species = SPECIES_CRADILY, + .moves = {MOVE_TOXIC, MOVE_INGRAIN, MOVE_MIRROR_COAT, MOVE_GIGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [705] = { + .species = SPECIES_ARMALDO, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [706] = { + .species = SPECIES_GOLDUCK, + .moves = {MOVE_SURF, MOVE_CROSS_CHOP, MOVE_ICE_BEAM, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [707] = { + .species = SPECIES_RAPIDASH, + .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_IRON_TAIL, MOVE_DOUBLE_KICK}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [708] = { + .species = SPECIES_MUK, + .moves = {MOVE_SLUDGE_BOMB, MOVE_BRICK_BREAK, MOVE_GIGA_DRAIN, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_BRAVE + }, + [709] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [710] = { + .species = SPECIES_AMPHAROS, + .moves = {MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_THUNDER_WAVE, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [711] = { + .species = SPECIES_SCIZOR, + .moves = {MOVE_SILVER_WIND, MOVE_SWORDS_DANCE, MOVE_AGILITY, MOVE_BATON_PASS}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [712] = { + .species = SPECIES_HERACROSS, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_REVERSAL, MOVE_ENDURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [713] = { + .species = SPECIES_URSARING, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [714] = { + .species = SPECIES_HOUNDOOM, + .moves = {MOVE_OVERHEAT, MOVE_SOLAR_BEAM, MOVE_CRUNCH, MOVE_SUNNY_DAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [715] = { + .species = SPECIES_DONPHAN, + .moves = {MOVE_FISSURE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_IRON_TAIL}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [716] = { + .species = SPECIES_CLAYDOL, + .moves = {MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [717] = { + .species = SPECIES_WAILORD, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_FISSURE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [718] = { + .species = SPECIES_NINETALES, + .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [719] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [720] = { + .species = SPECIES_SHUCKLE, + .moves = {MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_WRAP, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_CAREFUL + }, + [721] = { + .species = SPECIES_STEELIX, + .moves = {MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [722] = { + .species = SPECIES_TENTACRUEL, + .moves = {MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [723] = { + .species = SPECIES_AERODACTYL, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_FIRE_BLAST, MOVE_BITE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [724] = { + .species = SPECIES_PORYGON2, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [725] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [726] = { + .species = SPECIES_EXEGGUTOR, + .moves = {MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [727] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [728] = { + .species = SPECIES_FLYGON, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_DOUBLE_EDGE, MOVE_CRUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [729] = { + .species = SPECIES_VENUSAUR, + .moves = {MOVE_SOLAR_BEAM, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [730] = { + .species = SPECIES_VAPOREON, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_ACID_ARMOR, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [731] = { + .species = SPECIES_JOLTEON, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_BITE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_TIMID + }, + [732] = { + .species = SPECIES_FLAREON, + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [733] = { + .species = SPECIES_MEGANIUM, + .moves = {MOVE_GIGA_DRAIN, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [734] = { + .species = SPECIES_ESPEON, + .moves = {MOVE_PSYCHIC, MOVE_BITE, MOVE_ATTRACT, MOVE_CALM_MIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [735] = { + .species = SPECIES_UMBREON, + .moves = {MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [736] = { + .species = SPECIES_BLASTOISE, + .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [737] = { + .species = SPECIES_FERALIGATR, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [738] = { + .species = SPECIES_AGGRON, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [739] = { + .species = SPECIES_BLAZIKEN, + .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_THUNDER_PUNCH, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [740] = { + .species = SPECIES_WALREIN, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_SHEER_COLD}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [741] = { + .species = SPECIES_SCEPTILE, + .moves = {MOVE_LEAF_BLADE, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_THUNDER_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [742] = { + .species = SPECIES_CHARIZARD, + .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [743] = { + .species = SPECIES_TYPHLOSION, + .moves = {MOVE_OVERHEAT, MOVE_THUNDER_PUNCH, MOVE_EARTHQUAKE, MOVE_CRUSH_CLAW}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [744] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_PSYCHIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [745] = { + .species = SPECIES_CROBAT, + .moves = {MOVE_SLUDGE_BOMB, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [746] = { + .species = SPECIES_SWAMPERT, + .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [747] = { + .species = SPECIES_GYARADOS, + .moves = {MOVE_RETURN, MOVE_EARTHQUAKE, MOVE_DRAGON_DANCE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [748] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_CURSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [749] = { + .species = SPECIES_KINGDRA, + .moves = {MOVE_DOUBLE_EDGE, MOVE_ICE_BEAM, MOVE_DRAGON_DANCE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [750] = { + .species = SPECIES_BLISSEY, + .moves = {MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_COUNTER, MOVE_SOFT_BOILED}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BOLD + }, + [751] = { + .species = SPECIES_MILOTIC, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_MIRROR_COAT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [752] = { + .species = SPECIES_ARCANINE, + .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_DOUBLE_EDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [753] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [754] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [755] = { + .species = SPECIES_SLAKING, + .moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_YAWN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, + .nature = NATURE_MODEST + }, + [756] = { + .species = SPECIES_ARTICUNO, + .moves = {MOVE_ICE_BEAM, MOVE_WATER_PULSE, MOVE_ICY_WIND, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [757] = { + .species = SPECIES_ZAPDOS, + .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [758] = { + .species = SPECIES_MOLTRES, + .moves = {MOVE_FLAMETHROWER, MOVE_AERIAL_ACE, MOVE_MUD_SLAP, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [759] = { + .species = SPECIES_RAIKOU, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [760] = { + .species = SPECIES_ENTEI, + .moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [761] = { + .species = SPECIES_SUICUNE, + .moves = {MOVE_SURF, MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [762] = { + .species = SPECIES_REGIROCK, + .moves = {MOVE_SUPERPOWER, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [763] = { + .species = SPECIES_REGICE, + .moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_AMNESIA, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [764] = { + .species = SPECIES_REGISTEEL, + .moves = {MOVE_METAL_CLAW, MOVE_CURSE, MOVE_AMNESIA, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [765] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [766] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [767] = { + .species = SPECIES_ARTICUNO, + .moves = {MOVE_SUBSTITUTE, MOVE_TOXIC, MOVE_BLIZZARD, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [768] = { + .species = SPECIES_ZAPDOS, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DRILL_PECK, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [769] = { + .species = SPECIES_MOLTRES, + .moves = {MOVE_OVERHEAT, MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [770] = { + .species = SPECIES_RAIKOU, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [771] = { + .species = SPECIES_ENTEI, + .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [772] = { + .species = SPECIES_SUICUNE, + .moves = {MOVE_TOXIC, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [773] = { + .species = SPECIES_REGIROCK, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [774] = { + .species = SPECIES_REGICE, + .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_BLIZZARD, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [775] = { + .species = SPECIES_REGISTEEL, + .moves = {MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [776] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [777] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [778] = { + .species = SPECIES_ARTICUNO, + .moves = {MOVE_ICE_BEAM, MOVE_FACADE, MOVE_AERIAL_ACE, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [779] = { + .species = SPECIES_ZAPDOS, + .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_SUBSTITUTE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [780] = { + .species = SPECIES_MOLTRES, + .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_DOUBLE_TEAM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [781] = { + .species = SPECIES_RAIKOU, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [782] = { + .species = SPECIES_ENTEI, + .moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_EDGE, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [783] = { + .species = SPECIES_SUICUNE, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAIN_DANCE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [784] = { + .species = SPECIES_REGIROCK, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_CURSE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [785] = { + .species = SPECIES_REGICE, + .moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [786] = { + .species = SPECIES_REGISTEEL, + .moves = {MOVE_ANCIENT_POWER, MOVE_AMNESIA, MOVE_COUNTER, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [787] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [788] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [789] = { + .species = SPECIES_ARTICUNO, + .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_REST, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [790] = { + .species = SPECIES_ZAPDOS, + .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [791] = { + .species = SPECIES_MOLTRES, + .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_STEEL_WING, MOVE_SAFEGUARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [792] = { + .species = SPECIES_RAIKOU, + .moves = {MOVE_THUNDERBOLT, MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [793] = { + .species = SPECIES_ENTEI, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_DOUBLE_TEAM, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [794] = { + .species = SPECIES_SUICUNE, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BITE, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [795] = { + .species = SPECIES_REGIROCK, + .moves = {MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [796] = { + .species = SPECIES_REGICE, + .moves = {MOVE_ICE_BEAM, MOVE_HAIL, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [797] = { + .species = SPECIES_REGISTEEL, + .moves = {MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [798] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_MIST_BALL, MOVE_SHADOW_BALL, MOVE_CHARM, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [799] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [800] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [801] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [802] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [803] = { + .species = SPECIES_GENGAR, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [804] = { + .species = SPECIES_URSARING, + .moves = {MOVE_MEGA_KICK, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [805] = { + .species = SPECIES_URSARING, + .moves = {MOVE_HYPER_BEAM, MOVE_YAWN, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [806] = { + .species = SPECIES_URSARING, + .moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_BULK_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [807] = { + .species = SPECIES_URSARING, + .moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [808] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_CROSS_CHOP, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [809] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_ROCK_TOMB}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [810] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [811] = { + .species = SPECIES_MACHAMP, + .moves = {MOVE_REVENGE, MOVE_ROCK_SLIDE, MOVE_FACADE, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [812] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ENDURE, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [813] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_WILL_O_WISP, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_TIMID + }, + [814] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_WILL_O_WISP, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [815] = { + .species = SPECIES_GARDEVOIR, + .moves = {MOVE_PSYCHIC, MOVE_MAGICAL_LEAF, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [816] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_RECOVER, MOVE_LIGHT_SCREEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [817] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [818] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_COSMIC_POWER, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [819] = { + .species = SPECIES_STARMIE, + .moves = {MOVE_SURF, MOVE_THUNDERBOLT, MOVE_COSMIC_POWER, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [820] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [821] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_BLIZZARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [822] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_SHEER_COLD, MOVE_HORN_DRILL, MOVE_REST, MOVE_SLEEP_TALK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [823] = { + .species = SPECIES_LAPRAS, + .moves = {MOVE_SHEER_COLD, MOVE_HORN_DRILL, MOVE_SING, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [824] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [825] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [826] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_HYPER_BEAM, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_CURSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [827] = { + .species = SPECIES_SNORLAX, + .moves = {MOVE_RETURN, MOVE_SHADOW_BALL, MOVE_BELLY_DRUM, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [828] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [829] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_HEADBUTT, MOVE_AERIAL_ACE, MOVE_CRUNCH, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [830] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [831] = { + .species = SPECIES_SALAMENCE, + .moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [832] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [833] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [834] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [835] = { + .species = SPECIES_METAGROSS, + .moves = {MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [836] = { + .species = SPECIES_REGIROCK, + .moves = {MOVE_HYPER_BEAM, MOVE_FOCUS_PUNCH, MOVE_ROCK_SLIDE, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [837] = { + .species = SPECIES_REGIROCK, + .moves = {MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_EXPLOSION}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [838] = { + .species = SPECIES_REGICE, + .moves = {MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_CURSE, MOVE_COUNTER}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [839] = { + .species = SPECIES_REGICE, + .moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_SLEEP_TALK, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [840] = { + .species = SPECIES_REGISTEEL, + .moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_TOXIC, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [841] = { + .species = SPECIES_REGISTEEL, + .moves = {MOVE_SUPERPOWER, MOVE_AERIAL_ACE, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [842] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [843] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_MIST_BALL, MOVE_DRAGON_CLAW, MOVE_ATTRACT, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [844] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_SWAGGER, MOVE_PSYCH_UP}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [845] = { + .species = SPECIES_LATIAS, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [846] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [847] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_LUSTER_PURGE, MOVE_SHADOW_BALL, MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [848] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_DRAGON_DANCE, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [849] = { + .species = SPECIES_LATIOS, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [850] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [851] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [852] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_HYPER_BEAM, MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [853] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_HYPER_BEAM, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [854] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_OUTRAGE, MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [855] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_FLAMETHROWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [856] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_ICE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [857] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_DRAGON_CLAW, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_BRICK_BREAK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [858] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_THUNDER, MOVE_SURF, MOVE_RAIN_DANCE, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [859] = { + .species = SPECIES_DRAGONITE, + .moves = {MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [860] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_THUNDERBOLT, MOVE_SURF}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [861] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUNCH, MOVE_THUNDERBOLT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [862] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [863] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_CRUNCH, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [864] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [865] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CURSE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [866] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_CURSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [867] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_ROCK_SLIDE, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [868] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [869] = { + .species = SPECIES_TYRANITAR, + .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [870] = { + .species = SPECIES_ARTICUNO, + .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_AGILITY, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [871] = { + .species = SPECIES_ARTICUNO, + .moves = {MOVE_ICE_BEAM, MOVE_AERIAL_ACE, MOVE_REFLECT, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [872] = { + .species = SPECIES_ZAPDOS, + .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [873] = { + .species = SPECIES_ZAPDOS, + .moves = {MOVE_THUNDER, MOVE_DRILL_PECK, MOVE_RAIN_DANCE, MOVE_DOUBLE_EDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [874] = { + .species = SPECIES_MOLTRES, + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_SWAGGER, MOVE_FACADE}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_DOCILE + }, + [875] = { + .species = SPECIES_MOLTRES, + .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE, MOVE_STEEL_WING}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_DOCILE + }, + [876] = { + .species = SPECIES_RAIKOU, + .moves = {MOVE_THUNDERBOLT, MOVE_DOUBLE_EDGE, MOVE_ROAR, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [877] = { + .species = SPECIES_RAIKOU, + .moves = {MOVE_THUNDERBOLT, MOVE_CALM_MIND, MOVE_SUBSTITUTE, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [878] = { + .species = SPECIES_ENTEI, + .moves = {MOVE_FIRE_BLAST, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_DOCILE + }, + [879] = { + .species = SPECIES_ENTEI, + .moves = {MOVE_FLAMETHROWER, MOVE_CALM_MIND, MOVE_ROAR, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [880] = { + .species = SPECIES_SUICUNE, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_ICY_WIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [881] = { + .species = SPECIES_SUICUNE, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + } +}; diff --git a/src/data/battle_frontier/battle_frontier_trainer_mons.h b/src/data/battle_frontier/battle_frontier_trainer_mons.h new file mode 100644 index 000000000..d0e21172b --- /dev/null +++ b/src/data/battle_frontier/battle_frontier_trainer_mons.h @@ -0,0 +1,15229 @@ +const u16 gBattleFrontierTrainerMons_Brady[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Conner[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Bradley[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Cybil[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Rodette[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Peggy[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Keith[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Grayson[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Glenn[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Liliana[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Elise[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Zoey[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Manuel[] = +{ + 5, + 20, + 21, + 25, + 27, + 35, + 46, + 47, + 48, + 50, + 53, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 119, + 121, + 124, + 127, + 146, + 147, + 154, + 158, + 160, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Russ[] = +{ + 5, + 20, + 21, + 25, + 27, + 35, + 46, + 47, + 48, + 50, + 53, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 119, + 121, + 124, + 127, + 146, + 147, + 154, + 158, + 160, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dustin[] = +{ + 5, + 20, + 21, + 25, + 27, + 35, + 46, + 47, + 48, + 50, + 53, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 119, + 121, + 124, + 127, + 146, + 147, + 154, + 158, + 160, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Tina[] = +{ + 5, + 20, + 21, + 25, + 27, + 35, + 46, + 47, + 48, + 50, + 53, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 119, + 121, + 124, + 127, + 146, + 147, + 154, + 158, + 160, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gillian[] = +{ + 5, + 20, + 21, + 25, + 27, + 35, + 46, + 47, + 48, + 50, + 53, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 119, + 121, + 124, + 127, + 146, + 147, + 154, + 158, + 160, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Zoe[] = +{ + 5, + 20, + 21, + 25, + 27, + 35, + 46, + 47, + 48, + 50, + 53, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 119, + 121, + 124, + 127, + 146, + 147, + 154, + 158, + 160, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Chen[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Al[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Mitch[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Anne[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alize[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lauren[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kipp[] = +{ + 5, + 6, + 7, + 14, + 19, + 28, + 35, + 42, + 45, + 48, + 50, + 55, + 59, + 60, + 68, + 73, + 83, + 84, + 86, + 87, + 90, + 96, + 97, + 98, + 99, + 103, + 105, + 106, + 109, + 112, + 114, + 121, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jason[] = +{ + 5, + 6, + 7, + 14, + 19, + 28, + 35, + 42, + 45, + 48, + 50, + 55, + 59, + 60, + 68, + 73, + 83, + 84, + 86, + 87, + 90, + 96, + 97, + 98, + 99, + 103, + 105, + 106, + 109, + 112, + 114, + 121, + -1 +}; + +const u16 gBattleFrontierTrainerMons_John[] = +{ + 5, + 6, + 7, + 14, + 19, + 28, + 35, + 42, + 45, + 48, + 50, + 55, + 59, + 60, + 68, + 73, + 83, + 84, + 86, + 87, + 90, + 96, + 97, + 98, + 99, + 103, + 105, + 106, + 109, + 112, + 114, + 121, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ann[] = +{ + 5, + 6, + 7, + 14, + 19, + 28, + 35, + 42, + 45, + 48, + 50, + 55, + 59, + 60, + 68, + 73, + 83, + 84, + 86, + 87, + 90, + 96, + 97, + 98, + 99, + 103, + 105, + 106, + 109, + 112, + 114, + 121, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Eileen[] = +{ + 5, + 6, + 7, + 14, + 19, + 28, + 35, + 42, + 45, + 48, + 50, + 55, + 59, + 60, + 68, + 73, + 83, + 84, + 86, + 87, + 90, + 96, + 97, + 98, + 99, + 103, + 105, + 106, + 109, + 112, + 114, + 121, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Carlie[] = +{ + 5, + 6, + 7, + 14, + 19, + 28, + 35, + 42, + 45, + 48, + 50, + 55, + 59, + 60, + 68, + 73, + 83, + 84, + 86, + 87, + 90, + 96, + 97, + 98, + 99, + 103, + 105, + 106, + 109, + 112, + 114, + 121, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gordon[] = +{ + 1, + 13, + 15, + 16, + 17, + 22, + 23, + 24, + 26, + 32, + 34, + 36, + 43, + 50, + 51, + 54, + 56, + 68, + 72, + 73, + 81, + 82, + 83, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 105, + 107, + 109, + 111, + 113, + 116, + 117, + 123, + 124, + 128, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 152, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ayden[] = +{ + 1, + 13, + 15, + 16, + 17, + 22, + 23, + 24, + 26, + 32, + 34, + 36, + 43, + 50, + 51, + 54, + 56, + 68, + 72, + 73, + 81, + 82, + 83, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 105, + 107, + 109, + 111, + 113, + 116, + 117, + 123, + 124, + 128, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 152, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Marco[] = +{ + 1, + 13, + 15, + 16, + 17, + 22, + 23, + 24, + 26, + 32, + 34, + 36, + 43, + 50, + 51, + 54, + 56, + 68, + 72, + 73, + 81, + 82, + 83, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 105, + 107, + 109, + 111, + 113, + 116, + 117, + 123, + 124, + 128, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 152, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Cierra[] = +{ + 1, + 13, + 16, + 17, + 23, + 24, + 26, + 32, + 34, + 36, + 43, + 51, + 54, + 56, + 68, + 72, + 73, + 76, + 83, + 84, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 105, + 107, + 109, + 111, + 113, + 116, + 117, + 118, + 123, + 124, + 128, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Marcy[] = +{ + 1, + 13, + 16, + 17, + 23, + 24, + 26, + 32, + 34, + 36, + 43, + 51, + 54, + 56, + 68, + 72, + 73, + 76, + 83, + 84, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 105, + 107, + 109, + 111, + 113, + 116, + 117, + 118, + 123, + 124, + 128, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kathy[] = +{ + 1, + 13, + 16, + 17, + 23, + 24, + 26, + 32, + 34, + 36, + 43, + 51, + 54, + 56, + 68, + 72, + 73, + 76, + 83, + 84, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 105, + 107, + 109, + 111, + 113, + 116, + 117, + 118, + 123, + 124, + 128, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Peyton[] = +{ + 84, + 85, + 87, + 88, + 89, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 105, + 106, + 107, + 109, + 112, + 113, + 117, + 120, + 121, + 123, + 129, + 134, + 142, + 143, + 145, + 148, + 149, + 151, + 152, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Julian[] = +{ + 84, + 85, + 87, + 88, + 89, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 105, + 106, + 107, + 109, + 112, + 113, + 117, + 120, + 121, + 123, + 129, + 134, + 142, + 143, + 145, + 148, + 149, + 151, + 152, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Quinn[] = +{ + 84, + 85, + 87, + 88, + 89, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 105, + 106, + 107, + 109, + 112, + 113, + 117, + 120, + 121, + 123, + 129, + 134, + 142, + 143, + 145, + 148, + 149, + 151, + 152, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Haylee[] = +{ + 1, + 5, + 6, + 10, + 13, + 14, + 16, + 17, + 18, + 19, + 20, + 23, + 24, + 26, + 28, + 29, + 31, + 32, + 33, + 34, + 35, + 36, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 54, + 56, + 59, + 61, + 65, + 66, + 67, + 68, + 71, + 72, + 79, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Amanda[] = +{ + 1, + 5, + 6, + 10, + 13, + 14, + 16, + 17, + 18, + 19, + 20, + 23, + 24, + 26, + 28, + 29, + 31, + 32, + 33, + 34, + 35, + 36, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 54, + 56, + 59, + 61, + 65, + 66, + 67, + 68, + 71, + 72, + 79, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Stacy[] = +{ + 1, + 5, + 6, + 10, + 13, + 14, + 16, + 17, + 18, + 19, + 20, + 23, + 24, + 26, + 28, + 29, + 31, + 32, + 33, + 34, + 35, + 36, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 54, + 56, + 59, + 61, + 65, + 66, + 67, + 68, + 71, + 72, + 79, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Rafael[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Oliver[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Payton[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Pamela[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Eliza[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Marisa[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lewis[] = +{ + 2, + 3, + 4, + 8, + 9, + 21, + 27, + 39, + 40, + 41, + 42, + 52, + 57, + 58, + 80, + 112, + 132, + 141, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Yoshi[] = +{ + 2, + 3, + 4, + 11, + 12, + 21, + 27, + 39, + 40, + 41, + 42, + 52, + 57, + 58, + 80, + 112, + 132, + 141, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Destin[] = +{ + 2, + 3, + 4, + 21, + 27, + 39, + 40, + 41, + 42, + 52, + 57, + 58, + 80, + 112, + 132, + 141, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Keon[] = +{ + 5, + 21, + 25, + 27, + 35, + 39, + 40, + 41, + 42, + 46, + 47, + 48, + 50, + 52, + 53, + 57, + 58, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 121, + 124, + 127, + 132, + 141, + 146, + 147, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Stuart[] = +{ + 5, + 21, + 25, + 27, + 35, + 39, + 40, + 41, + 42, + 46, + 47, + 48, + 50, + 52, + 53, + 57, + 58, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 121, + 124, + 127, + 132, + 141, + 146, + 147, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Nestor[] = +{ + 5, + 21, + 25, + 27, + 35, + 39, + 40, + 41, + 42, + 46, + 47, + 48, + 50, + 52, + 53, + 57, + 58, + 62, + 63, + 69, + 75, + 78, + 79, + 80, + 84, + 90, + 92, + 99, + 100, + 102, + 106, + 110, + 112, + 114, + 121, + 124, + 127, + 132, + 141, + 146, + 147, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Derrick[] = +{ + 21, + 27, + 29, + 39, + 40, + 41, + 42, + 52, + 57, + 58, + 61, + 62, + 63, + 69, + 80, + 92, + 102, + 112, + 125, + 129, + 132, + 140, + 141, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Bryson[] = +{ + 21, + 27, + 29, + 39, + 40, + 41, + 42, + 52, + 57, + 58, + 61, + 62, + 63, + 69, + 80, + 92, + 102, + 112, + 125, + 129, + 132, + 140, + 141, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Clayton[] = +{ + 21, + 27, + 29, + 39, + 40, + 41, + 42, + 52, + 57, + 58, + 61, + 62, + 63, + 69, + 80, + 92, + 102, + 112, + 125, + 129, + 132, + 140, + 141, + 153, + 154, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Trenton[] = +{ + 6, + 7, + 55, + 60, + 68, + 73, + 83, + 86, + 87, + 105, + 111, + 116, + 123, + 124, + 128, + 134, + 138, + 139, + 151, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jenson[] = +{ + 6, + 7, + 55, + 60, + 68, + 73, + 83, + 86, + 87, + 105, + 111, + 116, + 123, + 124, + 128, + 134, + 138, + 139, + 151, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Wesley[] = +{ + 6, + 7, + 55, + 60, + 68, + 73, + 83, + 86, + 87, + 105, + 111, + 116, + 123, + 124, + 128, + 134, + 138, + 139, + 151, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Anton[] = +{ + 31, + 39, + 58, + 67, + 70, + 74, + 75, + 78, + 85, + 104, + 108, + 120, + 122, + 133, + 138, + 139, + 140, + 141, + 150, + 151, + 152, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lawson[] = +{ + 31, + 39, + 58, + 67, + 70, + 74, + 75, + 78, + 85, + 104, + 108, + 120, + 122, + 133, + 138, + 139, + 140, + 141, + 150, + 151, + 152, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Sammy[] = +{ + 31, + 39, + 58, + 67, + 70, + 74, + 75, + 78, + 85, + 104, + 108, + 120, + 122, + 133, + 138, + 139, + 140, + 141, + 150, + 151, + 152, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Arnie[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Adrian[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Tristan[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Juliana[] = +{ + 0, + 14, + 19, + 28, + 42, + 58, + 59, + 67, + 68, + 85, + 118, + 120, + 123, + 155, + 156, + 193, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Rylee[] = +{ + 0, + 14, + 19, + 28, + 42, + 58, + 59, + 67, + 68, + 85, + 118, + 120, + 123, + 155, + 156, + 193, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Chelsea[] = +{ + 0, + 14, + 19, + 28, + 42, + 58, + 59, + 67, + 68, + 85, + 118, + 120, + 123, + 155, + 156, + 193, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Danela[] = +{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 10, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lizbeth[] = +{ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Amelia[] = +{ + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jillian[] = +{ + 0, + 5, + 18, + 19, + 29, + 35, + 48, + 50, + 52, + 61, + 69, + 75, + 78, + 84, + 90, + 94, + 99, + 100, + 101, + 102, + 106, + 112, + 114, + 121, + 125, + 129, + 130, + 131, + 140, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Abbie[] = +{ + 0, + 5, + 18, + 19, + 29, + 35, + 48, + 50, + 52, + 61, + 69, + 75, + 78, + 84, + 90, + 94, + 99, + 100, + 101, + 102, + 106, + 112, + 114, + 121, + 125, + 129, + 130, + 131, + 140, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Briana[] = +{ + 0, + 5, + 18, + 19, + 29, + 35, + 48, + 50, + 52, + 61, + 69, + 75, + 78, + 84, + 90, + 94, + 99, + 100, + 101, + 102, + 106, + 112, + 114, + 121, + 125, + 129, + 130, + 131, + 140, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Antonio[] = +{ + 5, + 10, + 20, + 35, + 48, + 49, + 50, + 62, + 63, + 64, + 66, + 71, + 75, + 77, + 78, + 84, + 90, + 92, + 99, + 106, + 108, + 112, + 114, + 115, + 116, + 119, + 121, + 122, + 143, + 148, + 152, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jaden[] = +{ + 5, + 10, + 20, + 35, + 48, + 49, + 50, + 62, + 63, + 64, + 66, + 71, + 75, + 77, + 78, + 84, + 90, + 92, + 99, + 106, + 108, + 112, + 114, + 115, + 116, + 119, + 121, + 122, + 143, + 148, + 152, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dakota[] = +{ + 5, + 10, + 20, + 35, + 48, + 49, + 50, + 62, + 63, + 64, + 66, + 71, + 75, + 77, + 78, + 84, + 90, + 92, + 99, + 106, + 108, + 112, + 114, + 115, + 116, + 119, + 121, + 122, + 143, + 148, + 152, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Brayden[] = +{ + 1, + 13, + 16, + 17, + 23, + 24, + 25, + 26, + 32, + 33, + 34, + 36, + 37, + 38, + 43, + 44, + 45, + 51, + 54, + 56, + 72, + 91, + 93, + 95, + 106, + 107, + 113, + 117, + 118, + 135, + 137, + 142, + 144, + 145, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Corson[] = +{ + 1, + 13, + 16, + 17, + 23, + 24, + 25, + 26, + 32, + 33, + 34, + 36, + 37, + 38, + 43, + 44, + 45, + 51, + 54, + 56, + 72, + 91, + 93, + 95, + 106, + 107, + 113, + 117, + 118, + 135, + 137, + 142, + 144, + 145, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Trevin[] = +{ + 1, + 13, + 16, + 17, + 23, + 24, + 25, + 26, + 32, + 33, + 34, + 36, + 37, + 38, + 43, + 44, + 45, + 51, + 54, + 56, + 72, + 91, + 93, + 95, + 106, + 107, + 113, + 117, + 118, + 135, + 137, + 142, + 144, + 145, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Patrick[] = +{ + 15, + 22, + 50, + 67, + 70, + 71, + 74, + 77, + 81, + 82, + 83, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 104, + 109, + 111, + 120, + 124, + 128, + 131, + 133, + 134, + 138, + 139, + 151, + 155, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kaden[] = +{ + 15, + 22, + 50, + 67, + 70, + 71, + 74, + 77, + 81, + 82, + 83, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 104, + 109, + 111, + 120, + 124, + 128, + 131, + 133, + 134, + 138, + 139, + 151, + 155, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Maxwell[] = +{ + 15, + 22, + 50, + 67, + 70, + 71, + 74, + 77, + 81, + 82, + 83, + 86, + 87, + 96, + 97, + 98, + 99, + 103, + 104, + 109, + 111, + 120, + 124, + 128, + 131, + 133, + 134, + 138, + 139, + 151, + 155, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Daryl[] = +{ + 15, + 22, + 31, + 39, + 50, + 51, + 58, + 67, + 70, + 74, + 75, + 81, + 82, + 85, + 104, + 120, + 122, + 132, + 133, + 138, + 139, + 140, + 141, + 142, + 144, + 150, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kenneth[] = +{ + 15, + 22, + 31, + 39, + 50, + 51, + 58, + 67, + 70, + 74, + 75, + 81, + 82, + 85, + 104, + 120, + 122, + 132, + 133, + 138, + 139, + 140, + 141, + 142, + 144, + 150, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Rich[] = +{ + 15, + 22, + 31, + 39, + 50, + 51, + 58, + 67, + 70, + 74, + 75, + 81, + 82, + 85, + 104, + 120, + 122, + 132, + 133, + 138, + 139, + 140, + 141, + 142, + 144, + 150, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Caden[] = +{ + 30, + 62, + 63, + 65, + 70, + 74, + 77, + 78, + 85, + 88, + 89, + 95, + 108, + 119, + 122, + 133, + 136, + 149, + 150, + 152, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Marlon[] = +{ + 30, + 62, + 63, + 65, + 70, + 74, + 77, + 78, + 85, + 88, + 89, + 95, + 108, + 119, + 122, + 133, + 136, + 149, + 150, + 152, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Nash[] = +{ + 30, + 62, + 63, + 65, + 70, + 74, + 77, + 78, + 85, + 88, + 89, + 95, + 108, + 119, + 122, + 133, + 136, + 149, + 150, + 152, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Robby[] = +{ + 1, + 13, + 15, + 16, + 17, + 22, + 23, + 24, + 26, + 32, + 33, + 34, + 36, + 37, + 38, + 43, + 44, + 50, + 51, + 54, + 56, + 67, + 70, + 72, + 74, + 75, + 81, + 82, + 85, + 91, + 93, + 104, + 107, + 113, + 117, + 120, + 132, + 133, + 135, + 137, + 142, + 144, + 145, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Reece[] = +{ + 1, + 13, + 15, + 16, + 17, + 22, + 23, + 24, + 26, + 32, + 33, + 34, + 36, + 37, + 38, + 43, + 44, + 50, + 51, + 54, + 56, + 67, + 70, + 72, + 74, + 75, + 81, + 82, + 85, + 91, + 93, + 104, + 107, + 113, + 117, + 120, + 132, + 133, + 135, + 137, + 142, + 144, + 145, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kathryn[] = +{ + 1, + 13, + 15, + 16, + 17, + 22, + 23, + 24, + 26, + 32, + 33, + 34, + 36, + 37, + 38, + 43, + 44, + 50, + 51, + 54, + 56, + 67, + 70, + 72, + 74, + 75, + 81, + 82, + 85, + 91, + 93, + 104, + 107, + 113, + 117, + 120, + 132, + 133, + 135, + 137, + 142, + 144, + 145, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ellen[] = +{ + 1, + 13, + 15, + 16, + 17, + 22, + 23, + 24, + 26, + 32, + 33, + 34, + 36, + 37, + 38, + 43, + 44, + 50, + 51, + 54, + 56, + 67, + 70, + 72, + 74, + 75, + 81, + 82, + 85, + 91, + 93, + 104, + 107, + 113, + 117, + 120, + 132, + 133, + 135, + 137, + 142, + 144, + 145, + 156, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ramon[] = +{ + 15, + 22, + 50, + 71, + 72, + 76, + 77, + 81, + 82, + 83, + 84, + 87, + 96, + 97, + 98, + 99, + 103, + 107, + 109, + 111, + 113, + 117, + 118, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Arthur[] = +{ + 15, + 22, + 50, + 71, + 72, + 76, + 77, + 81, + 82, + 83, + 84, + 87, + 96, + 97, + 98, + 99, + 103, + 107, + 109, + 111, + 113, + 117, + 118, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alondra[] = +{ + 15, + 22, + 50, + 71, + 72, + 76, + 77, + 81, + 82, + 83, + 84, + 87, + 96, + 97, + 98, + 99, + 103, + 107, + 109, + 111, + 113, + 117, + 118, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Adriana[] = +{ + 15, + 22, + 50, + 71, + 72, + 76, + 77, + 81, + 82, + 83, + 84, + 87, + 96, + 97, + 98, + 99, + 103, + 107, + 109, + 111, + 113, + 117, + 118, + 131, + 134, + 138, + 139, + 142, + 144, + 145, + 151, + 155, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Malik[] = +{ + 10, + 15, + 22, + 49, + 50, + 64, + 66, + 71, + 72, + 77, + 78, + 81, + 82, + 91, + 93, + 107, + 108, + 113, + 115, + 117, + 122, + 135, + 137, + 142, + 143, + 144, + 145, + 148, + 152, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jill[] = +{ + 10, + 15, + 22, + 49, + 50, + 64, + 66, + 71, + 72, + 77, + 78, + 81, + 82, + 91, + 93, + 107, + 108, + 113, + 115, + 117, + 122, + 135, + 137, + 142, + 143, + 144, + 145, + 148, + 152, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Erik[] = +{ + 162, + 164, + 168, + 178, + 183, + 184, + 189, + 197, + 199, + 200, + 203, + 204, + 207, + 210, + 213, + 214, + 218, + 220, + 221, + 224, + 227, + 231, + 232, + 233, + 234, + 235, + 236, + 238, + 240, + 243, + 245, + 246, + 250, + 263, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Yazmin[] = +{ + 162, + 164, + 168, + 178, + 183, + 184, + 189, + 197, + 199, + 200, + 203, + 204, + 207, + 210, + 213, + 214, + 218, + 220, + 221, + 224, + 227, + 231, + 232, + 233, + 234, + 235, + 236, + 238, + 240, + 243, + 245, + 246, + 250, + 263, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jamal[] = +{ + 170, + 176, + 178, + 182, + 189, + 190, + 192, + 196, + 211, + 212, + 213, + 219, + 228, + 230, + 232, + 233, + 234, + 236, + 242, + 245, + 249, + 253, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 265, + 266, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Leslie[] = +{ + 170, + 176, + 178, + 182, + 189, + 190, + 192, + 196, + 211, + 212, + 213, + 219, + 228, + 230, + 232, + 233, + 234, + 236, + 242, + 245, + 249, + 253, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 265, + 266, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dave[] = +{ + 162, + 164, + 168, + 178, + 183, + 186, + 187, + 189, + 197, + 199, + 200, + 203, + 204, + 206, + 207, + 214, + 215, + 218, + 220, + 221, + 224, + 227, + 232, + 233, + 234, + 235, + 236, + 240, + 244, + 246, + 250, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Carlo[] = +{ + 162, + 164, + 168, + 178, + 183, + 186, + 187, + 189, + 197, + 199, + 200, + 203, + 204, + 206, + 207, + 214, + 215, + 218, + 220, + 221, + 224, + 227, + 232, + 233, + 234, + 235, + 236, + 240, + 244, + 246, + 250, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Emilia[] = +{ + 162, + 164, + 168, + 178, + 183, + 186, + 187, + 189, + 197, + 199, + 200, + 203, + 204, + 206, + 207, + 214, + 215, + 218, + 220, + 221, + 224, + 227, + 232, + 233, + 234, + 235, + 236, + 240, + 244, + 246, + 250, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dalia[] = +{ + 162, + 164, + 168, + 178, + 183, + 186, + 187, + 189, + 197, + 199, + 200, + 203, + 204, + 206, + 207, + 214, + 215, + 218, + 220, + 221, + 224, + 227, + 232, + 233, + 234, + 235, + 236, + 240, + 244, + 246, + 250, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Hitomi[] = +{ + 164, + 166, + 175, + 178, + 181, + 189, + 191, + 193, + 194, + 195, + 197, + 199, + 200, + 202, + 203, + 205, + 206, + 207, + 210, + 215, + 218, + 220, + 221, + 222, + 223, + 225, + 227, + 230, + 232, + 233, + 234, + 235, + 236, + 240, + 241, + 246, + 247, + 252, + 254, + 262, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ricardo[] = +{ + 164, + 166, + 175, + 178, + 181, + 189, + 191, + 193, + 194, + 195, + 197, + 199, + 200, + 202, + 203, + 205, + 206, + 207, + 210, + 215, + 218, + 220, + 221, + 222, + 223, + 225, + 227, + 230, + 232, + 233, + 234, + 235, + 236, + 240, + 241, + 246, + 247, + 252, + 254, + 262, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Shizuka[] = +{ + 164, + 166, + 175, + 178, + 181, + 189, + 191, + 193, + 194, + 195, + 197, + 199, + 200, + 202, + 203, + 205, + 206, + 207, + 210, + 215, + 218, + 220, + 221, + 222, + 223, + 225, + 227, + 230, + 232, + 233, + 234, + 235, + 236, + 240, + 241, + 246, + 247, + 252, + 254, + 262, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Joana[] = +{ + 164, + 166, + 175, + 178, + 181, + 189, + 191, + 193, + 194, + 195, + 197, + 199, + 200, + 202, + 203, + 205, + 206, + 207, + 210, + 215, + 218, + 220, + 221, + 222, + 223, + 225, + 227, + 230, + 232, + 233, + 234, + 235, + 236, + 240, + 241, + 246, + 247, + 252, + 254, + 262, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kelly[] = +{ + 164, + 166, + 175, + 178, + 181, + 189, + 191, + 193, + 194, + 195, + 197, + 199, + 200, + 202, + 203, + 205, + 206, + 207, + 210, + 215, + 218, + 220, + 221, + 222, + 223, + 225, + 227, + 230, + 232, + 233, + 234, + 235, + 236, + 240, + 241, + 246, + 247, + 252, + 254, + 262, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Rayna[] = +{ + 164, + 166, + 175, + 178, + 181, + 189, + 191, + 193, + 194, + 195, + 197, + 199, + 200, + 202, + 203, + 205, + 206, + 207, + 210, + 215, + 218, + 220, + 221, + 222, + 223, + 225, + 227, + 230, + 232, + 233, + 234, + 235, + 236, + 240, + 241, + 246, + 247, + 252, + 254, + 262, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Evan[] = +{ + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jordan[] = +{ + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Joel[] = +{ + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kristen[] = +{ + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Selphy[] = +{ + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Chloe[] = +{ + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Norton[] = +{ + 267, + 268, + 273, + 274, + 276, + 284, + 289, + 290, + 291, + 292, + 307, + 308, + 311, + 312, + 314, + 317, + 325, + 327, + 328, + 329, + 331, + 332, + 340, + 342, + 347, + 349, + 351, + 352, + 354, + 356, + 359, + 363, + 370, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lukas[] = +{ + 267, + 268, + 273, + 274, + 276, + 284, + 289, + 290, + 291, + 292, + 307, + 308, + 311, + 312, + 314, + 317, + 325, + 327, + 328, + 329, + 331, + 332, + 340, + 342, + 347, + 349, + 351, + 352, + 354, + 356, + 359, + 363, + 370, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Zach[] = +{ + 267, + 268, + 273, + 274, + 276, + 284, + 289, + 290, + 291, + 292, + 307, + 308, + 311, + 312, + 314, + 317, + 325, + 327, + 328, + 329, + 331, + 332, + 340, + 342, + 347, + 349, + 351, + 352, + 354, + 356, + 359, + 363, + 370, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kaitlyn[] = +{ + 267, + 268, + 273, + 274, + 276, + 284, + 289, + 290, + 291, + 292, + 307, + 308, + 311, + 312, + 314, + 317, + 325, + 327, + 328, + 329, + 331, + 332, + 340, + 342, + 347, + 349, + 351, + 352, + 354, + 356, + 359, + 363, + 370, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Breanna[] = +{ + 267, + 268, + 273, + 274, + 276, + 284, + 289, + 290, + 291, + 292, + 307, + 308, + 311, + 312, + 314, + 317, + 325, + 327, + 328, + 329, + 331, + 332, + 340, + 342, + 347, + 349, + 351, + 352, + 354, + 356, + 359, + 363, + 370, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kendra[] = +{ + 267, + 268, + 273, + 274, + 276, + 284, + 289, + 290, + 291, + 292, + 307, + 308, + 311, + 312, + 314, + 317, + 325, + 327, + 328, + 329, + 331, + 332, + 340, + 342, + 347, + 349, + 351, + 352, + 354, + 356, + 359, + 363, + 370, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Molly[] = +{ + 268, + 270, + 272, + 274, + 282, + 284, + 289, + 290, + 303, + 307, + 311, + 314, + 317, + 322, + 327, + 328, + 331, + 336, + 340, + 342, + 344, + 347, + 352, + 353, + 354, + 356, + 359, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jazmin[] = +{ + 268, + 270, + 272, + 274, + 282, + 284, + 289, + 290, + 303, + 307, + 311, + 314, + 317, + 322, + 327, + 328, + 331, + 336, + 340, + 342, + 344, + 347, + 352, + 353, + 354, + 356, + 359, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kelsey[] = +{ + 268, + 270, + 272, + 274, + 282, + 284, + 289, + 290, + 303, + 307, + 311, + 314, + 317, + 322, + 327, + 328, + 331, + 336, + 340, + 342, + 344, + 347, + 352, + 353, + 354, + 356, + 359, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jalen[] = +{ + 269, + 271, + 275, + 279, + 280, + 281, + 283, + 285, + 286, + 287, + 293, + 294, + 295, + 300, + 302, + 307, + 310, + 311, + 320, + 322, + 326, + 330, + 332, + 335, + 344, + 345, + 346, + 348, + 350, + 353, + 357, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Griffen[] = +{ + 269, + 271, + 275, + 279, + 280, + 281, + 283, + 285, + 286, + 287, + 293, + 294, + 295, + 300, + 302, + 307, + 310, + 311, + 320, + 322, + 326, + 330, + 332, + 335, + 344, + 345, + 346, + 348, + 350, + 353, + 357, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Xander[] = +{ + 269, + 271, + 275, + 279, + 280, + 281, + 283, + 285, + 286, + 287, + 293, + 294, + 295, + 300, + 302, + 307, + 310, + 311, + 320, + 322, + 326, + 330, + 332, + 335, + 344, + 345, + 346, + 348, + 350, + 353, + 357, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Marvin[] = +{ + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Brennan[] = +{ + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Baley[] = +{ + 159, + 160, + 161, + 172, + 173, + 177, + 198, + 226, + 238, + 263, + 264, + 277, + 278, + 282, + 303, + 331, + 343, + 368, + 369, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Zackary[] = +{ + 271, + 283, + 294, + 295, + 298, + 299, + 300, + 311, + 315, + 320, + 327, + 328, + 330, + 335, + 337, + 338, + 339, + 341, + 346, + 364, + 365, + 366, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gabriel[] = +{ + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Emily[] = +{ + 272, + 301, + 309, + 330, + 348, + 349, + 350, + 359, + 360, + 362, + 363, + 365, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jordyn[] = +{ + 267, + 269, + 270, + 272, + 273, + 276, + 279, + 284, + 288, + 302, + 304, + 305, + 308, + 309, + 312, + 316, + 319, + 322, + 323, + 325, + 326, + 329, + 331, + 332, + 336, + 340, + 344, + 345, + 351, + 353, + 355, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Sofia[] = +{ + 270, + 272, + 274, + 276, + 279, + 282, + 285, + 290, + 293, + 313, + 314, + 321, + 334, + 340, + 348, + 356, + 359, + 360, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Braden[] = +{ + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kayden[] = +{ + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Cooper[] = +{ + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Julia[] = +{ + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Amara[] = +{ + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lynn[] = +{ + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jovan[] = +{ + 238, + 331, + 343, + 368, + 369, + 375, + 376, + 379, + 382, + 383, + 389, + 394, + 395, + 397, + 398, + 400, + 406, + 408, + 411, + 416, + 417, + 423, + 424, + 425, + 432, + 436, + 438, + 441, + 445, + 453, + 460, + 462, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dominic[] = +{ + 238, + 331, + 343, + 368, + 369, + 375, + 376, + 379, + 382, + 383, + 389, + 394, + 395, + 397, + 398, + 400, + 406, + 408, + 411, + 416, + 417, + 423, + 424, + 425, + 432, + 436, + 438, + 441, + 445, + 453, + 460, + 462, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Nikolas[] = +{ + 238, + 331, + 343, + 368, + 369, + 375, + 376, + 379, + 382, + 383, + 389, + 394, + 395, + 397, + 398, + 400, + 406, + 408, + 411, + 416, + 417, + 423, + 424, + 425, + 432, + 436, + 438, + 441, + 445, + 453, + 460, + 462, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Valeria[] = +{ + 238, + 331, + 343, + 368, + 369, + 375, + 376, + 379, + 382, + 383, + 389, + 394, + 395, + 397, + 398, + 400, + 406, + 408, + 411, + 416, + 417, + 423, + 424, + 425, + 432, + 436, + 438, + 441, + 445, + 453, + 460, + 462, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Delaney[] = +{ + 238, + 331, + 343, + 368, + 369, + 375, + 376, + 379, + 382, + 383, + 389, + 394, + 395, + 397, + 398, + 400, + 406, + 408, + 411, + 416, + 417, + 423, + 424, + 425, + 432, + 436, + 438, + 441, + 445, + 453, + 460, + 462, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Meghan[] = +{ + 238, + 331, + 343, + 368, + 369, + 375, + 376, + 379, + 382, + 383, + 389, + 394, + 395, + 397, + 398, + 400, + 406, + 408, + 411, + 416, + 417, + 423, + 424, + 425, + 432, + 436, + 438, + 441, + 445, + 453, + 460, + 462, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Roberto[] = +{ + 386, + 403, + 412, + 413, + 414, + 433, + 435, + 440, + 450, + 453, + 454, + 456, + 459, + 461, + 463, + 464, + 465, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Damian[] = +{ + 386, + 403, + 412, + 413, + 414, + 433, + 435, + 440, + 450, + 453, + 454, + 456, + 459, + 461, + 463, + 464, + 465, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Brody[] = +{ + 386, + 403, + 412, + 413, + 414, + 433, + 435, + 440, + 450, + 453, + 454, + 456, + 459, + 461, + 463, + 464, + 465, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Graham[] = +{ + 386, + 403, + 412, + 413, + 414, + 433, + 435, + 440, + 450, + 453, + 454, + 456, + 459, + 461, + 463, + 464, + 465, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Tylor[] = +{ + 374, + 381, + 382, + 385, + 388, + 389, + 391, + 392, + 394, + 409, + 411, + 412, + 419, + 430, + 432, + 436, + 440, + 456, + 460, + 462, + 463, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jaren[] = +{ + 374, + 381, + 382, + 385, + 388, + 389, + 391, + 392, + 394, + 409, + 411, + 412, + 419, + 430, + 432, + 436, + 440, + 456, + 460, + 462, + 463, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Cordell[] = +{ + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jazlyn[] = +{ + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Zachery[] = +{ + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Johan[] = +{ + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Shea[] = +{ + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kaila[] = +{ + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Isiah[] = +{ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Garrett[] = +{ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Haylie[] = +{ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Megan[] = +{ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Issac[] = +{ + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Quinton[] = +{ + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Salma[] = +{ + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ansley[] = +{ + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Holden[] = +{ + 343, + 368, + 369, + 383, + 417, + 423, + 424, + 432, + 480, + 481, + 490, + 491, + 494, + 496, + 512, + 513, + 519, + 520, + 528, + 534, + 537, + 541, + 549, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Luca[] = +{ + 343, + 368, + 369, + 383, + 417, + 423, + 424, + 432, + 480, + 481, + 490, + 491, + 494, + 496, + 512, + 513, + 519, + 520, + 528, + 534, + 537, + 541, + 549, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jamison[] = +{ + 282, + 331, + 343, + 368, + 369, + 469, + 472, + 475, + 476, + 478, + 481, + 484, + 490, + 491, + 497, + 500, + 501, + 509, + 510, + 513, + 516, + 517, + 519, + 520, + 524, + 528, + 530, + 533, + 534, + 537, + 542, + 553, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gunnar[] = +{ + 282, + 331, + 343, + 368, + 369, + 469, + 472, + 475, + 476, + 478, + 481, + 484, + 490, + 491, + 497, + 500, + 501, + 509, + 510, + 513, + 516, + 517, + 519, + 520, + 524, + 528, + 530, + 533, + 534, + 537, + 542, + 553, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Craig[] = +{ + 471, + 474, + 475, + 479, + 483, + 485, + 488, + 493, + 495, + 496, + 502, + 504, + 505, + 506, + 507, + 514, + 521, + 525, + 530, + 532, + 535, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 556, + 557, + 558, + 559, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Pierce[] = +{ + 471, + 474, + 475, + 479, + 483, + 485, + 488, + 493, + 495, + 496, + 502, + 504, + 505, + 506, + 507, + 514, + 521, + 525, + 530, + 532, + 535, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 556, + 557, + 558, + 559, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Regina[] = +{ + 471, + 474, + 475, + 479, + 483, + 485, + 488, + 493, + 495, + 496, + 502, + 504, + 505, + 506, + 507, + 514, + 521, + 525, + 530, + 532, + 535, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 556, + 557, + 558, + 559, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alison[] = +{ + 471, + 474, + 475, + 479, + 483, + 485, + 488, + 493, + 495, + 496, + 502, + 504, + 505, + 506, + 507, + 514, + 521, + 525, + 530, + 532, + 535, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 556, + 557, + 558, + 559, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Hank[] = +{ + 277, + 278, + 282, + 303, + 331, + 343, + 368, + 369, + 383, + 417, + 423, + 424, + 432, + 481, + 513, + 519, + 520, + 528, + 575, + 609, + 615, + 616, + 624, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Earl[] = +{ + 277, + 278, + 282, + 303, + 331, + 343, + 368, + 369, + 383, + 417, + 423, + 424, + 432, + 481, + 513, + 519, + 520, + 528, + 575, + 609, + 615, + 616, + 624, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ramiro[] = +{ + 316, + 333, + 347, + 350, + 354, + 358, + 361, + 362, + 363, + 364, + 573, + 576, + 621, + 626, + 631, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Hunter[] = +{ + 316, + 333, + 347, + 350, + 354, + 358, + 361, + 362, + 363, + 364, + 573, + 576, + 621, + 626, + 631, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Aiden[] = +{ + 564, + 575, + 576, + 578, + 579, + 580, + 594, + 595, + 605, + 606, + 608, + 609, + 615, + 619, + 620, + 624, + 625, + 627, + 632, + 642, + 650, + 658, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Xavier[] = +{ + 564, + 575, + 576, + 578, + 579, + 580, + 594, + 595, + 605, + 606, + 608, + 609, + 615, + 619, + 620, + 624, + 625, + 627, + 632, + 642, + 650, + 658, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Clinton[] = +{ + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jesse[] = +{ + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Eduardo[] = +{ + 268, + 307, + 317, + 349, + 352, + 573, + 583, + 585, + 588, + 590, + 599, + 614, + 618, + 635, + 639, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Hal[] = +{ + 268, + 307, + 317, + 349, + 352, + 573, + 583, + 585, + 588, + 590, + 599, + 614, + 618, + 635, + 639, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gage[] = +{ + 289, + 318, + 319, + 329, + 355, + 375, + 379, + 385, + 386, + 457, + 473, + 477, + 482, + 484, + 553, + 567, + 571, + 577, + 578, + 649, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Arnold[] = +{ + 289, + 318, + 319, + 329, + 355, + 375, + 379, + 385, + 386, + 457, + 473, + 477, + 482, + 484, + 553, + 567, + 571, + 577, + 578, + 649, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jarrett[] = +{ + 565, + 573, + 576, + 580, + 582, + 584, + 592, + 601, + 602, + 610, + 621, + 623, + 626, + 631, + 634, + 640, + 641, + 644, + 648, + 650, + 651, + 653, + 655, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Garett[] = +{ + 565, + 573, + 576, + 580, + 582, + 584, + 592, + 601, + 602, + 610, + 621, + 623, + 626, + 631, + 634, + 640, + 641, + 644, + 648, + 650, + 651, + 653, + 655, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Emanuel[] = +{ + 564, + 565, + 574, + 579, + 582, + 594, + 595, + 605, + 606, + 608, + 609, + 616, + 619, + 620, + 623, + 624, + 625, + 627, + 642, + 643, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gustavo[] = +{ + 564, + 565, + 574, + 579, + 582, + 594, + 595, + 605, + 606, + 608, + 609, + 616, + 619, + 620, + 623, + 624, + 625, + 627, + 642, + 643, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kameron[] = +{ + 568, + 581, + 589, + 598, + 600, + 603, + 607, + 611, + 617, + 618, + 622, + 636, + 643, + 646, + 647, + 652, + 654, + 656, + 659, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alfredo[] = +{ + 568, + 581, + 589, + 598, + 600, + 603, + 607, + 611, + 617, + 618, + 622, + 636, + 643, + 646, + 647, + 652, + 654, + 656, + 659, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ruben[] = +{ + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lamar[] = +{ + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jaxon[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Logan[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Emilee[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Josie[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Armando[] = +{ + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Skyler[] = +{ + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ruth[] = +{ + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Melody[] = +{ + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Pedro[] = +{ + 347, + 661, + 664, + 669, + 672, + 676, + 677, + 678, + 680, + 685, + 688, + 694, + 696, + 697, + 698, + 699, + 706, + 713, + 717, + 719, + 722, + 724, + 727, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 748, + 749, + 750, + 751, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Erick[] = +{ + 347, + 661, + 664, + 669, + 672, + 676, + 677, + 678, + 680, + 685, + 688, + 694, + 696, + 697, + 698, + 699, + 706, + 713, + 717, + 719, + 722, + 724, + 727, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 748, + 749, + 750, + 751, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Elaine[] = +{ + 664, + 665, + 669, + 672, + 676, + 677, + 680, + 685, + 687, + 688, + 694, + 696, + 697, + 698, + 699, + 706, + 713, + 717, + 722, + 724, + 727, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 748, + 749, + 750, + 751, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Joyce[] = +{ + 664, + 665, + 669, + 672, + 676, + 677, + 680, + 685, + 687, + 688, + 694, + 696, + 697, + 698, + 699, + 706, + 713, + 717, + 722, + 724, + 727, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 748, + 749, + 750, + 751, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Todd[] = +{ + 267, + 273, + 305, + 312, + 325, + 332, + 352, + 662, + 665, + 668, + 669, + 670, + 672, + 673, + 676, + 677, + 679, + 680, + 682, + 688, + 697, + 698, + 699, + 700, + 707, + 710, + 718, + 720, + 724, + 725, + 728, + 730, + 731, + 732, + 734, + 735, + 744, + 748, + 750, + 751, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gavin[] = +{ + 267, + 273, + 305, + 312, + 325, + 332, + 352, + 662, + 665, + 668, + 669, + 670, + 672, + 673, + 676, + 677, + 679, + 680, + 682, + 688, + 697, + 698, + 699, + 700, + 707, + 710, + 718, + 720, + 724, + 725, + 728, + 730, + 731, + 732, + 734, + 735, + 744, + 748, + 750, + 751, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Malory[] = +{ + 267, + 273, + 305, + 312, + 325, + 332, + 352, + 662, + 665, + 668, + 669, + 670, + 672, + 673, + 676, + 677, + 679, + 680, + 682, + 688, + 697, + 698, + 699, + 700, + 707, + 710, + 718, + 720, + 724, + 725, + 728, + 730, + 731, + 732, + 734, + 735, + 744, + 748, + 750, + 751, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Esther[] = +{ + 267, + 273, + 305, + 312, + 325, + 332, + 352, + 662, + 665, + 668, + 669, + 670, + 672, + 673, + 676, + 677, + 679, + 680, + 682, + 688, + 697, + 698, + 699, + 700, + 707, + 710, + 718, + 720, + 724, + 725, + 728, + 730, + 731, + 732, + 734, + 735, + 744, + 748, + 750, + 751, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Oscar[] = +{ + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Wilson[] = +{ + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Clare[] = +{ + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Tess[] = +{ + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Leon[] = +{ + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alonzo[] = +{ + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Vince[] = +{ + 421, + 425, + 431, + 437, + 439, + 456, + 460, + 465, + 466, + 517, + 521, + 527, + 533, + 535, + 552, + 556, + 561, + 562, + 613, + 617, + 623, + 629, + 631, + 648, + 652, + 657, + 658, + 709, + 713, + 719, + 725, + 727, + 744, + 748, + 753, + 754, + 766, + 777, + 788, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Bryon[] = +{ + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 799, + 836, + 837, + 838, + 839, + 840, + 841, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ava[] = +{ + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Miriam[] = +{ + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Carrie[] = +{ + 421, + 425, + 431, + 437, + 439, + 456, + 460, + 465, + 466, + 517, + 521, + 527, + 533, + 535, + 552, + 556, + 561, + 562, + 613, + 617, + 623, + 629, + 631, + 648, + 652, + 657, + 658, + 709, + 713, + 719, + 725, + 727, + 744, + 748, + 753, + 754, + 765, + 776, + 787, + 798, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 842, + 843, + 844, + 845, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gillian2[] = +{ + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Tyler[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Chaz[] = +{ + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Nelson[] = +{ + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 799, + 836, + 837, + 838, + 839, + 840, + 841, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Shania[] = +{ + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Stella[] = +{ + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dorine[] = +{ + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Maddox[] = +{ + 403, + 412, + 413, + 414, + 433, + 435, + 440, + 450, + 454, + 456, + 459, + 461, + 463, + 465, + 499, + 508, + 509, + 510, + 529, + 531, + 536, + 546, + 550, + 552, + 555, + 557, + 559, + 561, + 595, + 604, + 605, + 606, + 625, + 627, + 632, + 642, + 646, + 648, + 651, + 653, + 655, + 657, + 691, + 700, + 701, + 702, + 721, + 723, + 728, + 738, + 742, + 744, + 747, + 749, + 751, + 753, + 765, + 766, + 776, + 777, + 787, + 788, + 798, + 799, + 828, + 829, + 830, + 831, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Davin[] = +{ + 403, + 412, + 413, + 414, + 433, + 435, + 440, + 450, + 454, + 456, + 459, + 461, + 463, + 465, + 499, + 508, + 509, + 510, + 529, + 531, + 536, + 546, + 550, + 552, + 555, + 557, + 559, + 561, + 595, + 604, + 605, + 606, + 625, + 627, + 632, + 642, + 646, + 648, + 651, + 653, + 655, + 657, + 691, + 700, + 701, + 702, + 721, + 723, + 728, + 738, + 742, + 744, + 747, + 749, + 751, + 753, + 765, + 766, + 776, + 777, + 787, + 788, + 798, + 799, + 828, + 829, + 830, + 831, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Trevon[] = +{ + 403, + 412, + 413, + 414, + 433, + 435, + 440, + 450, + 454, + 456, + 459, + 461, + 463, + 465, + 499, + 508, + 509, + 510, + 529, + 531, + 536, + 546, + 550, + 552, + 555, + 557, + 559, + 561, + 595, + 604, + 605, + 606, + 625, + 627, + 632, + 642, + 646, + 648, + 651, + 653, + 655, + 657, + 691, + 700, + 701, + 702, + 721, + 723, + 728, + 738, + 742, + 744, + 747, + 749, + 751, + 753, + 765, + 766, + 776, + 777, + 787, + 788, + 798, + 799, + 828, + 829, + 830, + 831, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Mateo[] = +{ + 373, + 382, + 390, + 402, + 403, + 416, + 417, + 424, + 431, + 432, + 435, + 450, + 451, + 469, + 480, + 486, + 498, + 499, + 512, + 513, + 520, + 527, + 528, + 531, + 546, + 547, + 565, + 574, + 582, + 594, + 595, + 608, + 609, + 616, + 623, + 624, + 627, + 642, + 643, + 661, + 670, + 678, + 690, + 691, + 704, + 705, + 712, + 719, + 720, + 723, + 738, + 739, + 808, + 809, + 810, + 811, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Bret[] = +{ + 373, + 382, + 390, + 415, + 419, + 424, + 426, + 430, + 431, + 444, + 451, + 454, + 455, + 464, + 469, + 480, + 486, + 511, + 515, + 520, + 522, + 526, + 527, + 540, + 547, + 550, + 551, + 560, + 565, + 574, + 582, + 607, + 611, + 616, + 618, + 622, + 623, + 636, + 643, + 646, + 647, + 656, + 661, + 670, + 678, + 703, + 707, + 712, + 714, + 718, + 719, + 732, + 739, + 742, + 743, + 752, + 808, + 809, + 810, + 811, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Raul[] = +{ + 373, + 382, + 383, + 386, + 390, + 423, + 424, + 431, + 433, + 450, + 451, + 466, + 469, + 480, + 481, + 482, + 486, + 519, + 520, + 527, + 529, + 546, + 547, + 562, + 565, + 574, + 575, + 578, + 582, + 615, + 616, + 623, + 625, + 642, + 643, + 658, + 661, + 670, + 671, + 674, + 678, + 711, + 712, + 719, + 721, + 738, + 739, + 754, + 808, + 809, + 810, + 811, + 832, + 833, + 834, + 835, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Kay[] = +{ + 373, + 382, + 387, + 390, + 402, + 403, + 413, + 414, + 424, + 427, + 431, + 433, + 451, + 469, + 470, + 480, + 486, + 498, + 499, + 509, + 510, + 520, + 523, + 527, + 529, + 547, + 565, + 574, + 579, + 582, + 594, + 595, + 605, + 606, + 616, + 619, + 623, + 625, + 643, + 661, + 670, + 675, + 678, + 690, + 691, + 701, + 702, + 712, + 715, + 719, + 721, + 739, + 808, + 809, + 810, + 811, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Elena[] = +{ + 373, + 382, + 390, + 415, + 419, + 424, + 426, + 430, + 431, + 444, + 451, + 454, + 455, + 464, + 469, + 480, + 486, + 511, + 515, + 520, + 522, + 526, + 527, + 540, + 547, + 550, + 551, + 560, + 565, + 574, + 582, + 607, + 611, + 616, + 618, + 622, + 623, + 636, + 643, + 646, + 647, + 656, + 661, + 670, + 678, + 703, + 707, + 712, + 714, + 718, + 719, + 732, + 739, + 742, + 743, + 752, + 808, + 809, + 810, + 811, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alana[] = +{ + 373, + 382, + 383, + 386, + 390, + 423, + 424, + 431, + 433, + 450, + 451, + 466, + 469, + 480, + 481, + 482, + 486, + 519, + 520, + 527, + 529, + 546, + 547, + 562, + 565, + 574, + 575, + 578, + 582, + 615, + 616, + 623, + 625, + 642, + 643, + 658, + 661, + 670, + 671, + 674, + 678, + 711, + 712, + 719, + 721, + 738, + 739, + 754, + 808, + 809, + 810, + 811, + 832, + 833, + 834, + 835, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alexas[] = +{ + 382, + 387, + 403, + 423, + 424, + 425, + 431, + 433, + 435, + 450, + 459, + 461, + 465, + 466, + 470, + 480, + 499, + 519, + 520, + 521, + 527, + 529, + 531, + 546, + 555, + 557, + 561, + 562, + 574, + 579, + 595, + 615, + 616, + 617, + 623, + 625, + 627, + 642, + 651, + 653, + 657, + 658, + 670, + 675, + 691, + 711, + 712, + 713, + 719, + 721, + 723, + 738, + 747, + 749, + 753, + 754, + 762, + 763, + 764, + 773, + 774, + 775, + 784, + 785, + 786, + 795, + 796, + 797, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Weston[] = +{ + 374, + 377, + 404, + 421, + 422, + 426, + 437, + 439, + 446, + 451, + 453, + 457, + 458, + 472, + 475, + 500, + 517, + 518, + 522, + 533, + 535, + 542, + 547, + 549, + 553, + 554, + 566, + 569, + 596, + 613, + 614, + 618, + 629, + 631, + 638, + 643, + 645, + 649, + 650, + 662, + 665, + 692, + 709, + 710, + 714, + 725, + 727, + 734, + 739, + 741, + 745, + 746, + 762, + 763, + 764, + 766, + 773, + 774, + 775, + 777, + 784, + 785, + 786, + 788, + 795, + 796, + 797, + 799, + 800, + 801, + 802, + 803, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 836, + 837, + 838, + 839, + 840, + 841, + 846, + 847, + 848, + 849, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jasper[] = +{ + 378, + 388, + 400, + 409, + 410, + 411, + 416, + 429, + 432, + 438, + 447, + 452, + 456, + 460, + 462, + 463, + 471, + 476, + 496, + 505, + 506, + 507, + 512, + 525, + 528, + 534, + 543, + 548, + 552, + 556, + 558, + 559, + 570, + 580, + 592, + 601, + 602, + 603, + 608, + 621, + 624, + 630, + 639, + 644, + 648, + 652, + 654, + 655, + 666, + 676, + 688, + 697, + 698, + 699, + 704, + 717, + 720, + 726, + 735, + 740, + 744, + 748, + 750, + 751, + 762, + 763, + 764, + 773, + 774, + 775, + 784, + 785, + 786, + 795, + 796, + 797, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 836, + 837, + 838, + 839, + 840, + 841, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Nadia[] = +{ + 382, + 387, + 403, + 423, + 424, + 425, + 431, + 433, + 435, + 450, + 459, + 461, + 465, + 466, + 470, + 480, + 499, + 519, + 520, + 521, + 527, + 529, + 531, + 546, + 555, + 557, + 561, + 562, + 574, + 579, + 595, + 615, + 616, + 617, + 623, + 625, + 627, + 642, + 651, + 653, + 657, + 658, + 670, + 675, + 691, + 711, + 712, + 713, + 719, + 721, + 723, + 738, + 747, + 749, + 753, + 754, + 762, + 763, + 764, + 773, + 774, + 775, + 784, + 785, + 786, + 795, + 796, + 797, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Miranda[] = +{ + 374, + 377, + 404, + 421, + 422, + 426, + 437, + 439, + 446, + 451, + 453, + 457, + 458, + 472, + 475, + 500, + 517, + 518, + 522, + 533, + 535, + 542, + 547, + 549, + 553, + 554, + 566, + 569, + 596, + 613, + 614, + 618, + 629, + 631, + 638, + 643, + 645, + 649, + 650, + 662, + 665, + 692, + 709, + 710, + 714, + 725, + 727, + 734, + 739, + 741, + 745, + 746, + 762, + 763, + 764, + 765, + 773, + 774, + 775, + 776, + 784, + 785, + 786, + 787, + 795, + 796, + 797, + 798, + 800, + 801, + 802, + 803, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Emma[] = +{ + 378, + 388, + 400, + 409, + 410, + 411, + 416, + 429, + 432, + 438, + 447, + 452, + 456, + 460, + 462, + 463, + 471, + 476, + 496, + 505, + 506, + 507, + 512, + 525, + 528, + 534, + 543, + 548, + 552, + 556, + 558, + 559, + 570, + 580, + 592, + 601, + 602, + 603, + 608, + 621, + 624, + 630, + 639, + 644, + 648, + 652, + 654, + 655, + 666, + 676, + 688, + 697, + 698, + 699, + 704, + 717, + 720, + 726, + 735, + 740, + 744, + 748, + 750, + 751, + 762, + 763, + 764, + 773, + 774, + 775, + 784, + 785, + 786, + 795, + 796, + 797, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 836, + 837, + 838, + 839, + 840, + 841, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Rolando[] = +{ + 185, + 290, + 377, + 380, + 385, + 401, + 404, + 409, + 410, + 428, + 437, + 438, + 439, + 446, + 466, + 475, + 478, + 484, + 497, + 500, + 505, + 506, + 524, + 533, + 534, + 535, + 542, + 562, + 569, + 572, + 577, + 593, + 596, + 601, + 602, + 620, + 629, + 630, + 631, + 638, + 658, + 665, + 668, + 673, + 689, + 692, + 697, + 698, + 716, + 725, + 726, + 727, + 734, + 754, + 756, + 757, + 758, + 766, + 767, + 768, + 769, + 777, + 778, + 779, + 780, + 788, + 789, + 790, + 791, + 799, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 832, + 833, + 834, + 835, + 846, + 847, + 848, + 849, + 870, + 871, + 872, + 873, + 874, + 875, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Stanly[] = +{ + 185, + 290, + 377, + 380, + 385, + 401, + 404, + 409, + 410, + 428, + 437, + 438, + 439, + 446, + 466, + 475, + 478, + 484, + 497, + 500, + 505, + 506, + 524, + 533, + 534, + 535, + 542, + 562, + 569, + 572, + 577, + 593, + 596, + 601, + 602, + 620, + 629, + 630, + 631, + 638, + 658, + 665, + 668, + 673, + 689, + 692, + 697, + 698, + 716, + 725, + 726, + 727, + 734, + 754, + 759, + 760, + 761, + 766, + 770, + 771, + 772, + 777, + 781, + 782, + 783, + 788, + 792, + 793, + 794, + 799, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 832, + 833, + 834, + 835, + 846, + 847, + 848, + 849, + 876, + 877, + 878, + 879, + 880, + 881, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dario[] = +{ + 185, + 290, + 377, + 380, + 385, + 401, + 404, + 409, + 410, + 428, + 437, + 438, + 439, + 446, + 466, + 475, + 478, + 484, + 497, + 500, + 505, + 506, + 524, + 533, + 534, + 535, + 542, + 562, + 569, + 572, + 577, + 593, + 596, + 601, + 602, + 620, + 629, + 630, + 631, + 638, + 658, + 665, + 668, + 673, + 689, + 692, + 697, + 698, + 716, + 725, + 726, + 727, + 734, + 754, + 762, + 763, + 764, + 766, + 773, + 774, + 775, + 777, + 784, + 785, + 786, + 788, + 795, + 796, + 797, + 799, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 846, + 847, + 848, + 849, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Karlee[] = +{ + 185, + 290, + 377, + 380, + 385, + 401, + 404, + 409, + 410, + 428, + 437, + 438, + 439, + 446, + 466, + 475, + 478, + 484, + 497, + 500, + 505, + 506, + 524, + 533, + 534, + 535, + 542, + 562, + 569, + 572, + 577, + 593, + 596, + 601, + 602, + 620, + 629, + 630, + 631, + 638, + 658, + 665, + 668, + 673, + 689, + 692, + 697, + 698, + 716, + 725, + 726, + 727, + 734, + 754, + 756, + 757, + 758, + 765, + 767, + 768, + 769, + 776, + 778, + 779, + 780, + 787, + 789, + 790, + 791, + 798, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 832, + 833, + 834, + 835, + 842, + 843, + 844, + 845, + 870, + 871, + 872, + 873, + 874, + 875, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jaylin[] = +{ + 185, + 290, + 377, + 380, + 385, + 401, + 404, + 409, + 410, + 428, + 437, + 438, + 439, + 446, + 466, + 475, + 478, + 484, + 497, + 500, + 505, + 506, + 524, + 533, + 534, + 535, + 542, + 562, + 569, + 572, + 577, + 593, + 596, + 601, + 602, + 620, + 629, + 630, + 631, + 638, + 658, + 665, + 668, + 673, + 689, + 692, + 697, + 698, + 716, + 725, + 726, + 727, + 734, + 754, + 759, + 760, + 761, + 765, + 770, + 771, + 772, + 776, + 781, + 782, + 783, + 787, + 792, + 793, + 794, + 798, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 832, + 833, + 834, + 835, + 842, + 843, + 844, + 845, + 876, + 877, + 878, + 879, + 880, + 881, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ingrid[] = +{ + 185, + 290, + 377, + 380, + 385, + 401, + 404, + 409, + 410, + 428, + 437, + 438, + 439, + 446, + 466, + 475, + 478, + 484, + 497, + 500, + 505, + 506, + 524, + 533, + 534, + 535, + 542, + 562, + 569, + 572, + 577, + 593, + 596, + 601, + 602, + 620, + 629, + 630, + 631, + 638, + 658, + 665, + 668, + 673, + 689, + 692, + 697, + 698, + 716, + 725, + 726, + 727, + 734, + 754, + 762, + 763, + 764, + 765, + 773, + 774, + 775, + 776, + 784, + 785, + 786, + 787, + 795, + 796, + 797, + 798, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Delilah[] = +{ + 347, + 352, + 374, + 378, + 398, + 421, + 426, + 447, + 472, + 476, + 494, + 517, + 522, + 543, + 566, + 570, + 590, + 613, + 618, + 639, + 662, + 666, + 686, + 709, + 714, + 735, + 800, + 801, + 802, + 803, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Carly[] = +{ + 344, + 374, + 378, + 394, + 395, + 405, + 413, + 414, + 420, + 421, + 434, + 441, + 457, + 472, + 476, + 490, + 491, + 501, + 509, + 510, + 516, + 517, + 530, + 537, + 553, + 566, + 570, + 586, + 587, + 597, + 605, + 606, + 612, + 613, + 626, + 633, + 649, + 662, + 666, + 682, + 683, + 693, + 701, + 702, + 708, + 709, + 722, + 729, + 745, + 800, + 801, + 802, + 803, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Lexie[] = +{ + 344, + 347, + 352, + 394, + 395, + 398, + 405, + 413, + 414, + 420, + 421, + 426, + 434, + 441, + 447, + 457, + 490, + 491, + 494, + 501, + 509, + 510, + 516, + 517, + 522, + 530, + 537, + 543, + 553, + 586, + 587, + 590, + 597, + 605, + 606, + 612, + 613, + 618, + 626, + 633, + 639, + 649, + 682, + 683, + 686, + 693, + 701, + 702, + 708, + 709, + 714, + 722, + 729, + 735, + 745, + 800, + 801, + 802, + 803, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Miller[] = +{ + 345, + 376, + 386, + 387, + 397, + 399, + 402, + 403, + 406, + 408, + 411, + 413, + 414, + 425, + 427, + 429, + 433, + 435, + 440, + 441, + 445, + 448, + 449, + 450, + 452, + 454, + 456, + 458, + 459, + 460, + 462, + 465, + 466, + 467, + 470, + 474, + 482, + 493, + 495, + 498, + 499, + 502, + 504, + 507, + 509, + 510, + 521, + 523, + 525, + 529, + 531, + 536, + 537, + 541, + 544, + 545, + 546, + 548, + 550, + 552, + 554, + 555, + 556, + 558, + 561, + 562, + 563, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Marv[] = +{ + 345, + 568, + 578, + 579, + 589, + 591, + 594, + 595, + 598, + 600, + 603, + 605, + 606, + 617, + 619, + 621, + 625, + 627, + 632, + 633, + 637, + 640, + 641, + 642, + 644, + 646, + 648, + 650, + 651, + 652, + 654, + 657, + 658, + 659, + 664, + 674, + 675, + 685, + 687, + 690, + 691, + 694, + 696, + 699, + 701, + 702, + 713, + 715, + 717, + 721, + 723, + 728, + 729, + 733, + 736, + 737, + 738, + 740, + 742, + 744, + 746, + 747, + 748, + 750, + 753, + 754, + 755, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Layton[] = +{ + 345, + 425, + 433, + 435, + 445, + 450, + 454, + 456, + 458, + 459, + 460, + 465, + 466, + 521, + 529, + 531, + 541, + 546, + 550, + 552, + 554, + 555, + 556, + 561, + 562, + 617, + 625, + 627, + 637, + 642, + 646, + 648, + 650, + 651, + 652, + 657, + 658, + 713, + 721, + 723, + 733, + 738, + 742, + 744, + 746, + 747, + 748, + 753, + 754, + 804, + 805, + 806, + 807, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Brooks[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gregory[] = +{ + 421, + 425, + 431, + 437, + 439, + 456, + 460, + 465, + 466, + 517, + 521, + 527, + 533, + 535, + 552, + 556, + 561, + 562, + 613, + 617, + 623, + 629, + 631, + 648, + 652, + 657, + 658, + 709, + 713, + 719, + 725, + 727, + 744, + 748, + 753, + 754, + 765, + 766, + 776, + 777, + 787, + 788, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Reese[] = +{ + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Mason[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Toby[] = +{ + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dorothy[] = +{ + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Piper[] = +{ + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Finn[] = +{ + 317, + 371, + 373, + 377, + 390, + 392, + 399, + 431, + 452, + 456, + 469, + 475, + 486, + 488, + 495, + 527, + 548, + 552, + 565, + 569, + 573, + 576, + 580, + 582, + 584, + 591, + 592, + 601, + 602, + 610, + 621, + 623, + 626, + 631, + 634, + 640, + 641, + 644, + 648, + 650, + 651, + 653, + 655, + 661, + 665, + 669, + 672, + 676, + 678, + 680, + 687, + 688, + 697, + 698, + 706, + 717, + 719, + 722, + 727, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 749, + 751, + 808, + 809, + 810, + 811, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Samir[] = +{ + 317, + 371, + 373, + 377, + 390, + 392, + 399, + 431, + 452, + 456, + 469, + 475, + 486, + 488, + 495, + 527, + 548, + 552, + 565, + 569, + 573, + 576, + 580, + 582, + 584, + 591, + 592, + 601, + 602, + 610, + 621, + 623, + 626, + 631, + 634, + 640, + 641, + 644, + 648, + 650, + 651, + 653, + 655, + 661, + 665, + 669, + 672, + 676, + 678, + 680, + 687, + 688, + 697, + 698, + 706, + 717, + 719, + 722, + 727, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 749, + 751, + 808, + 809, + 810, + 811, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Fiona[] = +{ + 317, + 371, + 373, + 377, + 381, + 384, + 388, + 390, + 392, + 399, + 400, + 409, + 410, + 418, + 429, + 431, + 434, + 439, + 442, + 448, + 449, + 452, + 456, + 458, + 459, + 461, + 463, + 469, + 471, + 475, + 479, + 483, + 486, + 488, + 495, + 496, + 505, + 506, + 514, + 525, + 527, + 530, + 535, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 557, + 559, + 565, + 569, + 582, + 584, + 591, + 623, + 644, + 648, + 661, + 665, + 678, + 680, + 687, + 719, + 740, + 744, + 808, + 809, + 810, + 811, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gloria[] = +{ + 317, + 371, + 373, + 377, + 381, + 384, + 388, + 390, + 392, + 399, + 400, + 409, + 410, + 418, + 429, + 431, + 434, + 439, + 442, + 448, + 449, + 452, + 456, + 458, + 459, + 461, + 463, + 469, + 471, + 475, + 479, + 483, + 486, + 488, + 495, + 496, + 505, + 506, + 514, + 525, + 527, + 530, + 535, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 557, + 559, + 565, + 569, + 582, + 584, + 591, + 623, + 644, + 648, + 661, + 665, + 678, + 680, + 687, + 719, + 740, + 744, + 808, + 809, + 810, + 811, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Nico[] = +{ + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Jeremy[] = +{ + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Caitlin[] = +{ + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Reena[] = +{ + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Avery[] = +{ + 21, + 238, + 282, + 303, + 331, + 343, + 368, + 369, + 383, + 417, + 423, + 424, + 432, + 481, + 513, + 519, + 520, + 528, + 575, + 609, + 615, + 616, + 624, + 671, + 705, + 711, + 712, + 720, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Liam[] = +{ + 21, + 238, + 282, + 303, + 331, + 343, + 368, + 369, + 383, + 417, + 423, + 424, + 432, + 481, + 513, + 519, + 520, + 528, + 575, + 609, + 615, + 616, + 624, + 671, + 705, + 711, + 712, + 720, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Theo[] = +{ + 333, + 347, + 350, + 354, + 358, + 361, + 362, + 363, + 364, + 371, + 381, + 384, + 429, + 434, + 439, + 479, + 483, + 525, + 530, + 535, + 573, + 576, + 621, + 626, + 631, + 669, + 672, + 717, + 722, + 727, + 816, + 817, + 818, + 819, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Bailey[] = +{ + 333, + 347, + 350, + 354, + 358, + 361, + 362, + 363, + 364, + 371, + 381, + 384, + 429, + 434, + 439, + 479, + 483, + 525, + 530, + 535, + 573, + 576, + 621, + 626, + 631, + 669, + 672, + 717, + 722, + 727, + 816, + 817, + 818, + 819, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Hugo[] = +{ + 383, + 386, + 402, + 403, + 416, + 417, + 423, + 432, + 433, + 435, + 450, + 466, + 481, + 482, + 498, + 499, + 512, + 513, + 519, + 528, + 529, + 531, + 546, + 562, + 575, + 578, + 594, + 595, + 608, + 609, + 615, + 624, + 625, + 627, + 642, + 658, + 671, + 674, + 690, + 691, + 704, + 705, + 711, + 720, + 721, + 723, + 738, + 754, + 762, + 763, + 764, + 773, + 774, + 775, + 784, + 785, + 786, + 795, + 796, + 797, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Bryce[] = +{ + 383, + 386, + 402, + 403, + 416, + 417, + 423, + 432, + 433, + 435, + 450, + 466, + 481, + 482, + 498, + 499, + 512, + 513, + 519, + 528, + 529, + 531, + 546, + 562, + 575, + 578, + 594, + 595, + 608, + 609, + 615, + 624, + 625, + 627, + 642, + 658, + 671, + 674, + 690, + 691, + 704, + 705, + 711, + 720, + 721, + 723, + 738, + 754, + 762, + 763, + 764, + 773, + 774, + 775, + 784, + 785, + 786, + 795, + 796, + 797, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gideon[] = +{ + 441, + 445, + 448, + 449, + 451, + 453, + 454, + 455, + 458, + 537, + 541, + 544, + 545, + 547, + 549, + 550, + 551, + 554, + 633, + 637, + 640, + 641, + 643, + 645, + 646, + 647, + 650, + 729, + 733, + 736, + 737, + 739, + 741, + 742, + 743, + 746, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Triston[] = +{ + 441, + 445, + 448, + 449, + 451, + 453, + 454, + 455, + 458, + 537, + 541, + 544, + 545, + 547, + 549, + 550, + 551, + 554, + 633, + 637, + 640, + 641, + 643, + 645, + 646, + 647, + 650, + 729, + 733, + 736, + 737, + 739, + 741, + 742, + 743, + 746, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Charles[] = +{ + 352, + 381, + 391, + 393, + 396, + 398, + 407, + 422, + 426, + 443, + 447, + 479, + 487, + 489, + 492, + 494, + 503, + 518, + 522, + 539, + 543, + 573, + 583, + 585, + 588, + 590, + 599, + 614, + 618, + 635, + 639, + 669, + 679, + 681, + 684, + 686, + 695, + 710, + 714, + 731, + 735, + 756, + 757, + 758, + 767, + 768, + 769, + 778, + 779, + 780, + 789, + 790, + 791, + 870, + 871, + 872, + 873, + 874, + 875, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Raymond[] = +{ + 374, + 376, + 381, + 404, + 407, + 422, + 439, + 443, + 459, + 472, + 500, + 506, + 507, + 518, + 532, + 546, + 566, + 585, + 588, + 628, + 635, + 679, + 681, + 684, + 710, + 731, + 785, + 795, + 796, + 797, + 817, + 842, + 843, + 846, + 847, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dirk[] = +{ + 355, + 375, + 379, + 385, + 386, + 412, + 435, + 440, + 454, + 457, + 459, + 465, + 473, + 477, + 482, + 484, + 508, + 531, + 536, + 550, + 553, + 555, + 561, + 567, + 571, + 577, + 578, + 604, + 627, + 632, + 646, + 649, + 651, + 657, + 663, + 667, + 673, + 674, + 700, + 723, + 728, + 742, + 745, + 747, + 753, + 756, + 757, + 758, + 767, + 768, + 769, + 778, + 779, + 780, + 789, + 790, + 791, + 828, + 829, + 830, + 831, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Harold[] = +{ + 355, + 375, + 379, + 385, + 386, + 412, + 435, + 440, + 454, + 457, + 459, + 465, + 473, + 477, + 482, + 484, + 508, + 531, + 536, + 550, + 553, + 555, + 561, + 567, + 571, + 577, + 578, + 604, + 627, + 632, + 646, + 649, + 651, + 657, + 663, + 667, + 673, + 674, + 700, + 723, + 728, + 742, + 745, + 747, + 753, + 756, + 757, + 758, + 767, + 768, + 769, + 778, + 779, + 780, + 789, + 790, + 791, + 828, + 829, + 830, + 831, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Omar[] = +{ + 373, + 388, + 390, + 392, + 400, + 409, + 410, + 418, + 431, + 442, + 448, + 449, + 452, + 456, + 458, + 459, + 461, + 463, + 469, + 471, + 486, + 488, + 496, + 505, + 506, + 514, + 527, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 557, + 559, + 565, + 580, + 582, + 584, + 592, + 601, + 602, + 610, + 623, + 634, + 640, + 641, + 644, + 648, + 650, + 651, + 653, + 655, + 661, + 676, + 678, + 680, + 688, + 697, + 698, + 706, + 719, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 749, + 751, + 808, + 809, + 810, + 811, + 820, + 821, + 822, + 823, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Peter[] = +{ + 373, + 388, + 390, + 392, + 400, + 409, + 410, + 418, + 431, + 442, + 448, + 449, + 452, + 456, + 458, + 459, + 461, + 463, + 469, + 471, + 486, + 488, + 496, + 505, + 506, + 514, + 527, + 538, + 544, + 545, + 548, + 552, + 554, + 555, + 557, + 559, + 565, + 580, + 582, + 584, + 592, + 601, + 602, + 610, + 623, + 634, + 640, + 641, + 644, + 648, + 650, + 651, + 653, + 655, + 661, + 676, + 678, + 680, + 688, + 697, + 698, + 706, + 719, + 730, + 736, + 737, + 740, + 744, + 746, + 747, + 749, + 751, + 808, + 809, + 810, + 811, + 820, + 821, + 822, + 823, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dev[] = +{ + 372, + 387, + 402, + 403, + 413, + 414, + 416, + 417, + 427, + 428, + 432, + 433, + 435, + 440, + 450, + 466, + 468, + 470, + 498, + 499, + 509, + 510, + 512, + 513, + 523, + 524, + 528, + 529, + 531, + 536, + 546, + 562, + 564, + 579, + 594, + 595, + 605, + 606, + 608, + 609, + 619, + 620, + 624, + 625, + 627, + 632, + 642, + 658, + 660, + 675, + 690, + 691, + 701, + 702, + 704, + 705, + 715, + 716, + 720, + 721, + 723, + 728, + 738, + 754, + 832, + 833, + 834, + 835, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Corey[] = +{ + 372, + 387, + 402, + 403, + 413, + 414, + 416, + 417, + 427, + 428, + 432, + 433, + 435, + 440, + 450, + 466, + 468, + 470, + 498, + 499, + 509, + 510, + 512, + 513, + 523, + 524, + 528, + 529, + 531, + 536, + 546, + 562, + 564, + 579, + 594, + 595, + 605, + 606, + 608, + 609, + 619, + 620, + 624, + 625, + 627, + 632, + 642, + 658, + 660, + 675, + 690, + 691, + 701, + 702, + 704, + 705, + 715, + 716, + 720, + 721, + 723, + 728, + 738, + 754, + 832, + 833, + 834, + 835, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Andre[] = +{ + 374, + 378, + 415, + 419, + 421, + 426, + 430, + 444, + 451, + 454, + 455, + 464, + 472, + 476, + 511, + 515, + 517, + 522, + 526, + 540, + 547, + 550, + 551, + 560, + 566, + 570, + 607, + 611, + 613, + 618, + 622, + 636, + 643, + 646, + 647, + 656, + 662, + 666, + 703, + 707, + 709, + 714, + 718, + 732, + 739, + 742, + 743, + 752, + 800, + 801, + 802, + 803, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Ferris[] = +{ + 374, + 378, + 415, + 419, + 421, + 426, + 430, + 444, + 451, + 454, + 455, + 464, + 472, + 476, + 511, + 515, + 517, + 522, + 526, + 540, + 547, + 550, + 551, + 560, + 566, + 570, + 607, + 611, + 613, + 618, + 622, + 636, + 643, + 646, + 647, + 656, + 662, + 666, + 703, + 707, + 709, + 714, + 718, + 732, + 739, + 742, + 743, + 752, + 800, + 801, + 802, + 803, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Alivia[] = +{ + 399, + 400, + 409, + 422, + 438, + 441, + 445, + 448, + 449, + 451, + 452, + 454, + 455, + 489, + 492, + 493, + 503, + 526, + 532, + 535, + 536, + 560, + 573, + 583, + 590, + 592, + 608, + 611, + 620, + 651, + 682, + 688, + 714, + 729, + 732, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Paige[] = +{ + 399, + 400, + 409, + 422, + 438, + 441, + 445, + 448, + 449, + 451, + 452, + 454, + 455, + 489, + 492, + 493, + 503, + 526, + 532, + 535, + 536, + 560, + 573, + 583, + 590, + 592, + 608, + 611, + 620, + 651, + 682, + 688, + 714, + 729, + 732, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Anya[] = +{ + 442, + 443, + 444, + 446, + 447, + 538, + 539, + 540, + 542, + 543, + 634, + 635, + 636, + 638, + 639, + 730, + 731, + 732, + 734, + 735, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Dawn[] = +{ + 377, + 381, + 410, + 421, + 422, + 443, + 456, + 460, + 461, + 471, + 472, + 473, + 484, + 491, + 502, + 503, + 507, + 508, + 515, + 520, + 540, + 549, + 569, + 574, + 583, + 586, + 601, + 622, + 624, + 639, + 644, + 655, + 734, + 804, + 810, + 815, + 823, + 831, + 843, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Abby[] = +{ + 185, + 290, + 313, + 334, + 348, + 359, + 360, + 377, + 380, + 382, + 385, + 394, + 395, + 398, + 400, + 401, + 404, + 409, + 410, + 416, + 437, + 438, + 439, + 441, + 445, + 446, + 453, + 475, + 478, + 480, + 484, + 490, + 491, + 494, + 496, + 497, + 500, + 505, + 506, + 512, + 533, + 534, + 535, + 537, + 541, + 542, + 549, + 569, + 572, + 574, + 577, + 586, + 587, + 590, + 592, + 593, + 596, + 601, + 602, + 608, + 629, + 630, + 631, + 633, + 637, + 638, + 645, + 665, + 668, + 670, + 673, + 682, + 683, + 686, + 688, + 689, + 692, + 697, + 698, + 704, + 725, + 726, + 727, + 729, + 733, + 734, + 741, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + -1 +}; + +const u16 gBattleFrontierTrainerMons_Gretel[] = +{ + 185, + 290, + 313, + 334, + 348, + 359, + 360, + 377, + 380, + 382, + 385, + 394, + 395, + 398, + 400, + 401, + 404, + 409, + 410, + 416, + 437, + 438, + 439, + 441, + 445, + 446, + 453, + 475, + 478, + 480, + 484, + 490, + 491, + 494, + 496, + 497, + 500, + 505, + 506, + 512, + 533, + 534, + 535, + 537, + 541, + 542, + 549, + 569, + 572, + 574, + 577, + 586, + 587, + 590, + 592, + 593, + 596, + 601, + 602, + 608, + 629, + 630, + 631, + 633, + 637, + 638, + 645, + 665, + 668, + 670, + 673, + 682, + 683, + 686, + 688, + 689, + 692, + 697, + 698, + 704, + 725, + 726, + 727, + 729, + 733, + 734, + 741, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + -1 +}; diff --git a/src/data/battle_frontier/battle_frontier_trainers.h b/src/data/battle_frontier/battle_frontier_trainers.h new file mode 100644 index 000000000..faef40656 --- /dev/null +++ b/src/data/battle_frontier/battle_frontier_trainers.h @@ -0,0 +1,2403 @@ +const struct BattleFrontierTrainer gBattleFrontierTrainers[] = +{ + [0] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("BRADY"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NEVER, EC_WORD_GOING, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_WHAT, EC_WORD_QUES, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Brady + }, + [1] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("CONNER"), + .speechBefore = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_IS, EC_WORD_JUST, EC_WORD_AWESOME, 0xFFFF}, + .speechLose = {EC_WORD_DARN, EC_WORD_ELLIPSIS, EC_WORD_LOSING, EC_WORD_DOES, EC_WORD_BUG, EC_WORD_ME}, + .monSets = gBattleFrontierTrainerMons_Conner + }, + [2] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("BRADLEY"), + .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_MY, EC_WORD_OPPONENT, EC_WORD_TODAY}, + .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_SEE_YA, EC_WORD_LATER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_TOMORROW, EC_WORD_IS, EC_WORD_WHEN, EC_WORD_WE, EC_WORD_REALLY, EC_WORD_BATTLE}, + .monSets = gBattleFrontierTrainerMons_Bradley + }, + [3] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("CYBIL"), + .speechBefore = {EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_NOT_VERY, EC_WORD_SCARY, EC_WORD_AT, EC_WORD_ALL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_SAD, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOU, EC_MOVE2(STRUGGLE)}, + .speechLose = {EC_WORD_THIS, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_TO_ME, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Cybil + }, + [4] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("RODETTE"), + .speechBefore = {EC_WORD_OH, EC_WORD_THIS, EC_WORD_IS, EC_WORD_SO, EC_WORD_EXCITING, EC_WORD_EXCL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_INCREDIBLE, EC_WORD_HOW, EC_WORD_STRONG, EC_WORD_I_AM, EC_WORD_EXCL}, + .speechLose = {EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_NO, EC_WORD_GOOD}, + .monSets = gBattleFrontierTrainerMons_Rodette + }, + [5] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("PEGGY"), + .speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_BE, EC_WORD_DESTROYED, EC_WORD_EXCL}, + .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_LOLLING, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_THANKS, EC_WORD_TO, EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Peggy + }, + [6] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, + .trainerName = _("KEITH"), + .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_JUST, EC_WORD_STUDY, EC_WORD_YOU, EC_WORD_KNOW}, + .speechWin = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_STUDY, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Keith + }, + [7] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, + .trainerName = _("GRAYSON"), + .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_BATTLE, EC_WORD_ISN_T, EC_WORD_CHILD_S_PLAY, EC_WORD_EXCL}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_DONE, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_LIKE, EC_WORD_TOYS, EC_WORD_TO, EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Grayson + }, + [8] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, + .trainerName = _("GLENN"), + .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_COOL, EC_WORD_IF_I_WIN, 0xFFFF}, + .speechWin = {EC_WORD_COOL, EC_WORD_EXCL, 0xFFFF, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM}, + .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_COOL}, + .monSets = gBattleFrontierTrainerMons_Glenn + }, + [9] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("LILIANA"), + .speechBefore = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_GIVE_UP, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_WIN}, + .speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_SURRENDER, EC_WORD_IN, EC_WORD_ME}, + .speechLose = {EC_WORD_THAT_S, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_GIVE_UP, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Liliana + }, + [10] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("ELISE"), + .speechBefore = {EC_WORD_MY, EC_WORD_STRATEGY, EC_WORD_IS, EC_WORD_FROM, EC_WORD_MY, EC_WORD_FATHER}, + .speechWin = {EC_WORD_I, EC_WORD_WIN, EC_WORD_EXCL, EC_WORD_FATHER, EC_WORD_I_VE, EC_WORD_WON}, + .speechLose = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_FATHER, EC_WORD_FOR, EC_WORD_I_VE, EC_WORD_LOST}, + .monSets = gBattleFrontierTrainerMons_Elise + }, + [11] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("ZOEY"), + .speechBefore = {EC_WORD_PLEASE, EC_WORD_BATTLE, EC_WORD_LIKE, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, + .speechLose = {EC_WORD_WERE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_BEING, EC_WORD_SERIOUS, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Zoey + }, + [12] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("MANUEL"), + .speechBefore = {EC_WORD_ME, EC_WORD_LOSE, EC_WORD_QUES, EC_WORD_THAT_S, EC_WORD_PREPOSTEROUS, EC_WORD_EXCL}, + .speechWin = {EC_WORD_NATURALLY, EC_WORD_I, EC_WORD_WIN, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_MOTHER}, + .monSets = gBattleFrontierTrainerMons_Manuel + }, + [13] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("RUSS"), + .speechBefore = {EC_WORD_THEY, EC_WORD_ALL, EC_WORD_WANT, EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_HAVE, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_PARTY}, + .speechLose = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_DO, EC_WORD_THAT, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Russ + }, + [14] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("DUSTIN"), + .speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_COOL, EC_WORD_POKEMON, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_WHEN_I_WIN, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_IF_I_LOSE, EC_WORD_TOO, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Dustin + }, + [15] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("TINA"), + .speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_YOU, EC_WORD_CAN, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(SWEET_KISS)}, + .speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_YOUR, EC_MOVE2(SWEET_KISS), EC_WORD_FROM, EC_WORD_MY, EC_POKEMON2(JYNX)}, + .speechLose = {EC_WORD_YOU, EC_WORD_WANT, EC_WORD_A, EC_MOVE(SWIFT), EC_MOVE2(MEGA_KICK), EC_WORD_INSTEAD}, + .monSets = gBattleFrontierTrainerMons_Tina + }, + [16] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("GILLIAN"), + .speechBefore = {EC_WORD_THE, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_IS, EC_WORD_SO, EC_WORD_YESTERDAY}, + .speechWin = {EC_WORD_POKEMON, EC_WORD_NEVER, EC_WORD_GO, EC_WORD_OUT, EC_WORD_OF, EC_WORD_FASHION}, + .speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_DISAPPOINT, EC_WORD_ME, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Gillian + }, + [17] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("ZOE"), + .speechBefore = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_A, EC_WORD_WORRY, EC_WORD_AT, EC_WORD_ALL}, + .speechWin = {EC_WORD_LIFE, EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_GOOD, EC_WORD_TO_ME, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_WORRY, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SKILL}, + .monSets = gBattleFrontierTrainerMons_Zoe + }, + [18] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("CHEN"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_TOTALLY, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_TODAY}, + .speechWin = {EC_WORD_I_AM, EC_WORD_READY, EC_WORD_TO, EC_WORD_GO, EC_WORD_ON, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_MOVE(FOCUS_ENERGY), EC_WORD_AND, EC_WORD_TOUGHNESS}, + .monSets = gBattleFrontierTrainerMons_Chen + }, + [19] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("AL"), + .speechBefore = {EC_WORD_YOUR, EC_WORD_LOOK, EC_WORD_SAYS, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH}, + .speechWin = {EC_WORD_IT_S, EC_WORD_ME, EC_WORD_WHO_IS, EC_WORD_REALLY, EC_WORD_TOUGH, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_RIGHT, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH}, + .monSets = gBattleFrontierTrainerMons_Al + }, + [20] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("MITCH"), + .speechBefore = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_IS, EC_WORD_MY, EC_WORD_ALLY, EC_WORD_EXCL}, + .speechWin = {EC_WORD_WAS, EC_WORD_THAT, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_YOU, EC_WORD_QUES}, + .speechLose = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_DIDN_T, EC_WORD_LET_ME_WIN, EC_WORD_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Mitch + }, + [21] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("ANNE"), + .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_NOW}, + .speechWin = {EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Anne + }, + [22] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("ALIZE"), + .speechBefore = {EC_WORD_CUTE, EC_WORD_AND, EC_WORD_AWFULLY, EC_WORD_STRONG, EC_WORD_THAT_S, EC_WORD_ME}, + .speechWin = {EC_WORD_YUP, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_AND, EC_WORD_AWFULLY, EC_WORD_STRONG}, + .speechLose = {EC_WORD_I_AM, EC_WORD_WEAK, EC_WORD_ELLIPSIS, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_CUTE}, + .monSets = gBattleFrontierTrainerMons_Alize + }, + [23] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("LAUREN"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_OLD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_ALSO, EC_WORD_GOOD}, + .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_I_WAS, EC_WORD_OLD, EC_WORD_BUT, EC_WORD_GOOD}, + .speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_WEIRD, EC_WORD_DREAM, EC_WORD_THAT_WAS, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Lauren + }, + [24] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("KIPP"), + .speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GO, EC_MOVE2(SURF)}, + .speechWin = {EC_WORD_YEAH, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_OFF, EC_WORD_TO, EC_MOVE2(SURF)}, + .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Kipp + }, + [25] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("JASON"), + .speechBefore = {EC_WORD_TEACH, EC_WORD_ME, EC_WORD_A, EC_WORD_GOOD, EC_WORD_STRATEGY, 0xFFFF}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_YOUR, EC_WORD_GOOD, EC_WORD_STRATEGY, EC_WORD_QUES_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_WOW, EC_WORD_THAT, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWESOME, EC_WORD_STRATEGY}, + .monSets = gBattleFrontierTrainerMons_Jason + }, + [26] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("JOHN"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_PRETTY, EC_WORD_NEW, EC_WORD_TRAINER, 0xFFFF}, + .speechWin = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_BUT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_SO, EC_WORD_WHAT, EC_WORD_IF_I_LOSE, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_John + }, + [27] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("ANN"), + .speechBefore = {EC_WORD_IT_S, EC_WORD_SO, EC_WORD_EXCITING, EC_WORD_IT, EC_WORD_REALLY, EC_WORD_IS}, + .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_I, EC_WORD_CAN, EC_WORD_CRY}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SAD, EC_WORD_I, EC_WORD_WILL, EC_WORD_CRY}, + .monSets = gBattleFrontierTrainerMons_Ann + }, + [28] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("EILEEN"), + .speechBefore = {EC_WORD_LET_S, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_OK_QUES}, + .speechWin = {EC_WORD_SO, EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_FEELING}, + .speechLose = {EC_WORD_AN, EC_WORD_ADULT, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Eileen + }, + [29] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("CARLIE"), + .speechBefore = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_IS, EC_WORD_FOR, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_WILL, EC_WORD_BE, EC_WORD_AWESOME}, + .speechLose = {EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Carlie + }, + [30] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("GORDON"), + .speechBefore = {EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_COME, EC_WORD_TO_ME, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_OH_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_REALLY, EC_WORD_WON}, + .speechLose = {EC_WORD_NOTHING, EC_WORD_IS, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_FOR, EC_WORD_ME}, + .monSets = gBattleFrontierTrainerMons_Gordon + }, + [31] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("AYDEN"), + .speechBefore = {EC_WORD_COME_ON, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_HOT, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_WATER, EC_WORD_TO, EC_WORD_COOL, EC_WORD_DOWN}, + .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_ICE, EC_WORD_COLD}, + .monSets = gBattleFrontierTrainerMons_Ayden + }, + [32] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("MARCO"), + .speechBefore = {EC_WORD_I, EC_MOVE2(SURF), EC_WORD_IN, EC_WORD_THE, EC_WORD_WINTER, EC_WORD_TOO}, + .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_MOVE2(SURF), EC_WORD_RIGHT, EC_WORD_NOW}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(BEAT_UP), EC_WORD_MY, EC_MOVE2(SURF), EC_WORD_BOARD}, + .monSets = gBattleFrontierTrainerMons_Marco + }, + [33] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("CIERRA"), + .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_MY, EC_WORD_SWIFT_SWIM}, + .speechWin = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SYNCHRONIZE, EC_WORD_WITH, EC_WORD_ME, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_BETTER, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Cierra + }, + [34] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("MARCY"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_KNOCKOUT, EC_WORD_YOU, EC_WORD_CAN_T_WIN, EC_WORD_EXCL}, + .speechWin = {EC_WORD_AFTER, EC_WORD_ALL, EC_WORD_I_AM, EC_WORD_A, EC_WORD_KNOCKOUT, EC_WORD_EXCL}, + .speechLose = {EC_WORD_THAT_S, EC_WORD_NOT, EC_WORD_THE, EC_WORD_KNOCKOUT, EC_WORD_I, EC_WORD_MEAN}, + .monSets = gBattleFrontierTrainerMons_Marcy + }, + [35] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("KATHY"), + .speechBefore = {EC_WORD_I_VE, EC_WORD_WON, EC_WORD_EVERY, EC_WORD_MATCH, EC_WORD_TODAY, EC_WORD_EXCL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_SO, EC_WORD_GREAT, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL}, + .speechLose = {EC_WORD_HUH_QUES, EC_WORD_I, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_HAVE, EC_WORD_LOST}, + .monSets = gBattleFrontierTrainerMons_Kathy + }, + [36] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("PEYTON"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NEVER, EC_WORD_DISAPPOINTED, EC_WORD_WITH, EC_WORD_MY, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_IF, EC_WORD_WE, EC_WORD_WIN, EC_WORD_TOGETHER}, + .speechLose = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_MORE, EC_WORD_IF_I_LOSE}, + .monSets = gBattleFrontierTrainerMons_Peyton + }, + [37] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("JULIAN"), + .speechBefore = {EC_WORD_YOU, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_RIGHT, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOTALLY, EC_WORD_OUT, EC_WORD_OF, EC_WORD_THE, EC_WORD_QUESTION}, + .speechLose = {EC_WORD_YOU, EC_WORD_DO, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Julian + }, + [38] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("QUINN"), + .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_BUT, EC_WORD_A, EC_WORD_DREAM}, + .speechWin = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_BEAUTIFUL, EC_WORD_DREAM, EC_WORD_EXCL}, + .speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Quinn + }, + [39] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("HAYLEE"), + .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_I_AM, EC_WORD_FEELING}, + .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_OVERWHELMING, EC_WORD_JOY, EC_WORD_OVER, EC_WORD_THIS}, + .speechLose = {EC_WORD_DESTROYED, EC_WORD_IS, EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_FEELING}, + .monSets = gBattleFrontierTrainerMons_Haylee + }, + [40] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("AMANDA"), + .speechBefore = {EC_WORD_I, EC_WORD_COME, EC_WORD_FROM, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_FAMILY}, + .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_TREASURE, EC_WORD_THIS, EC_WORD_WIN, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO_HOME, EC_WORD_RIGHT, EC_WORD_NOW}, + .monSets = gBattleFrontierTrainerMons_Amanda + }, + [41] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("STACY"), + .speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_THEIR, EC_WORD_OWN, EC_WORD_CUTE_CHARM}, + .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_WHAT, EC_WORD_I, EC_WORD_MEAN, EC_WORD_QUES}, + .speechLose = {EC_WORD_SHOULD, EC_WORD_I, EC_WORD_NOT, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Stacy + }, + [42] = { + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, + .trainerName = _("RAFAEL"), + .speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_SOME, EC_WORD_SPIRIT}, + .speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_SPIRIT, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_WELL, EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_OUR, EC_WORD_SPIRIT}, + .monSets = gBattleFrontierTrainerMons_Rafael + }, + [43] = { + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, + .trainerName = _("OLIVER"), + .speechBefore = {EC_WORD_A, EC_WORD_GENIUS, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL}, + .speechWin = {EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_WORKS, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_THAN, EC_WORD_I_AM}, + .monSets = gBattleFrontierTrainerMons_Oliver + }, + [44] = { + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, + .trainerName = _("PAYTON"), + .speechBefore = {EC_WORD_I, EC_WORD_TRAIN, EC_WORD_FROM, EC_WORD_THE, EC_WORD_EGG, EC_WORD_UP}, + .speechWin = {EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_A, EC_MOVE2(SOFT_BOILED), EC_WORD_LOSS, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Payton + }, + [45] = { + .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .trainerName = _("PAMELA"), + .speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_ADORE, EC_WORD_A, EC_WORD_KIND, EC_WORD_TRAINER}, + .speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_YOU, EC_WORD_LOST, 0xFFFF}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_AND, EC_WORD_YOU_RE, EC_WORD_ALSO, EC_WORD_STRONG}, + .monSets = gBattleFrontierTrainerMons_Pamela + }, + [46] = { + .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .trainerName = _("ELIZA"), + .speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_CHILDREN}, + .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POKEMON}, + .speechLose = {EC_WORD_OH_DEAR, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_WORD_ABOUT, EC_WORD_THIS}, + .monSets = gBattleFrontierTrainerMons_Eliza + }, + [47] = { + .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .trainerName = _("MARISA"), + .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, 0xFFFF}, + .speechWin = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BETTER}, + .speechLose = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_PLEASE, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Marisa + }, + [48] = { + .facilityClass = FACILITY_CLASS_BUG_CATCHER, + .trainerName = _("LEWIS"), + .speechBefore = {EC_WORD_A_LITTLE, EC_WORD_BUG, EC_WORD_IS, EC_WORD_SCARY, EC_WORD_QUES, EC_WORD_HAHAHA}, + .speechWin = {EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL, EC_WORD_A, EC_WORD_SCARY, EC_WORD_BUG}, + .speechLose = {EC_WORD_OH, EC_WORD_A, EC_WORD_BUG, EC_WORD_ISN_T, EC_WORD_SCARY, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Lewis + }, + [49] = { + .facilityClass = FACILITY_CLASS_BUG_CATCHER, + .trainerName = _("YOSHI"), + .speechBefore = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_LOVEY_DOVEY}, + .speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_IGNORANT, EC_WORD_ABOUT, EC_WORD_BUG, EC_WORD_POKEMON, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Yoshi + }, + [50] = { + .facilityClass = FACILITY_CLASS_BUG_CATCHER, + .trainerName = _("DESTIN"), + .speechBefore = {EC_WORD_IT_S, EC_WORD_WAY, EC_WORD_TOO, EC_WORD_HOT, EC_WORD_HERE, 0xFFFF}, + .speechWin = {EC_WORD_I_AM, EC_WORD_ABOUT, EC_WORD_TO, EC_MOVE(OVERHEAT), 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_WATER, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Destin + }, + [51] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("KEON"), + .speechBefore = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_BUT, EC_WORD_HERE_I_COME, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_FOR, EC_WORD_MY, EC_WORD_OVERWHELMING, EC_WORD_POWER}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Keon + }, + [52] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("STUART"), + .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_YOU, EC_WORD_A, EC_WORD_HOT, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_THE, EC_WORD_MASTER, EC_WORD_OF, EC_WORD_COOL, EC_WORD_THAT_S, EC_WORD_ME}, + .speechLose = {EC_WORD_I, EC_WORD_SEE, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_SO, EC_WORD_COOL}, + .monSets = gBattleFrontierTrainerMons_Stuart + }, + [53] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("NESTOR"), + .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_REALLY, EC_WORD_SMOOTH, EC_WORD_MOVE}, + .speechWin = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_NOTHING, EC_WORD_SMOOTH, EC_WORD_ABOUT, EC_WORD_THAT}, + .speechLose = {EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SMOOTH, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Nestor + }, + [54] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("DERRICK"), + .speechBefore = {EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_YOU, EC_MOVE2(MEDITATE), EC_WORD_LIKE, EC_WORD_ME}, + .speechWin = {EC_WORD_HOW, EC_WORD_I, EC_MOVE2(MEDITATE), EC_WORD_IS, EC_WORD_JUST, EC_WORD_BEAUTIFUL}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(MEDITATE), EC_WORD_FOR, EC_WORD_A, EC_MOVE2(CALM_MIND)}, + .monSets = gBattleFrontierTrainerMons_Derrick + }, + [55] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("BRYSON"), + .speechBefore = {EC_MOVE2(POISON_POWDER), EC_WORD_IS, EC_WORD_IN, EC_WORD_OUR, EC_MOVE2(COTTON_SPORE), EC_WORD_MOVE}, + .speechWin = {EC_WORD_HOW_DO, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_OUR, EC_MOVE2(POISON_POWDER), EC_WORD_QUES}, + .speechLose = {EC_WORD_MY, EC_MOVE2(COTTON_SPORE), EC_WORD_WAS, EC_WORD_USELESS, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Bryson + }, + [56] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("CLAYTON"), + .speechBefore = {EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, EC_WORD_WHERE, EC_WORD_IS_IT_QUES, 0xFFFF}, + .speechWin = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_POKENAV}, + .speechLose = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_SENSE}, + .monSets = gBattleFrontierTrainerMons_Clayton + }, + [57] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("TRENTON"), + .speechBefore = {EC_WORD_COME_OVER, EC_WORD_FOR, EC_WORD_SOME, EC_WORD_TASTY, EC_WORD_WATER, 0xFFFF}, + .speechWin = {EC_WORD_MMM, EC_WORD_DO, EC_WORD_YOU, EC_WORD_WANT, EC_WORD_SOME, EC_WORD_QUES}, + .speechLose = {EC_WORD_I, EC_WORD_GOT, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_WATER, EC_WORD_SHOPPING}, + .monSets = gBattleFrontierTrainerMons_Trenton + }, + [58] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("JENSON"), + .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_DOWNCAST}, + .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THE, EC_MOVE(CUT)}, + .speechLose = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_TRAINER, EC_WORD_WHO_IS, EC_WORD_FEELING, EC_WORD_DOWNCAST}, + .monSets = gBattleFrontierTrainerMons_Jenson + }, + [59] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("WESLEY"), + .speechBefore = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_IS, EC_WORD_HOW, EC_WORD_I, EC_WORD_CRY}, + .speechWin = {EC_WORD_YES, EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_EXCL}, + .speechLose = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_EXCL, EC_POKEMON2(MEW), EC_WORD_EXCL_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Wesley + }, + [60] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("ANTON"), + .speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_FOR, EC_WORD_ME, EC_WORD_TO, EC_MOVE(THRASH)}, + .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_ABOUT, EC_WORD_THAT, EC_WORD_EXCL}, + .speechLose = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_LOSS, EC_WORD_TO, EC_MOVE2(SWALLOW)}, + .monSets = gBattleFrontierTrainerMons_Anton + }, + [61] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("LAWSON"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AT, EC_WORD_HEART, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_NOT, EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_NOT, EC_WORD_AT, EC_WORD_ALL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_OLD, EC_WORD_AND, EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Lawson + }, + [62] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("SAMMY"), + .speechBefore = {EC_WORD_MY, EC_WORD_PARTY, EC_WORD_IS, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK}, + .speechWin = {EC_WORD_MY, EC_WORD_PARTY, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_CRY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_PARTY, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Sammy + }, + [63] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("ARNIE"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_I, EC_WORD_HAVE, EC_WORD_NO, EC_WORD_RIVAL}, + .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE}, + .speechLose = {EC_WORD_NO, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WON_T, EC_WORD_ACCEPT, EC_WORD_THIS}, + .monSets = gBattleFrontierTrainerMons_Arnie + }, + [64] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("ADRIAN"), + .speechBefore = {EC_WORD_YAHOO, EC_WORD_EXCL, 0xFFFF, EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_GOOD_BYE, EC_WORD_EXCL, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_EXCL_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Adrian + }, + [65] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("TRISTAN"), + .speechBefore = {EC_WORD_CONFUSED, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, + .speechWin = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, + .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_IN, EC_WORD_BATTLE}, + .monSets = gBattleFrontierTrainerMons_Tristan + }, + [66] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("JULIANA"), + .speechBefore = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_SHOPPING, EC_WORD_TOO, EC_WORD_MUCH}, + .speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_PLUSH_DOLL}, + .speechLose = {EC_WORD_I, EC_WORD_SO, EC_WORD_WANT, EC_WORD_ANOTHER, EC_WORD_POKEMON, EC_WORD_PLUSH_DOLL}, + .monSets = gBattleFrontierTrainerMons_Juliana + }, + [67] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("RYLEE"), + .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS}, + .speechWin = {EC_WORD_BYE_BYE, EC_WORD_EXCL, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_NO, EC_WORD_GUTS}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_GUTSY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_SUPER}, + .monSets = gBattleFrontierTrainerMons_Rylee + }, + [68] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("CHELSEA"), + .speechBefore = {EC_WORD_I, EC_WORD_SERIOUSLY, EC_WORD_MEAN, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MY, EC_WORD_WILL, EC_WORD_TO, EC_WORD_WIN, 0xFFFF}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Chelsea + }, + [69] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("DANELA"), + .speechBefore = {EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_MY, EC_WORD_OPPONENT, EC_WORD_NOW, EC_WORD_EXCL}, + .speechWin = {EC_WORD_OH_DEAR, EC_WORD_TOO_WEAK, EC_WORD_EXCL, EC_WORD_DON_T, EC_WORD_GIVE_UP, EC_WORD_EXCL}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_GOOD, EC_WORD_AND, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE}, + .monSets = gBattleFrontierTrainerMons_Danela + }, + [70] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("LIZBETH"), + .speechBefore = {EC_WORD_IF_I_LOSE, EC_WORD_YOU, EC_WORD_CAN, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(PRESENT)}, + .speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_A_LITTLE, EC_WORD_PRAISE, EC_WORD_AS, EC_WORD_YOUR, EC_MOVE2(PRESENT)}, + .speechLose = {EC_WORD_YOUR, EC_MOVE2(PRESENT), EC_WORD_QUES_EXCL, EC_WORD_HERE_IT_IS, EC_WORD_A, EC_MOVE(DOUBLE_SLAP)}, + .monSets = gBattleFrontierTrainerMons_Lizbeth + }, + [71] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("AMELIA"), + .speechBefore = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_CUTE, EC_WORD_FASHION, EC_WORD_APPEAL}, + .speechWin = {EC_WORD_YOUR, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_A, EC_WORD_DISASTER}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_AWFUL, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_HOME}, + .monSets = gBattleFrontierTrainerMons_Amelia + }, + [72] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("JILLIAN"), + .speechBefore = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_THAT, EC_WORD_I, EC_WORD_SMELL, EC_WORD_QUES}, + .speechWin = {EC_WORD_IT_S, EC_WORD_THE, EC_MOVE(SWEET_SCENT), EC_WORD_OF, EC_WORD_TASTY, EC_WORD_WATER}, + .speechLose = {EC_WORD_IT_S, EC_WORD_YOUR, EC_WORD_OFFENSIVE, EC_WORD_STENCH, EC_WORD_THAT_S, EC_WORD_WHAT}, + .monSets = gBattleFrontierTrainerMons_Jillian + }, + [73] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("ABBIE"), + .speechBefore = {EC_WORD_YOU, EC_WORD_TRY, EC_WORD_MY, EC_WORD_SECRET, EC_MOVE(AROMATHERAPY), EC_WORD_OK_QUES}, + .speechWin = {EC_WORD_MY, EC_MOVE(AROMATHERAPY), EC_WORD_IS, EC_WORD_TERRIBLE, EC_WORD_FOR, EC_WORD_YOU}, + .speechLose = {EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_SMELL, EC_WORD_A, EC_WORD_THING, EC_WORD_QUES_EXCL}, + .monSets = gBattleFrontierTrainerMons_Abbie + }, + [74] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("BRIANA"), + .speechBefore = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_WORKS, EC_WORD_TOO, EC_WORD_MUCH}, + .speechWin = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_MISS, EC_WORD_HIM, EC_WORD_MORE, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LONESOME, EC_WORD_WITHOUT, EC_WORD_HIM, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Briana + }, + [75] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("ANTONIO"), + .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_TO, EC_WORD_GO, EC_WORD_GO}, + .speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_DON_T, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_DANCE}, + .speechLose = {EC_WORD_GO, EC_WORD_GO, EC_WORD_ELLIPSIS, EC_WORD_JUST, EC_MOVE(FLAIL), EC_WORD_ABOUT}, + .monSets = gBattleFrontierTrainerMons_Antonio + }, + [76] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("JADEN"), + .speechBefore = {EC_WORD_HELLO, EC_WORD_I, EC_WORD_THINK, EC_WORD_I, EC_WORD_ADORE, EC_WORD_YOU}, + .speechWin = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_MOVE(THRASH), EC_WORD_IN, EC_MOVE2(FRUSTRATION)}, + .speechLose = {EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_FOREVER, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Jaden + }, + [77] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("DAKOTA"), + .speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER}, + .speechWin = {EC_WORD_GOT, EC_WORD_IT, EC_WORD_QUES, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER}, + .speechLose = {EC_WORD_OKAY, EC_WORD_YOU, EC_WORD_UNDERSTAND, EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Dakota + }, + [78] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("BRAYDEN"), + .speechBefore = {EC_WORD_COLOR_CHANGE, EC_WORD_VERSION, EC_WORD_TOYS, EC_WORD_ARE, EC_WORD_USELESS, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_COLLECT, EC_WORD_NORMAL, EC_WORD_VERSION, EC_WORD_TOYS}, + .speechLose = {EC_WORD_I, EC_MOVE2(ATTRACT), EC_WORD_COLOR_CHANGE, EC_WORD_VERSION, EC_WORD_TOYS, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Brayden + }, + [79] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("CORSON"), + .speechBefore = {EC_WORD_I, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(BEAT_UP), EC_WORD_ON, EC_WORD_YOU}, + .speechWin = {EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_COOL}, + .speechLose = {EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_MOVE2(CURSE), EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Corson + }, + [80] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("TREVIN"), + .speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NONE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_ME}, + .speechWin = {EC_WORD_YES_SIR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST}, + .speechLose = {EC_WORD_SERIOUS, EC_WORD_QUES_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Trevin + }, + [81] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("PATRICK"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_GIVE_UP, EC_WORD_NOW, 0xFFFF}, + .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_DISAPPOINTED, EC_WORD_I_AM, EC_WORD_PERFECT, 0xFFFF}, + .speechLose = {EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Patrick + }, + [82] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("KADEN"), + .speechBefore = {EC_WORD_WHAT, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_UP, EC_WORD_TO, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOU, EC_WORD_WERE, EC_WORD_A, EC_WORD_SURPRISE, EC_WORD_TO_ME, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_WHO, EC_WORD_I_AM, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Kaden + }, + [83] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("MAXWELL"), + .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_WHO_IS, EC_WORD_YOUR, EC_WORD_RIVAL, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_MY, EC_WORD_RIVAL, EC_WORD_IS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_FRIEND}, + .speechLose = {EC_WORD_I_AM, EC_WORD_MAKING, EC_WORD_YOU, EC_WORD_MY, EC_WORD_RIVAL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Maxwell + }, + [84] = { + .facilityClass = FACILITY_CLASS_HIKER, + .trainerName = _("DARYL"), + .speechBefore = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_TO, EC_MOVE(CHARGE)}, + .speechWin = {EC_WORD_AM, EC_WORD_I, EC_WORD_OVERWHELMING, EC_WORD_OR, EC_WORD_WHAT, EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_A, EC_WORD_LEGEND, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Daryl + }, + [85] = { + .facilityClass = FACILITY_CLASS_HIKER, + .trainerName = _("KENNETH"), + .speechBefore = {EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_MOVE2(SLACK_OFF), EC_WORD_WITH, EC_WORD_ME}, + .speechWin = {EC_WORD_DID, EC_WORD_MY, EC_MOVE2(TAUNT), EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Kenneth + }, + [86] = { + .facilityClass = FACILITY_CLASS_HIKER, + .trainerName = _("RICH"), + .speechBefore = {EC_WORD_YOUR, EC_MOVE(FACADE), EC_WORD_DOESN_T, EC_MOVE2(TRICK), EC_WORD_ME, 0xFFFF}, + .speechWin = {EC_WORD_SERIOUSLY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_OK_QUES, 0xFFFF}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TOUGH, EC_WORD_ON, EC_WORD_ME, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Rich + }, + [87] = { + .facilityClass = FACILITY_CLASS_KINDLER, + .trainerName = _("CADEN"), + .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_DEFEATED, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF, EC_WORD_FIRE, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_SO, EC_WORD_HOT}, + .monSets = gBattleFrontierTrainerMons_Caden + }, + [88] = { + .facilityClass = FACILITY_CLASS_KINDLER, + .trainerName = _("MARLON"), + .speechBefore = {EC_WORD_A, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_A_LITTLE, EC_WORD_RADIO, EC_WORD_QUES}, + .speechWin = {EC_WORD_A_LITTLE, EC_WORD_RADIO, EC_WORD_HUH_QUES, EC_WORD_THAT_S, EC_WORD_TOTALLY, EC_WORD_COOL}, + .speechLose = {EC_WORD_IT_S, EC_WORD_NOT, EC_WORD_QUES, EC_WORD_IS, EC_WORD_POKENAV, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Marlon + }, + [89] = { + .facilityClass = FACILITY_CLASS_KINDLER, + .trainerName = _("NASH"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_LEFT, EC_WORD_YOU, EC_WORD_JUST, EC_WORD_AN, EC_MOVE2(EMBER)}, + .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_WATER, EC_WORD_PLEASE}, + .monSets = gBattleFrontierTrainerMons_Nash + }, + [90] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, + .trainerName = _("ROBBY"), + .speechBefore = {EC_WORD_HAHAHA, EC_WORD_EXCL, EC_WORD_HAPPY, EC_WORD_TO, EC_WORD_MEET_YOU, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_LEADER, EC_WORD_WITH, EC_WORD_REFRESHING, EC_WORD_SERENE_GRACE}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(THRASH), EC_WORD_MY, EC_WORD_TOYS, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Robby + }, + [91] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, + .trainerName = _("REECE"), + .speechBefore = {EC_WORD_MY, EC_MOVE2(QUICK_ATTACK), EC_WORD_CAN, EC_WORD_BEAT, EC_WORD_A, EC_MOVE2(TELEPORT)}, + .speechWin = {EC_WORD_LIKE, EC_WORD_I, EC_WORD_SAID, EC_WORD_I_AM, EC_WORD_DARN, EC_WORD_FAST}, + .speechLose = {EC_WORD_I_WAS, EC_WORD_KIDDING, EC_WORD_ABOUT, EC_WORD_THAT, EC_MOVE2(TELEPORT), EC_WORD_THING}, + .monSets = gBattleFrontierTrainerMons_Reece + }, + [92] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, + .trainerName = _("KATHRYN"), + .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_TRAIN, EC_WORD_GOOD, EC_WORD_ENOUGH, EC_WORD_QUES}, + .speechWin = {EC_WORD_DON_T, EC_MOVE2(TAUNT), EC_WORD_ME, EC_WORD_LIKE, EC_WORD_THAT, EC_WORD_OK_QUES}, + .speechLose = {EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_WIN, EC_WORD_THIS, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Kathryn + }, + [93] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, + .trainerName = _("ELLEN"), + .speechBefore = {EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_AN, EC_WORD_EGG, EC_WORD_EXCL}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_VICTORY, EC_WORD_FOR, EC_WORD_ME}, + .speechLose = {EC_WORD_TOO, EC_WORD_TOUGH, EC_WORD_TO, EC_WORD_CRUSH, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Ellen + }, + [94] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + .trainerName = _("RAMON"), + .speechBefore = {EC_WORD_OKAY, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PERFECTION}, + .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_THAT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, + .speechLose = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_SECRET, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_HAPPY}, + .monSets = gBattleFrontierTrainerMons_Ramon + }, + [95] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + .trainerName = _("ARTHUR"), + .speechBefore = {EC_WORD_HERE_I_COME, EC_WORD_FEELING, EC_WORD_READY, EC_WORD_FOR, EC_WORD_IT, EC_WORD_ALL}, + .speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THAT_WAS, EC_WORD_FABULOUS, EC_WORD_EXCL}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Arthur + }, + [96] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + .trainerName = _("ALONDRA"), + .speechBefore = {EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_IS, EC_WORD_A, EC_WORD_GREAT, EC_WORD_DAY}, + .speechWin = {EC_WORD_MY, EC_MOVE2(DIVE), EC_WORD_WILL, EC_WORD_BE, EC_WORD_A, EC_WORD_LEGEND}, + .speechLose = {EC_WORD_MY, EC_MOVE2(DIVE), EC_WORD_LEFT, EC_WORD_ME, EC_WORD_COLD, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Alondra + }, + [97] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + .trainerName = _("ADRIANA"), + .speechBefore = {EC_WORD_COME, EC_WORD_SEE, EC_WORD_AN, EC_WORD_INCREDIBLE, EC_WORD_SWIFT_SWIM, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I, EC_WORD_MAKE, EC_WORD_IT, EC_WORD_LOOK, EC_WORD_SO, EC_WORD_EASY}, + .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_TIRED, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Adriana + }, + [98] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, + .trainerName = _("MALIK"), + .speechBefore = {EC_WORD_OH, EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_PLEASE, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_WON, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_TIRED}, + .speechLose = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_LOST, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_TIRED}, + .monSets = gBattleFrontierTrainerMons_Malik + }, + [99] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, + .trainerName = _("JILL"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_WINS, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_GIVES, EC_WORD_UP, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Jill + }, + [100] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, + .trainerName = _("ERIK"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_FROM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL}, + .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, + .monSets = gBattleFrontierTrainerMons_Erik + }, + [101] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, + .trainerName = _("YAZMIN"), + .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_RATHER, EC_WORD_RUN, EC_WORD_THAN, EC_WORD_BIKE}, + .speechWin = {EC_WORD_YES, EC_WORD_I, EC_WORD_WOULD, EC_WORD_MUCH, EC_WORD_RATHER, EC_WORD_RUN}, + .speechLose = {EC_WORD_BYE_BYE, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN_AWAY}, + .monSets = gBattleFrontierTrainerMons_Yazmin + }, + [102] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + .trainerName = _("JAMAL"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_FATHER}, + .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_FOR, EC_WORD_MY, EC_WORD_BABY}, + .speechLose = {EC_WORD_MY, EC_WORD_BABY, EC_WORD_WILL, EC_WORD_BE, EC_WORD_TOTALLY, EC_WORD_AWESOME}, + .monSets = gBattleFrontierTrainerMons_Jamal + }, + [103] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + .trainerName = _("LESLIE"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_MOTHER}, + .speechWin = {EC_WORD_A, EC_WORD_BABY, EC_WORD_WILL, EC_WORD_BE, EC_WORD_A_LITTLE, EC_WORD_CHALLENGE}, + .speechLose = {EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_HAPPY, EC_WORD_TO, EC_WORD_BE, EC_WORD_ANGRY}, + .monSets = gBattleFrontierTrainerMons_Leslie + }, + [104] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, + .trainerName = _("DAVE"), + .speechBefore = {EC_WORD_WHAT, EC_WORD_SHOULD, EC_WORD_I, EC_WORD_DO, EC_WORD_TODAY, EC_WORD_QUES}, + .speechWin = {EC_WORD_I, EC_WORD_SHOULD, EC_WORD_ENJOY, EC_WORD_SOME, EC_WORD_SPORTS, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_WORD_PLAY, EC_WORD_A, EC_WORD_GAME}, + .monSets = gBattleFrontierTrainerMons_Dave + }, + [105] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, + .trainerName = _("CARLO"), + .speechBefore = {EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Carlo + }, + [106] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, + .trainerName = _("EMILIA"), + .speechBefore = {EC_WORD_ME, EC_WORD_WORRY, EC_WORD_QUES, EC_WORD_I, EC_WORD_HAVE, EC_WORD_NONE}, + .speechWin = {EC_WORD_AHAHA, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THAT_WAS, EC_WORD_FANTASTIC, EC_WORD_EXCL}, + .speechLose = {EC_WORD_AHAHA, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THAT_WAS, EC_WORD_ENTERTAINING, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Emilia + }, + [107] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, + .trainerName = _("DALIA"), + .speechBefore = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_VERY, EC_WORD_EXPENSIVE, 0xFFFF}, + .speechWin = {EC_WORD_DON_T, EC_WORD_COME, EC_WORD_NEAR, EC_WORD_MY, EC_WORD_BIKE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_MY, EC_WORD_BEST, EC_WORD_FRIEND}, + .monSets = gBattleFrontierTrainerMons_Dalia + }, + [108] = { + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .trainerName = _("HITOMI"), + .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL}, + .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL_EXCL}, + .monSets = gBattleFrontierTrainerMons_Hitomi + }, + [109] = { + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .trainerName = _("RICARDO"), + .speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_PLAY, EC_WORD_TIME, EC_WORD_IS, EC_WORD_OVER}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HERE, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_HIT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Ricardo + }, + [110] = { + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .trainerName = _("SHIZUKA"), + .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGET, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_PERFECT, EC_WORD_IN, EC_WORD_EVERY, EC_WORD_WAY, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Shizuka + }, + [111] = { + .facilityClass = FACILITY_CLASS_BATTLE_GIRL, + .trainerName = _("JOANA"), + .speechBefore = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_RIGHT, EC_WORD_AWAY}, + .speechWin = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_WINNER, EC_WORD_HEAR, EC_WORD_ME, EC_MOVE2(ROAR)}, + .speechLose = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_ACCEPT, EC_WORD_THAT, EC_MOVE(OUTRAGE)}, + .monSets = gBattleFrontierTrainerMons_Joana + }, + [112] = { + .facilityClass = FACILITY_CLASS_BATTLE_GIRL, + .trainerName = _("KELLY"), + .speechBefore = {EC_WORD_MY, EC_WORD_NIGHT, EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_SCARY}, + .speechWin = {EC_WORD_A, EC_WORD_LADY, EC_WORD_GHOST, EC_WORD_APPEARS, EC_WORD_THERE, 0xFFFF}, + .speechLose = {EC_WORD_THE, EC_WORD_HOME, EC_WORD_WORK, EC_WORD_IS, EC_WORD_AWFULLY, EC_WORD_SCARY}, + .monSets = gBattleFrontierTrainerMons_Kelly + }, + [113] = { + .facilityClass = FACILITY_CLASS_BATTLE_GIRL, + .trainerName = _("RAYNA"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_WHEN, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_POWER}, + .speechWin = {EC_WORD_UNDERSTAND, EC_WORD_MY, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Rayna + }, + [114] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("EVAN"), + .speechBefore = {EC_WORD_EVERY, EC_WORD_BATTLE, EC_WORD_HAS, EC_WORD_A, EC_WORD_SMELL, 0xFFFF}, + .speechWin = {EC_WORD_OH, EC_WORD_EXCL, EC_WORD_THE, EC_MOVE(SWEET_SCENT), EC_WORD_OF, EC_WORD_VICTORY}, + .speechLose = {EC_WORD_THE, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_OF, EC_WORD_A, EC_WORD_LOSS}, + .monSets = gBattleFrontierTrainerMons_Evan + }, + [115] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("JORDAN"), + .speechBefore = {EC_WORD_GOOD, EC_WORD_EXCL, 0xFFFF, EC_WORD_COME_ON, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Jordan + }, + [116] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("JOEL"), + .speechBefore = {EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Joel + }, + [117] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("KRISTEN"), + .speechBefore = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_A, EC_WORD_KID, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_JUST, EC_WORD_A_LITTLE, EC_WORD_KID, EC_WORD_AFTER, EC_WORD_ALL, EC_WORD_EXCL}, + .speechLose = {EC_WORD_A, EC_WORD_TOUGH, EC_WORD_KID, EC_WORD_HUH_QUES, EC_WORD_HUMPH, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Kristen + }, + [118] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("SELPHY"), + .speechBefore = {EC_WORD_HUH_QUES, EC_WORD_WHAT, EC_WORD_IS_IT_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_OH, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES}, + .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Selphy + }, + [119] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("CHLOE"), + .speechBefore = {EC_WORD_COME, EC_WORD_WE, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BATTLE, EC_WORD_NOW}, + .speechWin = {EC_WORD_MORE, EC_WORD_EXCL, 0xFFFF, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_STRONG, EC_WORD_YOU, EC_WORD_ARE}, + .monSets = gBattleFrontierTrainerMons_Chloe + }, + [120] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_M, + .trainerName = _("NORTON"), + .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_ONLY, EC_WORD_YOU, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_EXCUSE_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_PUSHOVER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Norton + }, + [121] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_M, + .trainerName = _("LUKAS"), + .speechBefore = {EC_WORD_MY, EC_WORD_JOKING, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_EXISTS, EC_WORD_TO, EC_WORD_SHINE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_COME, EC_WORD_TO, EC_WORD_SHINE, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Lukas + }, + [122] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_M, + .trainerName = _("ZACH"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_EXCELLENT, EC_MOVE2(MIMIC), EC_WORD_OF, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_LIKE, EC_WORD_A_LITTLE, EC_POKEMON2(TOGEPI), EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_LIKE, EC_WORD_A, EC_POKEMON2(MANKEY), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Zach + }, + [123] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_F, + .trainerName = _("KAITLYN"), + .speechBefore = {EC_WORD_I, EC_WORD_CRUSH, EC_WORD_THINGS, EC_WORD_WITH, EC_WORD_PSYCHIC, EC_WORD_POWER}, + .speechWin = {EC_WORD_MY, EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_THE, EC_WORD_NEWS}, + .speechLose = {EC_WORD_NO, EC_WORD_NO, EC_WORD_ELLIPSIS, EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_DO}, + .monSets = gBattleFrontierTrainerMons_Kaitlyn + }, + [124] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_F, + .trainerName = _("BREANNA"), + .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_WILL, EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_EXCL}, + .speechWin = {EC_WORD_HAVE, EC_WORD_SOME, EC_WORD_MORE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS, EC_WORD_AND, EC_WORD_SKILL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Breanna + }, + [125] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_F, + .trainerName = _("KENDRA"), + .speechBefore = {EC_WORD_IF, EC_WORD_YOU_RE, EC_WORD_SMART, EC_WORD_STOP, EC_WORD_RIGHT, EC_WORD_NOW}, + .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_STOP}, + .speechLose = {EC_WORD_WHY, EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Kendra + }, + [126] = { + .facilityClass = FACILITY_CLASS_HEX_MANIAC, + .trainerName = _("MOLLY"), + .speechBefore = {EC_WORD_WILL, EC_WORD_MY, EC_WORD_CUTE_CHARM, EC_MOVE2(ATTRACT), EC_WORD_YOU, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_MY, EC_WORD_TOYS, EC_WORD_NOW}, + .speechLose = {EC_WORD_OH, EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Molly + }, + [127] = { + .facilityClass = FACILITY_CLASS_HEX_MANIAC, + .trainerName = _("JAZMIN"), + .speechBefore = {EC_WORD_I, EC_WORD_FORECAST, EC_WORD_TERRIBLE, EC_WORD_THINGS, EC_WORD_FOR, EC_WORD_YOU}, + .speechWin = {EC_WORD_THERE, EC_WORD_WASN_T, EC_WORD_MY, EC_WORD_FORECAST, EC_WORD_RIGHT, EC_WORD_QUES}, + .speechLose = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_DIDN_T, EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THIS}, + .monSets = gBattleFrontierTrainerMons_Jazmin + }, + [128] = { + .facilityClass = FACILITY_CLASS_HEX_MANIAC, + .trainerName = _("KELSEY"), + .speechBefore = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_SLEPT, EC_WORD_IN, EC_WORD_DAYS, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_MY, EC_WORD_SLEEP, EC_WORD_WILL, EC_WORD_BE, EC_WORD_EXCELLENT, EC_WORD_NOW}, + .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_SLEEP, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Kelsey + }, + [129] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("JALEN"), + .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_ALLOW, EC_WORD_POKEMON, EC_WORD_TO, EC_MOVE(THRASH)}, + .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_ANGRY, EC_WORD_QUES}, + .speechLose = {EC_WORD_WHY, EC_WORD_IS, EC_WORD_THIS, EC_WORD_SO, EC_WORD_HARD, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Jalen + }, + [130] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("GRIFFEN"), + .speechBefore = {EC_WORD_I, EC_MOVE2(SWALLOW), EC_MOVE2(SLUDGE), EC_WORD_TO, EC_MOVE2(TRANSFORM), EC_WORD_MYSELF}, + .speechWin = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GROWTH), EC_WORD_OF, EC_MOVE2(ACID_ARMOR)}, + .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GROWTH), EC_WORD_OF, EC_WORD_SUCTION_CUPS}, + .monSets = gBattleFrontierTrainerMons_Griffen + }, + [131] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("XANDER"), + .speechBefore = {EC_WORD_I, EC_WORD_GOT, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ON, EC_WORD_RENTAL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_INCREDIBLE, EC_WORD_MY, EC_WORD_RENTAL, EC_WORD_POKEMON, EC_WORD_WON}, + .speechLose = {EC_WORD_RENTAL, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_UP, EC_WORD_TO, EC_MOVE2(SCRATCH)}, + .monSets = gBattleFrontierTrainerMons_Xander + }, + [132] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("MARVIN"), + .speechBefore = {EC_WORD_YOU_RE, EC_WORD_UP, EC_WORD_TO, EC_WORD_THE, EC_WORD_CHALLENGE, EC_WORD_QUES}, + .speechWin = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_THINK, EC_WORD_YOU_RE, EC_WORD_GOOD, EC_WORD_ENOUGH}, + .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_PERFECT, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, + .monSets = gBattleFrontierTrainerMons_Marvin + }, + [133] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("BRENNAN"), + .speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_TO, EC_WORD_SEE, EC_WORD_THE, EC_WORD_NEWS}, + .speechWin = {EC_WORD_COMICS, EC_WORD_GET, EC_WORD_DAMP, EC_WORD_FROM, EC_WORD_DRIZZLE, EC_WORD_QUES}, + .speechLose = {EC_WORD_THE, EC_WORD_TIGHT, EC_WORD_MONEY, EC_WORD_LIVING, EC_WORD_CHANNEL, EC_WORD_QUES_EXCL}, + .monSets = gBattleFrontierTrainerMons_Brennan + }, + [134] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("BALEY"), + .speechBefore = {EC_MOVE(SCREECH), EC_WORD_IS, EC_WORD_LIKE, EC_WORD_MUSIC, EC_WORD_TO_ME, EC_WORD_EXCL}, + .speechWin = {EC_WORD_MY, EC_MOVE(SCREECH), EC_WORD_STRATEGY, EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_SOUNDPROOF, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Baley + }, + [135] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("ZACKARY"), + .speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_MOVE(DIG), EC_WORD_IT, EC_WORD_YO, EC_WORD_QUES}, + .speechWin = {EC_MOVE2(TAKE_DOWN), EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(DIVE), EC_WORD_YO, EC_WORD_YO}, + .speechLose = {EC_WORD_BREAK, EC_WORD_DOWN, EC_MOVE2(DIVE), EC_WORD_TIME, EC_WORD_FOR, EC_WORD_ME}, + .monSets = gBattleFrontierTrainerMons_Zackary + }, + [136] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("GABRIEL"), + .speechBefore = {EC_MOVE2(POUND), EC_WORD_THE, EC_WORD_THICK_FAT, EC_WORD_ON, EC_WORD_MY, EC_MOVE2(BELLY_DRUM)}, + .speechWin = {EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM)}, + .speechLose = {EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_WORD_WAS, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Gabriel + }, + [137] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("EMILY"), + .speechBefore = {EC_WORD_HOW, EC_WORD_ABOUT, EC_WORD_A_TINY_BIT, EC_WORD_OF, EC_MOVE(HYPNOSIS), EC_WORD_QUES}, + .speechWin = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_STRATEGY, EC_WORD_WORKS, EC_WORD_TO, EC_WORD_PERFECTION}, + .speechLose = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_STRATEGY, EC_WORD_WENT, EC_WORD_BADLY, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Emily + }, + [138] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("JORDYN"), + .speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_MY, EC_WORD_SECRET, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_AS, EC_WORD_I, EC_WORD_APPEAR, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_BUT, EC_WORD_HOW, EC_WORD_DID, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Jordyn + }, + [139] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("SOFIA"), + .speechBefore = {EC_POKEMON(LOUDRED), EC_WORD_PROBABLY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), 0xFFFF}, + .speechWin = {EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_FEELING, EC_WORD_THAT, EC_WORD_I, EC_WORD_GET}, + .speechLose = {EC_WORD_I, EC_WORD_WORK, EC_WORD_AT, EC_WORD_THE, EC_WORD_DEPT_STORE, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Sofia + }, + [140] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("BRADEN"), + .speechBefore = {EC_WORD_I_CHOOSE_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_PRETTY, EC_WORD_AWESOME, EC_WORD_ABOUT, EC_WORD_MYSELF}, + .speechLose = {EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Braden + }, + [141] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("KAYDEN"), + .speechBefore = {EC_WORD_THEY, EC_WORD_OVERDO, EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ISN_T, EC_WORD_FOR, EC_WORD_ME}, + .speechLose = {EC_WORD_HEY, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TASTY, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Kayden + }, + [142] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("COOPER"), + .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_ABSOLUTELY, EC_WORD_BE, EC_WORD_A, EC_WORD_PUSHOVER}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_TOO, EC_WORD_EXCITING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_EXCL, 0xFFFF, EC_WORD_SORRY, EC_WORD_I_AM, EC_WORD_SORRY}, + .monSets = gBattleFrontierTrainerMons_Cooper + }, + [143] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("JULIA"), + .speechBefore = {EC_WORD_SPIRIT, EC_WORD_ALONE, EC_WORD_WON_T, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_WIN}, + .speechWin = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_ACCEPT, EC_WORD_THIS, EC_WORD_WITH, EC_WORD_SERENE_GRACE}, + .speechLose = {EC_WORD_FOR_NOW, EC_WORD_GOOD_BYE, EC_WORD_BUT, EC_WORD_IT_S, EC_WORD_NOT, EC_WORD_OVER}, + .monSets = gBattleFrontierTrainerMons_Julia + }, + [144] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("AMARA"), + .speechBefore = {EC_WORD_WROOOAAR_EXCL, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_READY, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_WORD_I, EC_WORD_LOSE, EC_WORD_MYSELF, EC_WORD_IF, EC_WORD_IT_S, EC_WORD_EXCITING}, + .speechLose = {EC_WORD_THAT_S, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_MOVE2(TACKLE), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Amara + }, + [145] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("LYNN"), + .speechBefore = {EC_WORD_YOUR, EC_WORD_SECRET, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_HIDDEN, EC_WORD_FOREVER}, + .speechWin = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_YOUR, EC_WORD_SECRET, EC_WORD_NOW, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_MOVE(SAFEGUARD), EC_WORD_YOUR, EC_WORD_OWN, EC_WORD_SECRET}, + .monSets = gBattleFrontierTrainerMons_Lynn + }, + [146] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, + .trainerName = _("JOVAN"), + .speechBefore = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_SADLY, EC_WORD_LACKING}, + .speechWin = {EC_WORD_MY, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_COOL, EC_WORD_ISN_T_IT_QUES}, + .speechLose = {EC_WORD_I_WAS, EC_WORD_MINUS, EC_WORD_MY, EC_WORD_NORMAL, EC_WORD_POWER, EC_WORD_TODAY}, + .monSets = gBattleFrontierTrainerMons_Jovan + }, + [147] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, + .trainerName = _("DOMINIC"), + .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_THIS, EC_WORD_EXCELLENT, EC_WORD_CAMERA, 0xFFFF}, + .speechWin = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_WAS, EC_WORD_AWFULLY, EC_WORD_EXPENSIVE, 0xFFFF}, + .speechLose = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_DOESN_T, EC_WORD_MISS, EC_WORD_A, EC_WORD_THING}, + .monSets = gBattleFrontierTrainerMons_Dominic + }, + [148] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, + .trainerName = _("NIKOLAS"), + .speechBefore = {EC_WORD_I, EC_MOVE2(MIMIC), EC_WORD_POKEMON, EC_WORD_AFTER, EC_WORD_EVERY, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_IF_I_WIN, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(TAUROS)}, + .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(MILTANK)}, + .monSets = gBattleFrontierTrainerMons_Nikolas + }, + [149] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, + .trainerName = _("VALERIA"), + .speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_YOU, EC_WORD_WOULD, EC_WORD_NOT, EC_MOVE2(GLARE)}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_EXCL, EC_WORD_I, EC_WORD_MEAN, EC_WORD_REALLY}, + .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_A, EC_WORD_REALLY, EC_MOVE(SCARY_FACE), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Valeria + }, + [150] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, + .trainerName = _("DELANEY"), + .speechBefore = {EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_OVER, EC_WORD_TIME, EC_WORD_TO, EC_WORD_PLAY}, + .speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_IS, EC_WORD_FROM, EC_WORD_SCHOOL}, + .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_WORK, EC_WORD_NEXT, EC_WORD_WEEK}, + .monSets = gBattleFrontierTrainerMons_Delaney + }, + [151] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, + .trainerName = _("MEGHAN"), + .speechBefore = {EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_OUT, EC_WORD_TIME, EC_WORD_TO, EC_WORD_PLAY}, + .speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_LIKES, EC_WORD_COMICS, 0xFFFF}, + .speechLose = {EC_WORD_IT_S, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_SOON, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Meghan + }, + [152] = { + .facilityClass = FACILITY_CLASS_DRAGON_TAMER, + .trainerName = _("ROBERTO"), + .speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_INVINCIBLE, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BAD, EC_WORD_I_WAS, EC_WORD_JUST, EC_WORD_BETTER}, + .speechLose = {EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_SATISFIED, EC_WORD_YET, EC_WORD_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Roberto + }, + [153] = { + .facilityClass = FACILITY_CLASS_DRAGON_TAMER, + .trainerName = _("DAMIAN"), + .speechBefore = {EC_WORD_MY, EC_WORD_PURE_POWER, EC_WORD_IS, EC_WORD_MACHINE, EC_WORD_LIKE, EC_WORD_EXCL}, + .speechWin = {EC_WORD_MY, EC_MOVE2(MACH_PUNCH), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_A, EC_MOVE(BRICK_BREAK)}, + .speechLose = {EC_WORD_ARRGH, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_EXCL_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Damian + }, + [154] = { + .facilityClass = FACILITY_CLASS_DRAGON_TAMER, + .trainerName = _("BRODY"), + .speechBefore = {EC_WORD_MY, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_SEEMS, EC_POKEMON(ODDISH), EC_WORD_QUES}, + .speechWin = {EC_WORD_IT_S, EC_WORD_MY, EC_WORD_FAMILY, EC_WORD_STAY_AT_HOME, EC_WORD_LOOK, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_QUESTION, EC_WORD_YOUR, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_SERIOUSLY}, + .monSets = gBattleFrontierTrainerMons_Brody + }, + [155] = { + .facilityClass = FACILITY_CLASS_DRAGON_TAMER, + .trainerName = _("GRAHAM"), + .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_MY, EC_WORD_BAD}, + .monSets = gBattleFrontierTrainerMons_Graham + }, + [156] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("TYLOR"), + .speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_FEELING, EC_WORD_MY, EC_MOVE2(HEAT_WAVE), EC_WORD_QUES}, + .speechWin = {EC_WORD_YES, EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_BUT, EC_WORD_I_WAS, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_FOR, EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Tylor + }, + [157] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("JAREN"), + .speechBefore = {EC_WORD_FIGHTING, EC_WORD_SPIRIT, EC_WORD_QUES, EC_WORD_ME, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MORE, EC_WORD_CUTE, EC_WORD_POKEMON, 0xFFFF}, + .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_LOOK, EC_WORD_QUITE, EC_WORD_CUTE, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Jaren + }, + [158] = { + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, + .trainerName = _("CORDELL"), + .speechBefore = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_DECIDED, EC_WORD_ON, EC_WORD_SPIRIT}, + .speechWin = {EC_WORD_CAN_T, EC_WORD_YOU, EC_WORD_ACCEPT, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_ON, EC_WORD_MY, EC_WORD_WAY}, + .monSets = gBattleFrontierTrainerMons_Cordell + }, + [159] = { + .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .trainerName = _("JAZLYN"), + .speechBefore = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_QUES}, + .speechWin = {EC_WORD_OH_YEAH, EC_WORD_WOW, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_SUPER}, + .speechLose = {EC_WORD_AN, EC_WORD_AVANT_GARDE, EC_WORD_POKEDEX, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_AWESOME}, + .monSets = gBattleFrontierTrainerMons_Jazlyn + }, + [160] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("ZACHERY"), + .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_MY, EC_WORD_OWN, EC_WORD_PLACE, EC_WORD_YEEHAW_EXCL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_ME}, + .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_FLATTEN, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Zachery + }, + [161] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("JOHAN"), + .speechBefore = {EC_WORD_WINTER, EC_WORD_WILL, EC_WORD_SOON, EC_WORD_BE, EC_WORD_HERE, 0xFFFF}, + .speechWin = {EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_COULD, EC_WORD_USE, EC_WORD_A, EC_MOVE2(HELPING_HAND)}, + .speechLose = {EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_USE, EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_UP}, + .monSets = gBattleFrontierTrainerMons_Johan + }, + [162] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("SHEA"), + .speechBefore = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_BATTLE, EC_WORD_WITH, EC_WORD_BEAUTY, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOU, EC_WORD_BATTLE, EC_WORD_IN, EC_WORD_AN, EC_WORD_UGLY, EC_WORD_WAY}, + .speechLose = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_BEAUTY, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Shea + }, + [163] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("KAILA"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_THIRSTY, EC_WORD_RIGHT, EC_WORD_NOW, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_I, EC_WORD_COULD, EC_WORD_USE, EC_WORD_A, EC_WORD_COLD, EC_WORD_DRINK}, + .speechLose = {EC_WORD_THAT, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_MOVE2(SWALLOW)}, + .monSets = gBattleFrontierTrainerMons_Kaila + }, + [164] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, + .trainerName = _("ISIAH"), + .speechBefore = {EC_WORD_I, EC_WORD_PRETEND, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_A_LOT, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_MOVE2(TRICK), EC_WORD_MOTHER, EC_WORD_FOR, EC_WORD_MY, EC_WORD_ALLOWANCE}, + .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_WANT, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE}, + .monSets = gBattleFrontierTrainerMons_Isiah + }, + [165] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, + .trainerName = _("GARRETT"), + .speechBefore = {EC_WORD_I, EC_WORD_ENJOY, EC_WORD_COMICS, EC_WORD_AND, EC_WORD_THIS, EC_WORD_GAME}, + .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_MUSIC, EC_WORD_IDOL, EC_WORD_TOO}, + .speechLose = {EC_WORD_BUT, EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE}, + .monSets = gBattleFrontierTrainerMons_Garrett + }, + [166] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("HAYLIE"), + .speechBefore = {EC_WORD_I, EC_WORD_WORRY, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_SLEEP}, + .speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_GIVES, EC_WORD_ME, EC_WORD_A, EC_MOVE2(CALM_MIND)}, + .speechLose = {EC_WORD_MY, EC_WORD_INSOMNIA, EC_WORD_WILL, EC_WORD_GET, EC_WORD_BAD, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Haylie + }, + [167] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("MEGAN"), + .speechBefore = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_AN, EC_MOVE(AROMATHERAPY), EC_WORD_BATH}, + .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_HEALTHY, EC_WORD_CLEAR_BODY, 0xFFFF}, + .speechLose = {EC_WORD_IF, EC_WORD_ONLY, EC_MOVE(AROMATHERAPY), EC_WORD_WERE, EC_WORD_LESS, EC_WORD_EXPENSIVE}, + .monSets = gBattleFrontierTrainerMons_Megan + }, + [168] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("ISSAC"), + .speechBefore = {EC_WORD_MY, EC_WORD_HOBBY, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(WATER_SPORT)}, + .speechLose = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(MUD_SPORT)}, + .monSets = gBattleFrontierTrainerMons_Issac + }, + [169] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("QUINTON"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_SAD, EC_WORD_CAUSE, EC_WORD_I_AM, EC_WORD_TOO_WEAK, 0xFFFF}, + .speechWin = {EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF}, + .speechLose = {EC_WORD_HEY, EC_WORD_WHAT, EC_WORD_DID, EC_WORD_I, EC_WORD_DO, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Quinton + }, + [170] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("SALMA"), + .speechBefore = {EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_YOUR, EC_WORD_HUSTLE, EC_WORD_ON, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I, EC_WORD_WIN, EC_WORD_YOU, EC_WORD_HUSTLE, EC_WORD_ON, EC_WORD_OUT}, + .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_HOW, EC_WORD_I, EC_WORD_LOST}, + .monSets = gBattleFrontierTrainerMons_Salma + }, + [171] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("ANSLEY"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_ELLIPSIS, EC_WORD_DANCE, EC_WORD_FOR, EC_WORD_ME}, + .speechWin = {EC_WORD_YOU_VE, EC_WORD_BORED, EC_WORD_ME, EC_WORD_SOME, EC_WORD_MORE, 0xFFFF}, + .speechLose = {EC_WORD_TAKE, EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SOME, EC_WORD_OTHER, EC_WORD_PLACE}, + .monSets = gBattleFrontierTrainerMons_Ansley + }, + [172] = { + .facilityClass = FACILITY_CLASS_BUG_CATCHER, + .trainerName = _("HOLDEN"), + .speechBefore = {EC_WORD_LET_S, EC_WORD_COMMEMORATE, EC_WORD_MY, EC_WORD_COOLNESS, EC_WORD_IN, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_PRAISE, 0xFFFF}, + .speechLose = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_AMUSING, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Holden + }, + [173] = { + .facilityClass = FACILITY_CLASS_BUG_CATCHER, + .trainerName = _("LUCA"), + .speechBefore = {EC_WORD_WE, EC_WORD_WILL, EC_WORD_HAVE, EC_WORD_A, EC_WORD_COOL, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_IN, EC_WORD_A, EC_WORD_COOL, EC_WORD_WAY}, + .speechLose = {EC_WORD_HELLO, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_A, EC_WORD_KID}, + .monSets = gBattleFrontierTrainerMons_Luca + }, + [174] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("JAMISON"), + .speechBefore = {EC_WORD_MY, EC_MOVE2(SECRET_POWER), EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_TO, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_USE, EC_MOVE(SMOKESCREEN), EC_WORD_TO, EC_WORD_ESCAPE}, + .monSets = gBattleFrontierTrainerMons_Jamison + }, + [175] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("GUNNAR"), + .speechBefore = {EC_WORD_I, EC_MOVE(CUT), EC_WORD_DOWN, EC_WORD_EVERY, EC_WORD_OPPONENT, 0xFFFF}, + .speechWin = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_LOSE, EC_WORD_THAT, EC_MOVE(SCARY_FACE), EC_WORD_OF, EC_WORD_YOURS}, + .monSets = gBattleFrontierTrainerMons_Gunnar + }, + [176] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("CRAIG"), + .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_FOR, EC_WORD_MY, EC_WORD_TRAIN}, + .speechWin = {EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_ISN_T, EC_WORD_HERE, EC_WORD_YET, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_HERE_IT_IS, EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_SEE_YA, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Craig + }, + [177] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("PIERCE"), + .speechBefore = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_A, EC_MOVE2(HEAT_WAVE), EC_WORD_LAST, EC_WORD_WEEK}, + .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(HEAT_WAVE), 0xFFFF}, + .speechLose = {EC_WORD_DIDN_T, EC_WORD_IT, EC_MOVE(HAIL), EC_WORD_TOO, EC_WORD_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Pierce + }, + [178] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("REGINA"), + .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PLAY, EC_WORD_IN, EC_WORD_WATER}, + .speechWin = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_COME, EC_WORD_OUT, 0xFFFF}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_MUCH, EC_WORD_GOOD, EC_WORD_IN, EC_WORD_WATER}, + .monSets = gBattleFrontierTrainerMons_Regina + }, + [179] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("ALISON"), + .speechBefore = {EC_WORD_THIS, EC_WORD_KINDERGARTEN, EC_WORD_MAGAZINE, EC_WORD_IS, EC_WORD_TOO, EC_WORD_MUCH}, + .speechWin = {EC_WORD_HOW, EC_WORD_TO, EC_WORD_BUG, EC_WORD_YOUR, EC_WORD_TEACHER, EC_WORD_QUES}, + .speechLose = {EC_WORD_ENJOY, EC_WORD_A, EC_WORD_TASTY, EC_WORD_SCHOOL, EC_WORD_DIET, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Alison + }, + [180] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("HANK"), + .speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_A, EC_WORD_BUG, EC_WORD_EVENT, EC_WORD_SOON}, + .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_BUG, EC_WORD_FASHION, EC_WORD_SHOW, EC_WORD_EXCL}, + .speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Hank + }, + [181] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("EARL"), + .speechBefore = {EC_WORD_THE, EC_WORD_INVINCIBLE, EC_WORD_BUG, EC_WORD_TRAINER, EC_WORD_IS, EC_WORD_HERE}, + .speechWin = {EC_WORD_THE, EC_WORD_INVINCIBLE, EC_WORD_BUG, EC_WORD_TRAINER, EC_WORD_AM, EC_WORD_I}, + .speechLose = {EC_WORD_SEE, EC_WORD_HOW, EC_WORD_FAST, EC_WORD_I, EC_WORD_RUN_AWAY, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Earl + }, + [182] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("RAMIRO"), + .speechBefore = {EC_WORD_I, EC_WORD_WENT, EC_WORD_TO, EC_WORD_A, EC_WORD_FISHING, EC_WORD_SCHOOL}, + .speechWin = {EC_WORD_SERIOUSLY, EC_WORD_I_AM, EC_WORD_IN, EC_WORD_THE, EC_WORD_FISHING, EC_WORD_HALL_OF_FAME}, + .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_BACK, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Ramiro + }, + [183] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("HUNTER"), + .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_TOTALLY, EC_WORD_COOL, EC_MOVE(CROSS_CHOP)}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE(CROSS_CHOP)}, + .speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_A, EC_WORD_MISTAKE, EC_WORD_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Hunter + }, + [184] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("AIDEN"), + .speechBefore = {EC_WORD_MY, EC_WORD_WORK, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_HEALTHY}, + .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_HEALTHY, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_HEALTHY, EC_WORD_THAN, EC_WORD_I_AM, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Aiden + }, + [185] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("XAVIER"), + .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, 0xFFFF, EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, EC_WORD_THAT_WAS, EC_WORD_FUNNY, 0xFFFF}, + .speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, + .monSets = gBattleFrontierTrainerMons_Xavier + }, + [186] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("CLINTON"), + .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_QUES}, + .speechWin = {EC_WORD_YOUR, EC_MOVE2(FURY_SWIPES), EC_WORD_YOUR, EC_MOVE(STRENGTH), EC_WORD_YOUNG, EC_WORD_TRAINER}, + .speechLose = {EC_WORD_TCH, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Clinton + }, + [187] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("JESSE"), + .speechBefore = {EC_WORD_THIS, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_FOR, EC_WORD_MY, EC_WORD_MOTHER}, + .speechWin = {EC_WORD_MOTHER, EC_WORD_WILL, EC_WORD_BE, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_ME}, + .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MY, EC_WORD_MOTHER, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Jesse + }, + [188] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("EDUARDO"), + .speechBefore = {EC_WORD_OUR, EC_WORD_MUSIC, EC_WORD_WILL, EC_WORD_PLAY, EC_WORD_ALL, EC_WORD_NIGHT}, + .speechWin = {EC_WORD_NIGHTTIME, EC_WORD_IS, EC_WORD_WHEN, EC_WORD_I, EC_WORD_PLAY, EC_WORD_BEST}, + .speechLose = {EC_WORD_LET_S, EC_WORD_PARTY, EC_WORD_UNTIL, EC_WORD_THE, EC_MOVE(MORNING_SUN), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Eduardo + }, + [189] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("HAL"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_TRENDY, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_HIP_AND, EC_WORD_HAPPENING, EC_WORD_OH_YEAH, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_ALWAYS, EC_WORD_TRENDY, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH}, + .monSets = gBattleFrontierTrainerMons_Hal + }, + [190] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("GAGE"), + .speechBefore = {EC_WORD_HERE_IT_IS, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_HIDDEN, EC_WORD_MOVE}, + .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_VICTORY, EC_WORD_EXCL}, + .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_JUST, EC_MOVE(FLY), EC_WORD_AWAY, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Gage + }, + [191] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("ARNOLD"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_WEIRD, EC_WORD_FROM, EC_WORD_A, EC_WORD_DREAM}, + .speechWin = {EC_WORD_YOUR, EC_MOVE(SCARY_FACE), EC_WORD_WAS, EC_WORD_IN, EC_WORD_MY, EC_WORD_DREAM}, + .speechLose = {EC_WORD_MY, EC_WORD_INCREDIBLE, EC_WORD_DREAM, EC_WORD_WAS, EC_WORD_SO, EC_WORD_WEIRD}, + .monSets = gBattleFrontierTrainerMons_Arnold + }, + [192] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("JARRETT"), + .speechBefore = {EC_WORD_COME_ON, EC_WORD_LET_S, EC_WORD_DANCE, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_YESTERDAY}, + .speechWin = {EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_HOW, EC_WORD_I, EC_WORD_DANCE, EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_APPRECIATE, EC_WORD_HOW, EC_WORD_I, EC_WORD_DANCE}, + .monSets = gBattleFrontierTrainerMons_Jarrett + }, + [193] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("GARETT"), + .speechBefore = {EC_WORD_MY, EC_WORD_GIRL, EC_WORD_GIVES, EC_WORD_ME, EC_WORD_A_LITTLE, EC_MOVE2(SWEET_KISS)}, + .speechWin = {EC_WORD_MY, EC_WORD_GIRL, EC_WORD_FRIEND, EC_WORD_IS, EC_WORD_MY, EC_WORD_TREASURE}, + .speechLose = {EC_WORD_A, EC_WORD_TREASURE, EC_WORD_ISN_T, EC_WORD_ALWAYS, EC_WORD_ABOUT, EC_WORD_MONEY}, + .monSets = gBattleFrontierTrainerMons_Garett + }, + [194] = { + .facilityClass = FACILITY_CLASS_HIKER, + .trainerName = _("EMANUEL"), + .speechBefore = {EC_WORD_SMARTNESS, EC_WORD_ALONE, EC_WORD_WON_T, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_WIN}, + .speechWin = {EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_SMART, EC_WORD_BUT, EC_WORD_I, EC_WORD_WON}, + .speechLose = {EC_WORD_HOW, EC_WORD_DID, EC_WORD_YOU, EC_MOVE2(FAKE_OUT), EC_WORD_ME, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Emanuel + }, + [195] = { + .facilityClass = FACILITY_CLASS_HIKER, + .trainerName = _("GUSTAVO"), + .speechBefore = {EC_MOVE(CHARGE), EC_WORD_EXCL, 0xFFFF, EC_MOVE(CHARGE), EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_SURRENDER, EC_WORD_QUES, 0xFFFF, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_SURRENDER, EC_WORD_YET}, + .monSets = gBattleFrontierTrainerMons_Gustavo + }, + [196] = { + .facilityClass = FACILITY_CLASS_KINDLER, + .trainerName = _("KAMERON"), + .speechBefore = {EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_MY, EC_WORD_FIERY, EC_MOVE2(TRICK)}, + .speechWin = {EC_WORD_DID, EC_WORD_MY, EC_WORD_FIERY, EC_MOVE2(TRICK), EC_MOVE(ASTONISH), EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU, EC_WORD_DIDN_T, EC_WORD_FALL, EC_WORD_FOR, EC_WORD_MY, EC_MOVE2(TRICK)}, + .monSets = gBattleFrontierTrainerMons_Kameron + }, + [197] = { + .facilityClass = FACILITY_CLASS_KINDLER, + .trainerName = _("ALFREDO"), + .speechBefore = {EC_WORD_A, EC_WORD_FIERY, EC_WORD_GOURMET, EC_WORD_AM, EC_WORD_I, EC_WORD_EXCL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_TASTY, EC_WORD_GOURMET, EC_WORD_VICTORY, EC_WORD_EXCL}, + .speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_DISASTER, EC_WORD_THAT_WAS, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Alfredo + }, + [198] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("RUBEN"), + .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING}, + .speechWin = {EC_WORD_GET, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE}, + .speechLose = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Ruben + }, + [199] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("LAMAR"), + .speechBefore = {EC_WORD_A, EC_MOVE2(PRESENT), EC_WORD_FOR, EC_WORD_ME, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_MMM, EC_WORD_THIS, EC_WORD_IS, EC_WORD_QUITE, EC_WORD_TASTY, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_OH, EC_WORD_IT_S, EC_WORD_A, EC_WORD_GAME, EC_WORD_IS_IT_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Lamar + }, + [200] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("JAXON"), + .speechBefore = {EC_WORD_A, EC_WORD_SHELL_ARMOR, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_I, EC_WORD_WANT}, + .speechWin = {EC_WORD_MY, EC_WORD_FATHER, EC_WORD_AND, EC_WORD_MOTHER, EC_WORD_WON_T, EC_WORD_ACCEPT}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_SHELL_ARMOR, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Jaxon + }, + [201] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("LOGAN"), + .speechBefore = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_WILL, EC_WORD_STUDY, EC_WORD_FOR, EC_WORD_SCHOOL}, + .speechWin = {EC_WORD_ME, EC_WORD_STUDY, EC_WORD_QUES, EC_WORD_NOT_VERY, EC_WORD_LIKELY_TO, EC_WORD_SEE}, + .speechLose = {EC_WORD_NO, EC_WORD_THANKS, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SLEEP}, + .monSets = gBattleFrontierTrainerMons_Logan + }, + [202] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("EMILEE"), + .speechBefore = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_KIND, EC_WORD_OF, EC_WORD_BATTLE, EC_WORD_OK_QUES}, + .speechWin = {EC_WORD_LET_S, EC_WORD_GO, EC_WORD_FOR, EC_WORD_AN, EC_MOVE(ICY_WIND), EC_MOVE2(SURF)}, + .speechLose = {EC_WORD_HOW, EC_WORD_ABOUT, EC_WORD_A, EC_MOVE(ROCK_SLIDE), EC_WORD_SHOW, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Emilee + }, + [203] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("JOSIE"), + .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_FASHION, EC_WORD_CONTEST, EC_WORD_IS, EC_WORD_PRETTY}, + .speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_MODE, EC_WORD_FASHION, EC_WORD_THINGS}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_TOTALLY, EC_WORD_LACKING, EC_WORD_IN, EC_WORD_FASHION, EC_WORD_SENSE}, + .monSets = gBattleFrontierTrainerMons_Josie + }, + [204] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("ARMANDO"), + .speechBefore = {EC_WORD_I, EC_WORD_NEED, EC_WORD_MORE, EC_WORD_GRASS, EC_WORD_TYPE, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_TRADE, EC_WORD_ME, EC_WORD_A, EC_WORD_GRASS, EC_WORD_POKEMON, EC_WORD_PLEASE}, + .speechLose = {EC_WORD_THERE, EC_WORD_AREN_T, EC_WORD_ENOUGH, EC_WORD_GRASS, EC_WORD_TYPE, EC_WORD_POKEMON}, + .monSets = gBattleFrontierTrainerMons_Armando + }, + [205] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("SKYLER"), + .speechBefore = {EC_MOVE2(INGRAIN), EC_WORD_IS, EC_WORD_MY, EC_WORD_CHOICE, EC_WORD_BATTLE, EC_WORD_MOVE}, + .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MOVE, EC_WORD_ME, EC_WORD_NOW, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DOWN, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Skyler + }, + [206] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("RUTH"), + .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_STOP, EC_WORD_I, EC_WORD_DON_T, EC_WORD_ENJOY, EC_WORD_THIS}, + .monSets = gBattleFrontierTrainerMons_Ruth + }, + [207] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("MELODY"), + .speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_SUNDAY, EC_WORD_IS, EC_WORD_A, EC_MOVE2(SUNNY_DAY)}, + .speechWin = {EC_WORD_SUNDAY, EC_WORD_SEEMS, EC_WORD_FOREVER, EC_WORD_TO, EC_WORD_COME, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_THE, EC_WORD_FORECAST, EC_WORD_SAYS, EC_WORD_IT, EC_WORD_WILL, EC_MOVE(HAIL)}, + .monSets = gBattleFrontierTrainerMons_Melody + }, + [208] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("PEDRO"), + .speechBefore = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WILL, EC_WORD_DO, EC_WORD_YOU, EC_WORD_GOOD}, + .speechWin = {EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_I, EC_WORD_SINK, EC_WORD_AN, EC_WORD_OPPONENT}, + .speechLose = {EC_WORD_UH_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Pedro + }, + [209] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("ERICK"), + .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(TACKLE), EC_WORD_YOU, EC_WORD_DOWN, EC_WORD_EXCL}, + .speechWin = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_RUN_AWAY, EC_WORD_YOU, EC_WORD_LOSER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_THINK, EC_WORD_YOU, EC_WORD_WOULD, EC_MOVE(COUNTER)}, + .monSets = gBattleFrontierTrainerMons_Erick + }, + [210] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("ELAINE"), + .speechBefore = {EC_WORD_MY, EC_WORD_HEROINE, EC_WORD_ADVENTURE, EC_WORD_ISN_T, EC_WORD_GOING, EC_WORD_WELL}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED}, + .speechLose = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_HEROINE}, + .monSets = gBattleFrontierTrainerMons_Elaine + }, + [211] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("JOYCE"), + .speechBefore = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GO, EC_WORD_AHAHA, EC_WORD_EXCL}, + .speechWin = {EC_WORD_LALALA, EC_WORD_NO, EC_WORD_LOSING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_EXCL}, + .speechLose = {EC_WORD_LALALA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Joyce + }, + [212] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("TODD"), + .speechBefore = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_LIGHTNINGROD, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POWER}, + .speechWin = {EC_WORD_THAT_S, EC_WORD_ALL, EC_WORD_YOU, EC_WORD_COULD, EC_MOVE(ABSORB), EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU, EC_MOVE2(REFLECT), EC_WORD_MY, EC_WORD_POWER, EC_WORD_BACK, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Todd + }, + [213] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("GAVIN"), + .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(BIDE), EC_WORD_MY, EC_WORD_TIME, 0xFFFF}, + .speechWin = {EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_MY, EC_WORD_MISTAKE, EC_WORD_WAS, EC_WORD_TOO, EC_WORD_EXPENSIVE, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Gavin + }, + [214] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("MALORY"), + .speechBefore = {EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_ME, EC_WORD_CUTE, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, + .speechLose = {EC_WORD_TCH, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_NICE}, + .monSets = gBattleFrontierTrainerMons_Malory + }, + [215] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("ESTHER"), + .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_NICE, EC_MOVE2(PRESENT), EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_PLEASE, EC_WORD_GET, EC_WORD_ME, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_GAME}, + .speechLose = {EC_WORD_MESSAGE, EC_WORD_CARDS, EC_WORD_MAKE, EC_WORD_A, EC_WORD_WEAK, EC_MOVE2(PRESENT)}, + .monSets = gBattleFrontierTrainerMons_Esther + }, + [216] = { + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, + .trainerName = _("OSCAR"), + .speechBefore = {EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_IN, EC_WORD_FULL}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_YOUR, EC_WORD_FULL, EC_WORD_POWER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_NOT, EC_WORD_FUNNY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Oscar + }, + [217] = { + .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, + .trainerName = _("WILSON"), + .speechBefore = {EC_WORD_WORK, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_AN, EC_WORD_EARLY_BIRD}, + .speechWin = {EC_WORD_ALL, EC_WORD_WORK, EC_WORD_AND, EC_WORD_NO, EC_WORD_PLAY, EC_WORD_ELLIPSIS}, + .speechLose = {EC_MOVE(ENDURE), EC_WORD_IS, EC_WORD_ALL, EC_WORD_I, EC_WORD_CAN, EC_WORD_DO}, + .monSets = gBattleFrontierTrainerMons_Wilson + }, + [218] = { + .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .trainerName = _("CLARE"), + .speechBefore = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_TRAINER, EC_WORD_EXCL}, + .speechWin = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_A, EC_WORD_WIMPY, EC_WORD_TRAINER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_TRAINER, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Clare + }, + [219] = { + .facilityClass = FACILITY_CLASS_POKEMON_BREEDER_F, + .trainerName = _("TESS"), + .speechBefore = {EC_WORD_WANT, EC_WORD_SOME, EC_POKEMON(GULPIN), EC_WORD_DESIGN, EC_WORD_SWEETS, EC_WORD_QUES}, + .speechWin = {EC_WORD_THEY_RE, EC_WORD_A, EC_WORD_SECRET, EC_WORD_POKEMON, EC_WORD_GOURMET, EC_WORD_ITEM}, + .speechLose = {EC_WORD_THEY_RE, EC_WORD_TASTY, EC_WORD_EXCL, EC_WORD_REFRESHING, EC_WORD_TOO, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Tess + }, + [220] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("LEON"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_ANY, EC_WORD_OTHER, EC_WORD_TRAINER}, + .speechWin = {EC_WORD_I, EC_WORD_DID, EC_WORD_IT, EC_MOVE2(JUMP_KICK), EC_WORD_FOR, EC_WORD_JOY}, + .speechLose = {EC_WORD_BACK, EC_WORD_HOME, EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Leon + }, + [221] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("ALONZO"), + .speechBefore = {EC_WORD_I_VE, EC_WORD_NOT, EC_WORD_LOST, EC_WORD_ONCE, EC_WORD_YET, EC_WORD_EXCL}, + .speechWin = {EC_WORD_YOUR, EC_WORD_SAD, EC_WORD_LOOK, EC_WORD_BECOMES, EC_WORD_YOU, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Alonzo + }, + [222] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("VINCE"), + .speechBefore = {EC_WORD_THE, EC_WORD_TOP, EC_WORD_TRAINER, EC_WORD_THAT_S, EC_WORD_ME, EC_WORD_EXCL}, + .speechWin = {EC_WORD_THE, EC_WORD_TOP, EC_WORD_RANK, EC_WORD_BELONGS_TO, EC_WORD_ME, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_APPEAL, EC_WORD_THIS, EC_MOVE(OUTRAGE), EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Vince + }, + [223] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("BRYON"), + .speechBefore = {EC_WORD_MY, EC_MOVE2(BARRAGE), EC_WORD_WILL, EC_MOVE2(SLAM), EC_WORD_YOU, EC_WORD_EXCL}, + .speechWin = {EC_WORD_YOU, EC_WORD_DIDN_T, EC_WORD_COUNT_ON, EC_WORD_ANY, EC_WORD_LESS, EC_WORD_QUES}, + .speechLose = {EC_WORD_I, EC_WORD_JUST, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_IT, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Bryon + }, + [224] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("AVA"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_TREASURE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_WORLD}, + .speechWin = {EC_WORD_MY, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_FULL, EC_WORD_OF, EC_WORD_WONDER}, + .speechLose = {EC_WORD_WHY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SO, EC_WORD_TERRIBLE, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Ava + }, + [225] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("MIRIAM"), + .speechBefore = {EC_WORD_OH, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_WITH, EC_WORD_A, EC_MOVE(SCARY_FACE)}, + .speechWin = {EC_WORD_AHAHA, EC_WORD_YOU, EC_WORD_ONLY, EC_WORD_LOOK, EC_WORD_SCARY, EC_WORD_EXCL}, + .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SCARY}, + .monSets = gBattleFrontierTrainerMons_Miriam + }, + [226] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("CARRIE"), + .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_SHOW, EC_WORD_YOU, EC_WORD_GUTSY, EC_WORD_EXCL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_ABOUT, EC_WORD_GUTS, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_ELLIPSIS, EC_MOVE(SELF_DESTRUCT), EC_WORD_MODE, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Carrie + }, + [227] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("GILLIAN"), + .speechBefore = {EC_WORD_I, EC_WORD_SEEK, EC_WORD_A, EC_WORD_TRULY, EC_WORD_GREAT, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_A_LOT, EC_WORD_BETTER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_A_LITTLE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_TAKE}, + .monSets = gBattleFrontierTrainerMons_Gillian2 + }, + [228] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, + .trainerName = _("TYLER"), + .speechBefore = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_LET_S, EC_WORD_GO, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_YO}, + .speechLose = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_YO}, + .monSets = gBattleFrontierTrainerMons_Tyler + }, + [229] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, + .trainerName = _("CHAZ"), + .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_POWER}, + .speechWin = {EC_WORD_THEY, EC_WORD_HAVE, EC_WORD_MORE, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YEAH, EC_MOVE2(TAKE_DOWN), EC_WORD_THEIR, EC_WORD_POWER, EC_WORD_A_TINY_BIT, EC_WORD_PLEASE}, + .monSets = gBattleFrontierTrainerMons_Chaz + }, + [230] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, + .trainerName = _("NELSON"), + .speechBefore = {EC_WORD_WELL_THEN, EC_WORD_WILL, EC_WORD_THIS, EC_WORD_POKEMON, EC_WORD_WORK, EC_WORD_QUES}, + .speechWin = {EC_WORD_I, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_IT, EC_WORD_WAS, EC_WORD_TOO_STRONG}, + .speechLose = {EC_WORD_IT, EC_WORD_DIDN_T, EC_WORD_MATCH_UP, EC_WORD_WELL, EC_WORD_I, EC_WORD_THINK}, + .monSets = gBattleFrontierTrainerMons_Nelson + }, + [231] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, + .trainerName = _("SHANIA"), + .speechBefore = {EC_WORD_ALL, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ABSOLUTELY, EC_WORD_ADORE, EC_WORD_ME}, + .speechWin = {EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_WITH, EC_WORD_CUTE_CHARM}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_SO, EC_WORD_MEAN, EC_WORD_TO, EC_WORD_CUTE, EC_WORD_POKEMON}, + .monSets = gBattleFrontierTrainerMons_Shania + }, + [232] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, + .trainerName = _("STELLA"), + .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOUR, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_WELL, EC_WORD_AREN_T, EC_WORD_THEY, EC_WORD_BORING, EC_WORD_QUES, EC_WORD_AHAHA}, + .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SOMETHING, EC_WORD_ELSE, EC_WORD_ALL_RIGHT}, + .monSets = gBattleFrontierTrainerMons_Stella + }, + [233] = { + .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, + .trainerName = _("DORINE"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AND, EC_WORD_STRONG, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_GOOD, EC_WORD_QUES}, + .speechLose = {EC_WORD_THIS, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_AT, EC_WORD_ALL}, + .monSets = gBattleFrontierTrainerMons_Dorine + }, + [234] = { + .facilityClass = FACILITY_CLASS_DRAGON_TAMER, + .trainerName = _("MADDOX"), + .speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_MY, EC_WORD_NO_1, EC_WORD_CHOICE}, + .speechWin = {EC_WORD_IT_S, EC_WORD_NO, EC_WORD_SECRET, EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_WIN}, + .speechLose = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LOSE, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Maddox + }, + [235] = { + .facilityClass = FACILITY_CLASS_DRAGON_TAMER, + .trainerName = _("DAVIN"), + .speechBefore = {EC_WORD_LET_S, EC_WORD_HEAR, EC_WORD_YOU, EC_MOVE2(ROAR), EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_VICTORY, EC_WORD_EXCL_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Davin + }, + [236] = { + .facilityClass = FACILITY_CLASS_DRAGON_TAMER, + .trainerName = _("TREVON"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_LIVING, EC_WORD_ONLY, EC_WORD_WITH, EC_WORD_DRAGON, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_LIVING, EC_WORD_IS, EC_WORD_PERFECT}, + .speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_LIVING}, + .monSets = gBattleFrontierTrainerMons_Trevon + }, + [237] = { + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .trainerName = _("MATEO"), + .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_OVER, EC_WORD_SOON, EC_WORD_ENOUGH}, + .speechWin = {EC_WORD_WELL, EC_WORD_THAT, EC_WORD_DIDN_T, EC_WORD_TAKE, EC_WORD_VERY, EC_WORD_MUCH}, + .speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_SO, EC_WORD_SOON, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Mateo + }, + [238] = { + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .trainerName = _("BRET"), + .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_ROCK_SOLID, EC_WORD_POKEMON, EC_WORD_THE, EC_WORD_BEST}, + .speechWin = {EC_WORD_TOUGHNESS, EC_WORD_IS, EC_WORD_THE, EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO}, + .speechLose = {EC_WORD_I, EC_WORD_ALSO, EC_WORD_HAVE, EC_WORD_A, EC_WORD_PLUSH_DOLL, EC_WORD_COLLECTION}, + .monSets = gBattleFrontierTrainerMons_Bret + }, + [239] = { + .facilityClass = FACILITY_CLASS_BLACK_BELT, + .trainerName = _("RAUL"), + .speechBefore = {EC_WORD_I, EC_WORD_REJECT, EC_WORD_EVERY, EC_WORD_WEAK, EC_WORD_TRAINER, 0xFFFF}, + .speechWin = {EC_WORD_HUMPH, EC_WORD_EXCL, EC_WORD_ANOTHER, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NOTHING, EC_WORD_WEAK, EC_WORD_ABOUT, EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Raul + }, + [240] = { + .facilityClass = FACILITY_CLASS_BATTLE_GIRL, + .trainerName = _("KAY"), + .speechBefore = {EC_WORD_AND, EC_WORD_YET, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_QUES, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_GOOD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_AT, EC_WORD_LAST, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Kay + }, + [241] = { + .facilityClass = FACILITY_CLASS_BATTLE_GIRL, + .trainerName = _("ELENA"), + .speechBefore = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_THAT_S, EC_WORD_ME, EC_WORD_EXCL}, + .speechWin = {EC_WORD_ISN_T, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_AWESOME, EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Elena + }, + [242] = { + .facilityClass = FACILITY_CLASS_BATTLE_GIRL, + .trainerName = _("ALANA"), + .speechBefore = {EC_WORD_EAT, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK, EC_WORD_YOU, EC_WORD_EXCL}, + .speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_LEARN, 0xFFFF}, + .speechLose = {EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK}, + .monSets = gBattleFrontierTrainerMons_Alana + }, + [243] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("ALEXAS"), + .speechBefore = {EC_WORD_GOOD, EC_WORD_TO, EC_WORD_MEET_YOU, EC_WORD_YOUNG, EC_WORD_TRAINER, EC_WORD_EXCL}, + .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_GIVE, EC_WORD_IT, EC_WORD_UP}, + .speechLose = {EC_WORD_YOU, EC_WORD_ARE, EC_WORD_A, EC_WORD_STRONG, EC_WORD_TRAINER, EC_WORD_KID}, + .monSets = gBattleFrontierTrainerMons_Alexas + }, + [244] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("WESTON"), + .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_PLAY, EC_WORD_DOWN, EC_WORD_ALL_RIGHT, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_TO, EC_WORD_ATTACK}, + .speechLose = {EC_WORD_WELL, EC_WORD_WELL, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Weston + }, + [245] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("JASPER"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OLD, EC_WORD_I_AM, EC_WORD_SKILLED, EC_WORD_EXCL}, + .speechWin = {EC_WORD_SKILLED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_SHOCKED, EC_WORD_EXCL, EC_WORD_DOWN, EC_WORD_I, EC_WORD_GO}, + .monSets = gBattleFrontierTrainerMons_Jasper + }, + [246] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("NADIA"), + .speechBefore = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_DOWN, EC_WORD_EXCL}, + .speechWin = {EC_WORD_HAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU}, + .speechLose = {EC_WORD_I_AM, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_DOWNCAST, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Nadia + }, + [247] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("MIRANDA"), + .speechBefore = {EC_WORD_WELL, EC_WORD_WELL, 0xFFFF, EC_WORD_LET_S, EC_WORD_START, 0xFFFF}, + .speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_DONE, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES}, + .speechLose = {EC_WORD_WELL, EC_WORD_I, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_I_AM, EC_WORD_TOO_WEAK}, + .monSets = gBattleFrontierTrainerMons_Miranda + }, + [248] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("EMMA"), + .speechBefore = {EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF}, + .speechWin = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_VE, EC_WORD_MISHEARD, EC_WORD_THINGS, 0xFFFF}, + .speechLose = {EC_WORD_WHAT, EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_IS, EC_WORD_RIGHT}, + .monSets = gBattleFrontierTrainerMons_Emma + }, + [249] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_M, + .trainerName = _("ROLANDO"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_SUPER, EC_WORD_POKEMON, EC_WORD_HERO, EC_WORD_EXCL}, + .speechWin = {EC_WORD_WAS, EC_WORD_THAT, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_YOU, EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BEAT, EC_WORD_A, EC_WORD_HERO}, + .monSets = gBattleFrontierTrainerMons_Rolando + }, + [250] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_M, + .trainerName = _("STANLY"), + .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH}, + .speechWin = {EC_WORD_IT, EC_WORD_REALLY, EC_WORD_WAS, EC_WORD_EASY, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_HAPPY, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Stanly + }, + [251] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_M, + .trainerName = _("DARIO"), + .speechBefore = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_SAYS, EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN}, + .speechWin = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_PERFECT, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_SEE, EC_WORD_THIS, EC_MOVE(REVERSAL), EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Dario + }, + [252] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_F, + .trainerName = _("KARLEE"), + .speechBefore = {EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WILL, EC_WORD_COME, EC_WORD_OF, EC_WORD_THIS}, + .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_FANTASTIC, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_THAT, EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WENT, EC_WORD_TO, EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Karlee + }, + [253] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_F, + .trainerName = _("JAYLIN"), + .speechBefore = {EC_WORD_EVERY, EC_WORD_TRAINER, EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_IT_S, EC_WORD_MAKING, EC_WORD_ME, EC_MOVE(YAWN), EC_WORD_THAT, EC_WORD_BATTLE}, + .speechLose = {EC_WORD_I, EC_WORD_SLEPT, EC_WORD_AND, EC_WORD_SO, EC_WORD_I, EC_WORD_LOST}, + .monSets = gBattleFrontierTrainerMons_Jaylin + }, + [254] = { + .facilityClass = FACILITY_CLASS_PSYCHIC_F, + .trainerName = _("INGRID"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_VERY, EC_WORD_MEAN, EC_WORD_TRAINER}, + .speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_A, EC_WORD_GOOD, EC_WORD_MATCH, EC_WORD_QUES}, + .speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_CAUSE, EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Ingrid + }, + [255] = { + .facilityClass = FACILITY_CLASS_HEX_MANIAC, + .trainerName = _("DELILAH"), + .speechBefore = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_IF_I_WIN, EC_WORD_OK_QUES, 0xFFFF}, + .speechWin = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOU, EC_WORD_ANGRY}, + .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GRUDGE), EC_WORD_WITH, EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Delilah + }, + [256] = { + .facilityClass = FACILITY_CLASS_HEX_MANIAC, + .trainerName = _("CARLY"), + .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_SCATTER, EC_WORD_SOME, EC_MOVE2(POISON_POWDER), EC_WORD_ABOUT}, + .speechWin = {EC_WORD_IT_S, EC_WORD_SCARY, EC_WORD_HOW, EC_WORD_MY, EC_WORD_STRATEGY, EC_WORD_WORKS}, + .speechLose = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_YOU, EC_WORD_AND, EC_WORD_YOUR, EC_WORD_POKEMON}, + .monSets = gBattleFrontierTrainerMons_Carly + }, + [257] = { + .facilityClass = FACILITY_CLASS_HEX_MANIAC, + .trainerName = _("LEXIE"), + .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_SCARY, EC_WORD_POKEMON, EC_WORD_QUES}, + .speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_SCARY, EC_WORD_EH_QUES, 0xFFFF, 0xFFFF}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_SCARY, EC_WORD_THAN, EC_WORD_MY, EC_WORD_POKEMON}, + .monSets = gBattleFrontierTrainerMons_Lexie + }, + [258] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("MILLER"), + .speechBefore = {EC_WORD_HELLO, EC_WORD_QUES, 0xFFFF, EC_WORD_HELLO, EC_WORD_QUES_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_HELLO, EC_WORD_MOTHER, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, + .speechLose = {EC_WORD_MY, EC_WORD_PHONE, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Miller + }, + [259] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("MARV"), + .speechBefore = {EC_WORD_YOU, EC_WORD_CAN, EC_WORD_LOSE, EC_WORD_YOUR, EC_MOVE(SWAGGER), EC_WORD_NOW}, + .speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_MOVE(SWAGGER), EC_WORD_LEFT, EC_WORD_EH_QUES}, + .speechLose = {EC_WORD_GO, EC_WORD_ON, EC_MOVE(SWAGGER), EC_WORD_ALL, EC_WORD_YOU, EC_WORD_WANT}, + .monSets = gBattleFrontierTrainerMons_Marv + }, + [260] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("LAYTON"), + .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_TOTALLY, EC_WORD_COOL, EC_WORD_EXCL}, + .speechWin = {EC_WORD_YOU, EC_WORD_CAN, EC_WORD_LOOK, EC_WORD_UP, EC_WORD_TO, EC_WORD_ME}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_NO, EC_WORD_REALLY, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Layton + }, + [261] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("BROOKS"), + .speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_HIGH, EC_WORD_LEVEL, EC_WORD_BATTLE}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_HIGH, EC_WORD_LEVEL, EC_WORD_AND, EC_WORD_EXCITING, EC_WORD_TOO}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_HIGH, EC_WORD_IN, EC_WORD_LEVEL, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Brooks + }, + [262] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("GREGORY"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD, EC_WORD_YET, 0xFFFF}, + .speechWin = {EC_WORD_WHO, EC_WORD_SAYS, EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_OLD, EC_WORD_QUES}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD}, + .monSets = gBattleFrontierTrainerMons_Gregory + }, + [263] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("REESE"), + .speechBefore = {EC_WORD_I_VE, EC_WORD_A, EC_WORD_COUPLE, EC_WORD_THINGS, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_DON_T, EC_WORD_DIET, EC_WORD_PLAY, EC_WORD_SPORTS, EC_WORD_INSTEAD, 0xFFFF}, + .speechLose = {EC_WORD_INSTEAD, EC_WORD_OF, EC_WORD_TELEVISION, EC_WORD_GET, EC_WORD_A, EC_WORD_BOOK}, + .monSets = gBattleFrontierTrainerMons_Reese + }, + [264] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, + .trainerName = _("MASON"), + .speechBefore = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THIS, EC_WORD_SCARY, 0xFFFF}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_NOW}, + .speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Mason + }, + [265] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, + .trainerName = _("TOBY"), + .speechBefore = {EC_WORD_LISTEN, EC_WORD_UP, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_WIN}, + .speechWin = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_OR, EC_WORD_WHAT, EC_WORD_QUES}, + .speechLose = {EC_WORD_I, EC_WORD_CAN, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_AT, EC_WORD_SMARTNESS}, + .monSets = gBattleFrontierTrainerMons_Toby + }, + [266] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, + .trainerName = _("DOROTHY"), + .speechBefore = {EC_WORD_THE, EC_WORD_SPORTS, EC_WORD_WORLD, EC_WORD_SHOULD, EC_WORD_ACCEPT, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT, EC_WORD_WIN, EC_WORD_WAS, EC_WORD_REFRESHING}, + .speechLose = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT, EC_WORD_LOSS, EC_WORD_WAS, EC_WORD_REFRESHING}, + .monSets = gBattleFrontierTrainerMons_Dorothy + }, + [267] = { + .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, + .trainerName = _("PIPER"), + .speechBefore = {EC_WORD_COME_ON, EC_WORD_YOU, EC_WORD_NEED, EC_WORD_A, EC_WORD_SPEED_BOOST, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_MORE, EC_WORD_GUTS}, + .speechLose = {EC_WORD_OH, EC_WORD_YOU, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Piper + }, + [268] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + .trainerName = _("FINN"), + .speechBefore = {EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_TRAINER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS, 0xFFFF}, + .speechWin = {EC_WORD_WON_T, EC_WORD_THIS, EC_WORD_EVER, EC_WORD_END, EC_WORD_QUES, 0xFFFF}, + .speechLose = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(REST), EC_WORD_A_LITTLE}, + .monSets = gBattleFrontierTrainerMons_Finn + }, + [269] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + .trainerName = _("SAMIR"), + .speechBefore = {EC_WORD_I, EC_MOVE2(DIVE), EC_WORD_BELOW, EC_WORD_THE, EC_MOVE2(SURF), EC_WORD_EXCL}, + .speechWin = {EC_WORD_YAHOO, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(DIVE), EC_WORD_YOU, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SINK, EC_WORD_ELLIPSIS, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Samir + }, + [270] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + .trainerName = _("FIONA"), + .speechBefore = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_LIMBER, EC_WORD_UP, EC_WORD_BEFORE, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_BE, EC_WORD_MORE, EC_WORD_READY}, + .speechLose = {EC_WORD_BEING, EC_WORD_LIMBER, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_FOR, EC_WORD_ME}, + .monSets = gBattleFrontierTrainerMons_Fiona + }, + [271] = { + .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + .trainerName = _("GLORIA"), + .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_ATTACK, EC_WORD_WITH, EC_WORD_SUCTION_CUPS}, + .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU}, + .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_HOW, EC_WORD_SUCTION_CUPS, EC_WORD_WORK}, + .monSets = gBattleFrontierTrainerMons_Gloria + }, + [272] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, + .trainerName = _("NICO"), + .speechBefore = {EC_WORD_LIKE, EC_WORD_A, EC_MOVE(SONIC_BOOM), EC_WORD_I_VE_ARRIVED, 0xFFFF, 0xFFFF}, + .speechWin = {EC_WORD_SORRY, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SO, EC_WORD_DOWNCAST}, + .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_WITH, EC_WORD_A, EC_MOVE2(SUPERSONIC), EC_WORD_SPEED_BOOST}, + .monSets = gBattleFrontierTrainerMons_Nico + }, + [273] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, + .trainerName = _("JEREMY"), + .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_MASTER, EC_WORD_THAT_S, EC_WORD_MY, EC_WORD_DREAM}, + .speechWin = {EC_WORD_MY, EC_WORD_DREAM, EC_WORD_ISN_T, EC_WORD_FAR, EC_WORD_OFF, EC_WORD_EXCL}, + .speechLose = {EC_WORD_WHAT, EC_WORD_I, EC_WORD_DREAM, EC_WORD_ISN_T, EC_WORD_HAPPENING, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Jeremy + }, + [274] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, + .trainerName = _("CAITLIN"), + .speechBefore = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_QUES}, + .speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_MORE, EC_WORD_TO_ME, EC_WORD_THAN, EC_WORD_CUTENESS}, + .speechLose = {EC_WORD_MY, EC_WORD_CUTE_CHARM, EC_WORD_DOESN_T, EC_MOVE2(ATTRACT), EC_WORD_YOU, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Caitlin + }, + [275] = { + .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, + .trainerName = _("REENA"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_ALWAYS, EC_WORD_HAPPY, EC_WORD_HAPPY, EC_WORD_HAPPY, EC_WORD_EXCL}, + .speechWin = {EC_WORD_OH, EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_YAHOO, EC_WORD_FOR, EC_WORD_ME}, + .speechLose = {EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_YOU}, + .monSets = gBattleFrontierTrainerMons_Reena + }, + [276] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("AVERY"), + .speechBefore = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_A_LOT, EC_WORD_OF, EC_WORD_BUG, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_MY, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ALL, EC_WORD_UNBELIEVABLE}, + .speechLose = {EC_WORD_MY, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ALL, EC_WORD_UPSIDE_DOWN}, + .monSets = gBattleFrontierTrainerMons_Avery + }, + [277] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("LIAM"), + .speechBefore = {EC_WORD_WE, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_FIRE, EC_WORD_AND, EC_WORD_FLYING}, + .speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_BAD, EC_WORD_HEY_QUES, 0xFFFF}, + .speechLose = {EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_WHAT, EC_WORD_WE, EC_WORD_DISLIKE, EC_WORD_HEY_QUES}, + .monSets = gBattleFrontierTrainerMons_Liam + }, + [278] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("THEO"), + .speechBefore = {EC_WORD_FISHING, EC_WORD_IS, EC_WORD_MY, EC_WORD_CHOICE, EC_WORD_IN, EC_WORD_LIFE}, + .speechWin = {EC_WORD_WATER, EC_WORD_POKEMON, EC_MOVE2(ATTRACT), EC_WORD_ME, EC_WORD_WITHOUT, EC_WORD_END}, + .speechLose = {EC_WORD_DON_T, EC_WORD_COUNT_ON, EC_WORD_THAT, EC_WORD_HAPPENING, EC_WORD_ANOTHER, EC_WORD_TIME}, + .monSets = gBattleFrontierTrainerMons_Theo + }, + [279] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("BAILEY"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_WORD_BATTLE, EC_WORD_EASY}, + .speechWin = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_MOVE2(SWALLOW), EC_WORD_JOY}, + .speechLose = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_MOVE2(SWALLOW), EC_MOVE2(FRUSTRATION)}, + .monSets = gBattleFrontierTrainerMons_Bailey + }, + [280] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("HUGO"), + .speechBefore = {EC_WORD_I, EC_WORD_TRY, EC_WORD_THE, EC_WORD_BEST, EC_WORD_I, EC_WORD_CAN}, + .speechWin = {EC_WORD_I, EC_WORD_CAN_WIN, EC_WORD_IF, EC_WORD_I, EC_WORD_TRY, EC_WORD_ENOUGH}, + .speechLose = {EC_WORD_I, EC_WORD_DID, EC_WORD_TRY, EC_WORD_DIDN_T, EC_WORD_I, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Hugo + }, + [281] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("BRYCE"), + .speechBefore = {EC_WORD_I_WAS, EC_WORD_ON, EC_WORD_VACATION, EC_WORD_UNTIL, EC_WORD_ONLY, EC_WORD_YESTERDAY}, + .speechWin = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_LOST, EC_WORD_MY, EC_WORD_SKILL, EC_WORD_YET}, + .speechLose = {EC_WORD_THAT_S, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_NEED, EC_WORD_SLEEP}, + .monSets = gBattleFrontierTrainerMons_Bryce + }, + [282] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("GIDEON"), + .speechBefore = {EC_WORD_WHAT_S_UP_QUES, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_SCARY, EC_WORD_QUES}, + .speechWin = {EC_WORD_I_AM, EC_WORD_COOL, EC_WORD_BUT, EC_WORD_NOT, EC_WORD_SCARY, EC_WORD_EXCL}, + .speechLose = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_FASHION, EC_WORD_SENSE}, + .monSets = gBattleFrontierTrainerMons_Gideon + }, + [283] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("TRISTON"), + .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_RATHER, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_POKEMON}, + .speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL}, + .speechLose = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_LOSE}, + .monSets = gBattleFrontierTrainerMons_Triston + }, + [284] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("CHARLES"), + .speechBefore = {EC_WORD_IT_S, EC_WORD_HOPELESS, EC_WORD_TO, EC_MOVE2(STRUGGLE), EC_WORD_WITH, EC_WORD_ME}, + .speechWin = {EC_MOVE(SUBMISSION), EC_WORD_WAS, EC_WORD_YOUR, EC_WORD_ONLY, EC_WORD_CHOICE, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Charles + }, + [285] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("RAYMOND"), + .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_HEAR, EC_WORD_MY, EC_WORD_SONG, EC_WORD_QUES}, + .speechWin = {EC_WORD_SATISFIED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_SATISFIED, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE}, + .monSets = gBattleFrontierTrainerMons_Raymond + }, + [286] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("DIRK"), + .speechBefore = {EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ABOVE, EC_WORD_THE, EC_MOVE2(REST)}, + .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T_WIN, EC_WORD_EXCL, EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_RULE}, + .speechLose = {EC_WORD_AREN_T, EC_WORD_THERE, EC_WORD_MORE, EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Dirk + }, + [287] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("HAROLD"), + .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_APPEAL, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES}, + .speechWin = {EC_WORD_YOU, EC_WORD_DO, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_QUES}, + .speechLose = {EC_WORD_SO, EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Harold + }, + [288] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("OMAR"), + .speechBefore = {EC_WORD_LET_ME_WIN, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_FOR, EC_WORD_A, EC_MOVE2(PRESENT)}, + .speechWin = {EC_WORD_HERE, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_SOME, EC_MOVE2(TOXIC), EC_WORD_SWEETS}, + .speechLose = {EC_WORD_YOUR, EC_MOVE2(PRESENT), EC_WORD_QUES, EC_WORD_WHAT, EC_WORD_FOR, EC_WORD_QUES_EXCL}, + .monSets = gBattleFrontierTrainerMons_Omar + }, + [289] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("PETER"), + .speechBefore = {EC_WORD_I, EC_WORD_BRAG, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_OK_QUES}, + .speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_LISTEN, EC_WORD_TO_ME, EC_WORD_BRAG}, + .speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_YOU, EC_WORD_WON_T, EC_WORD_LISTEN, EC_WORD_TO_ME}, + .monSets = gBattleFrontierTrainerMons_Peter + }, + [290] = { + .facilityClass = FACILITY_CLASS_HIKER, + .trainerName = _("DEV"), + .speechBefore = {EC_WORD_COME_ON, EC_WORD_LET_S, EC_WORD_GET, EC_WORD_A, EC_WORD_MOVE, EC_WORD_ON}, + .speechWin = {EC_WORD_I, EC_WORD_GET, EC_WORD_TO, EC_WORD_NAP, EC_WORD_AFTER, EC_WORD_THAT}, + .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_NAP, EC_WORD_AFTER, EC_WORD_THAT}, + .monSets = gBattleFrontierTrainerMons_Dev + }, + [291] = { + .facilityClass = FACILITY_CLASS_HIKER, + .trainerName = _("COREY"), + .speechBefore = {EC_WORD_LET_S, EC_WORD_TEACH, EC_WORD_YOU, EC_WORD_HOW, EC_WORD_TOUGH, EC_WORD_I_AM}, + .speechWin = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_ME, EC_WORD_MAKE, EC_WORD_A, EC_MOVE(BRICK_BREAK)}, + .speechLose = {EC_WORD_MY, EC_MOVE2(FRUSTRATION), EC_WORD_IS, EC_WORD_CLOSE, EC_WORD_TO, EC_MOVE2(ERUPTION)}, + .monSets = gBattleFrontierTrainerMons_Corey + }, + [292] = { + .facilityClass = FACILITY_CLASS_KINDLER, + .trainerName = _("ANDRE"), + .speechBefore = {EC_WORD_NOW, EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_PERFECT, EC_WORD_FLAME_BODY}, + .speechWin = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_FIERY, EC_WORD_DANCE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU, EC_WORD_WANT, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_HERE, EC_WORD_QUES}, + .monSets = gBattleFrontierTrainerMons_Andre + }, + [293] = { + .facilityClass = FACILITY_CLASS_KINDLER, + .trainerName = _("FERRIS"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THE, EC_WORD_OLD, EC_WORD_CLASS}, + .speechWin = {EC_WORD_NO_1, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_NO_1, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_ELLIPSIS}, + .monSets = gBattleFrontierTrainerMons_Ferris + }, + [294] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("ALIVIA"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_GIDDY, EC_WORD_SO, EC_WORD_SHOULD, EC_WORD_YOU}, + .speechWin = {EC_WORD_IT, EC_WORD_WAS, EC_WORD_ALL, EC_WORD_TOGETHER, EC_WORD_TOO, EC_WORD_EASY}, + .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GIDDY, EC_WORD_UP, EC_WORD_AND, EC_WORD_AWAY}, + .monSets = gBattleFrontierTrainerMons_Alivia + }, + [295] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("PAIGE"), + .speechBefore = {EC_WORD_LET_S, EC_WORD_ENJOY, EC_WORD_OUR, EC_WORD_BATTLE, EC_WORD_TOGETHER, 0xFFFF}, + .speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH}, + .speechLose = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_DO, EC_WORD_GO, EC_WORD_ON}, + .monSets = gBattleFrontierTrainerMons_Paige + }, + [296] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("ANYA"), + .speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_OH, EC_WORD_SO, EC_WORD_PRETTY, EC_WORD_FASHION}, + .speechWin = {EC_WORD_FASHION, EC_WORD_SHOULD, EC_WORD_MATCH, EC_WORD_THE, EC_WORD_PERSON, 0xFFFF}, + .speechLose = {EC_WORD_PRETTY, EC_WORD_COULD, EC_WORD_BE, EC_WORD_GOOD, 0xFFFF, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Anya + }, + [297] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("DAWN"), + .speechBefore = {EC_WORD_I, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_EXCL, 0xFFFF}, + .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_A, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_YOU, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_MOVE, EC_WORD_ON, EC_WORD_EXCL}, + .monSets = gBattleFrontierTrainerMons_Dawn + }, + [298] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("ABBY"), + .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_THAT_S, EC_WORD_REFRESHING}, + .speechWin = {EC_WORD_VICTORY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), EC_WORD_EXCL, 0xFFFF}, + .speechLose = {EC_WORD_WHAT, EC_WORD_AN, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_EXCL, 0xFFFF}, + .monSets = gBattleFrontierTrainerMons_Abby + }, + [299] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("GRETEL"), + .speechBefore = {EC_WORD_I, EC_WORD_CAUSE, EC_MOVE(OUTRAGE), EC_WORD_AS, EC_WORD_A, EC_WORD_TRAINER}, + .speechWin = {EC_WORD_IT_S, EC_WORD_ONLY, EC_WORD_NATURAL, EC_WORD_SEE_YA, EC_WORD_BYE_BYE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_IT_S, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_BUT, EC_WORD_CONGRATS}, + .monSets = gBattleFrontierTrainerMons_Gretel + } +}; diff --git a/src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h b/src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h new file mode 100644 index 000000000..108b3a3b0 --- /dev/null +++ b/src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h @@ -0,0 +1,1063 @@ +static const struct PyramidWildMon sLevel50WildMons_Round1[] = +{ + { + .species = SPECIES_PLUSLE, + .lvl = 35, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_ENCORE, MOVE_NONE} + }, + { + .species = SPECIES_MINUN, + .lvl = 35, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_PIKACHU, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_ELECTABUZZ, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_SWIFT, MOVE_SCREECH, MOVE_NONE} + }, + { + .species = SPECIES_VILEPLUME, + .lvl = 39, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MANECTRIC, + .lvl = 39, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 40, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_MACH_PUNCH} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 40, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PIN_MISSILE, MOVE_QUICK_ATTACK} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round2[] = +{ + { + .species = SPECIES_GULPIN, + .lvl = 36, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SLUDGE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ROSELIA, + .lvl = 36, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_PETAL_DANCE} + }, + { + .species = SPECIES_BUTTERFREE, + .lvl = 38, + .abilityBit = 2, + .moves = {MOVE_POISON_POWDER, MOVE_GUST, MOVE_PSYBEAM, MOVE_NONE} + }, + { + .species = SPECIES_SEVIPER, + .lvl = 38, + .abilityBit = 2, + .moves = {MOVE_POISON_FANG, MOVE_SWAGGER, MOVE_CRUNCH, MOVE_POISON_TAIL} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 40, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_FLY, MOVE_STEEL_WING, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 40, + .abilityBit = 1, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_DIVE, MOVE_RAIN_DANCE} + }, + { + .species = SPECIES_CROBAT, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_BITE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SHADOW_PUNCH, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round3[] = +{ + { + .species = SPECIES_GROWLITHE, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_FLAME_WHEEL, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_VULPIX, + .lvl = 37, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_MAGCARGO, + .lvl = 39, + .abilityBit = 1, + .moves = {MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 39, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_QUICK_ATTACK, MOVE_FLAMETHROWER, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_FIRE_PUNCH, MOVE_HI_JUMP_KICK, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_WEEZING, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_SHADOW_PUNCH} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_SOLAR_BEAM, MOVE_OVERHEAT} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round4[] = +{ + { + .species = SPECIES_DUNSPARCE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SPITE, MOVE_TOXIC, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_BANETTE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_OVERHEAT, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_TOXIC, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_TOXIC, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round5[] = +{ + { + .species = SPECIES_HAUNTER, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_NONE} + }, + { + .species = SPECIES_CHIMECHO, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_DOUBLE_EDGE, MOVE_TOXIC, MOVE_PSYCHIC, MOVE_PROTECT} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_TOXIC} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_PAIN_SPLIT} + }, + { + .species = SPECIES_CLAYDOL, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SELF_DESTRUCT, MOVE_PSYCHIC} + }, + { + .species = SPECIES_WEEZING, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_FLYGON, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_DRAGON_CLAW, MOVE_DRAGON_BREATH} + }, + { + .species = SPECIES_GENGAR, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_NIGHT_SHADE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round6[] = +{ + { + .species = SPECIES_DIGLETT, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLASH, MOVE_DIG, MOVE_NONE} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 42, + .abilityBit = 0, + .moves = {MOVE_DESTINY_BOND, MOVE_SPLASH, MOVE_COUNTER, MOVE_MIRROR_COAT} + }, + { + .species = SPECIES_DIGLETT, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_MAGNITUDE, MOVE_TOXIC} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_PROTECT} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 44, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_WOBBUFFET, + .lvl = 45, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_DUGTRIO, + .lvl = 45, + .abilityBit = 1, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_PROTECT} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round7[] = +{ + { + .species = SPECIES_GLALIE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUSH_CLAW, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_PILOSWINE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_JYNX, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_LOVELY_KISS, MOVE_PSYCHIC, MOVE_NONE} + }, + { + .species = SPECIES_CLOYSTER, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_BODY_SLAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_SING, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_PSYCHIC} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round8[] = +{ + { + .species = SPECIES_WEEZING, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_ELECTRODE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_THUNDERBOLT, MOVE_ROLLOUT, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_DESTINY_BOND, MOVE_LICK, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_GOLEM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_PINECO, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_DOUBLE_EDGE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_FIRE_SPIN, MOVE_PSYWAVE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_PROTECT} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round9[] = +{ + { + .species = SPECIES_WOBBUFFET, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND} + }, + { + .species = SPECIES_METANG, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_SLUDGE_BOMB, MOVE_PSYCHIC} + }, + { + .species = SPECIES_EXEGGUTOR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EGG_BOMB, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_NONE} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SURF, MOVE_ICE_BEAM, MOVE_FLAMETHROWER} + }, + { + .species = SPECIES_XATU, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALAKAZAM, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_TOXIC} + }, + { + .species = SPECIES_STARMIE, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_ESPEON, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DIG, MOVE_SHADOW_BALL, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round10[] = +{ + { + .species = SPECIES_GOLEM, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_IRON_TAIL, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_OMASTAR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_MUD_SHOT, MOVE_ANCIENT_POWER, MOVE_NONE} + }, + { + .species = SPECIES_LUNATONE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HYPNOSIS, MOVE_PSYWAVE, MOVE_EXPLOSION, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_WRAP, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_ANCIENT_POWER, MOVE_PROTECT, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_CRADILY, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_ROCK_SLIDE, MOVE_BITE, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round11[] = +{ + { + .species = SPECIES_POLIWRATH, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SUBMISSION, MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_HARIYAMA, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_FAKE_OUT, MOVE_SURF, MOVE_FOCUS_PUNCH, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONCHAN, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONLEE, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_MACHAMP, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_SEISMIC_TOSS} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round12[] = +{ + { + .species = SPECIES_QUAGSIRE, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_TROPIUS, + .lvl = 41, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_PUPITAR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 44, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 45, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_THUNDER, MOVE_HYDRO_PUMP, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round13[] = +{ + { + .species = SPECIES_PINECO, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_VENOMOTH, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_SILVER_WIND, MOVE_POISON_POWDER, MOVE_SLEEP_POWDER, MOVE_PSYCHIC} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_QUICK_ATTACK, MOVE_METAL_CLAW, MOVE_FURY_CUTTER, MOVE_PURSUIT} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_PROTECT, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_SPITE, MOVE_GRUDGE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round14[] = +{ + { + .species = SPECIES_SABLEYE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_PSYCHIC, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_TAUNT, MOVE_FAINT_ATTACK, MOVE_QUICK_ATTACK} + }, + { + .species = SPECIES_CRAWDAUNT, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_CRABHAMMER, MOVE_ICE_BEAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_GIGA_DRAIN} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_NEEDLE_ARM, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_PROTECT, MOVE_SLASH, MOVE_NONE} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_OVERHEAT, MOVE_CRUNCH, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_UMBREON, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_IRON_TAIL, MOVE_QUICK_ATTACK} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round15[] = +{ + { + .species = SPECIES_OCTILLERY, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_OCTAZOOKA, MOVE_ICE_BEAM, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_ICE_BEAM, MOVE_HEADBUTT, MOVE_NONE} + }, + { + .species = SPECIES_PELIPPER, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SUPERSONIC, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_QUAGSIRE, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_HEADBUTT, MOVE_SWAGGER, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_THUNDERBOLT, MOVE_CONFUSE_RAY, MOVE_BLIZZARD} + }, + { + .species = SPECIES_BLASTOISE, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_BITE, MOVE_ICE_BEAM, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round16[] = +{ + { + .species = SPECIES_DUSKULL, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_HAUNTER, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SPITE, MOVE_HYPNOSIS, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_BANETTE, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_WILL_O_WISP, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_PERISH_SONG, MOVE_SPITE, MOVE_MEAN_LOOK, MOVE_NONE} + }, + { + .species = SPECIES_SABLEYE, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_MEAN_LOOK, MOVE_DIG, MOVE_NIGHT_SHADE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_TOXIC, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_GRUDGE, MOVE_PROTECT} + }, + { + .species = SPECIES_GENGAR, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DESTINY_BOND, MOVE_SPITE, MOVE_NIGHT_SHADE} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round17[] = +{ + { + .species = SPECIES_MAWILE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_CRUNCH, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_MAGNETON, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_ROCK_THROW, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_METAL_CLAW, MOVE_SLASH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_STEEL_WING, MOVE_TOXIC, MOVE_FLY, MOVE_PROTECT} + }, + { + .species = SPECIES_AGGRON, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TAKE_DOWN, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_METAGROSS, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round18[] = +{ + { + .species = SPECIES_DRAGONAIR, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_VIBRAVA, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_CRUNCH, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALTARIA, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_SING, MOVE_PROTECT} + }, + { + .species = SPECIES_FLYGON, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_CLAW, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_SURF, MOVE_THRASH, MOVE_BITE} + }, + { + .species = SPECIES_KINGDRA, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_CHARIZARD, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, MOVE_FIRE_BLAST, MOVE_IRON_TAIL} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round19[] = +{ + { + .species = SPECIES_ARCANINE, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_FIRE_BLAST, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_POLIWRATH, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_RAICHU, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_VAPOREON, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PIN_MISSILE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_THUNDERBOLT, MOVE_PSYCHIC} + } +}; + +static const struct PyramidWildMon sLevel50WildMons_Round20[] = +{ + { + .species = SPECIES_KANGASKHAN, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_SURF, MOVE_DIZZY_PUNCH} + }, + { + .species = SPECIES_SWELLOW, + .lvl = 42, + .abilityBit = 2, + .moves = {MOVE_AERIAL_ACE, MOVE_HYPER_BEAM, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_URSARING, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_PROTECT} + }, + { + .species = SPECIES_PORYGON2, + .lvl = 46, + .abilityBit = 2, + .moves = {MOVE_PSYBEAM, MOVE_HYPER_BEAM, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_TAUROS, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF, MOVE_THUNDERBOLT} + }, + { + .species = SPECIES_FEAROW, + .lvl = 48, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLY, MOVE_MIRROR_MOVE, MOVE_PROTECT} + }, + { + .species = SPECIES_SNORLAX, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE} + }, + { + .species = SPECIES_SLAKING, + .lvl = 50, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + } +}; + +static const struct PyramidWildMon *const sLevel50WildMonPointers[] = +{ + sLevel50WildMons_Round1, + sLevel50WildMons_Round2, + sLevel50WildMons_Round3, + sLevel50WildMons_Round4, + sLevel50WildMons_Round5, + sLevel50WildMons_Round6, + sLevel50WildMons_Round7, + sLevel50WildMons_Round8, + sLevel50WildMons_Round9, + sLevel50WildMons_Round10, + sLevel50WildMons_Round11, + sLevel50WildMons_Round12, + sLevel50WildMons_Round13, + sLevel50WildMons_Round14, + sLevel50WildMons_Round15, + sLevel50WildMons_Round16, + sLevel50WildMons_Round17, + sLevel50WildMons_Round18, + sLevel50WildMons_Round19, + sLevel50WildMons_Round20 +}; diff --git a/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h b/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h new file mode 100644 index 000000000..10435d767 --- /dev/null +++ b/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h @@ -0,0 +1,1063 @@ +static const struct PyramidWildMon sOpenLevelWildMons_Round1[] = +{ + { + .species = SPECIES_PLUSLE, + .lvl = 15, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_ENCORE, MOVE_NONE} + }, + { + .species = SPECIES_MINUN, + .lvl = 15, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_PIKACHU, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_ELECTABUZZ, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_SWIFT, MOVE_SCREECH, MOVE_NONE} + }, + { + .species = SPECIES_VILEPLUME, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_GIGA_DRAIN, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MANECTRIC, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_STUN_SPORE, MOVE_FOCUS_PUNCH, MOVE_GIGA_DRAIN, MOVE_MACH_PUNCH} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PIN_MISSILE, MOVE_QUICK_ATTACK} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round2[] = +{ + { + .species = SPECIES_GULPIN, + .lvl = 14, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SLUDGE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ROSELIA, + .lvl = 14, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_PETAL_DANCE} + }, + { + .species = SPECIES_BUTTERFREE, + .lvl = 12, + .abilityBit = 2, + .moves = {MOVE_POISON_POWDER, MOVE_GUST, MOVE_PSYBEAM, MOVE_NONE} + }, + { + .species = SPECIES_SEVIPER, + .lvl = 12, + .abilityBit = 2, + .moves = {MOVE_POISON_FANG, MOVE_SWAGGER, MOVE_CRUNCH, MOVE_POISON_TAIL} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 7, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_FLY, MOVE_STEEL_WING, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 7, + .abilityBit = 1, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_DIVE, MOVE_RAIN_DANCE} + }, + { + .species = SPECIES_CROBAT, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_BITE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SHADOW_PUNCH, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round3[] = +{ + { + .species = SPECIES_GROWLITHE, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_FLAME_WHEEL, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_VULPIX, + .lvl = 13, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_MAGCARGO, + .lvl = 11, + .abilityBit = 1, + .moves = {MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 11, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_QUICK_ATTACK, MOVE_FLAMETHROWER, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_FIRE_PUNCH, MOVE_HI_JUMP_KICK, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_WEEZING, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_MEAN_LOOK, MOVE_SHADOW_PUNCH} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_SOLAR_BEAM, MOVE_OVERHEAT} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round4[] = +{ + { + .species = SPECIES_DUNSPARCE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SPITE, MOVE_TOXIC, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_BANETTE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_OVERHEAT, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_TOXIC, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_TOXIC, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_GRUDGE, MOVE_SPITE, MOVE_NIGHT_SHADE, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round5[] = +{ + { + .species = SPECIES_HAUNTER, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_NONE} + }, + { + .species = SPECIES_CHIMECHO, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_DOUBLE_EDGE, MOVE_TOXIC, MOVE_PSYCHIC, MOVE_PROTECT} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_TOXIC} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SPITE, MOVE_SHADOW_BALL, MOVE_PAIN_SPLIT} + }, + { + .species = SPECIES_CLAYDOL, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SELF_DESTRUCT, MOVE_PSYCHIC} + }, + { + .species = SPECIES_WEEZING, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_FLYGON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_DRAGON_CLAW, MOVE_DRAGON_BREATH} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_NIGHT_SHADE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round6[] = +{ + { + .species = SPECIES_DIGLETT, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLASH, MOVE_DIG, MOVE_NONE} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 8, + .abilityBit = 0, + .moves = {MOVE_DESTINY_BOND, MOVE_SPLASH, MOVE_COUNTER, MOVE_MIRROR_COAT} + }, + { + .species = SPECIES_DIGLETT, + .lvl = 8, + .abilityBit = 1, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_MAGNITUDE, MOVE_TOXIC} + }, + { + .species = SPECIES_TRAPINCH, + .lvl = 6, + .abilityBit = 1, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_PROTECT} + }, + { + .species = SPECIES_WYNAUT, + .lvl = 6, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_WOBBUFFET, + .lvl = 5, + .abilityBit = 0, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_DESTINY_BOND, MOVE_NONE} + }, + { + .species = SPECIES_DUGTRIO, + .lvl = 5, + .abilityBit = 1, + .moves = {MOVE_ROCK_SLIDE, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_PROTECT} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round7[] = +{ + { + .species = SPECIES_GLALIE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_CRUSH_CLAW, MOVE_SPITE, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_PILOSWINE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_JYNX, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_LOVELY_KISS, MOVE_PSYCHIC, MOVE_NONE} + }, + { + .species = SPECIES_CLOYSTER, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_BLIZZARD, MOVE_BODY_SLAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SING, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_PSYCHIC} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round8[] = +{ + { + .species = SPECIES_WEEZING, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_ELECTRODE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_THUNDERBOLT, MOVE_ROLLOUT, MOVE_NONE} + }, + { + .species = SPECIES_GENGAR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_DESTINY_BOND, MOVE_LICK, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_GOLEM, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_PROTECT, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_PINECO, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_DOUBLE_EDGE, MOVE_GIGA_DRAIN, MOVE_NONE} + }, + { + .species = SPECIES_SOLROCK, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_FIRE_SPIN, MOVE_PSYWAVE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_PROTECT} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round9[] = +{ + { + .species = SPECIES_WOBBUFFET, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_SAFEGUARD, MOVE_DESTINY_BOND} + }, + { + .species = SPECIES_METANG, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TOXIC, MOVE_SLUDGE_BOMB, MOVE_PSYCHIC} + }, + { + .species = SPECIES_EXEGGUTOR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EGG_BOMB, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_NONE} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SURF, MOVE_ICE_BEAM, MOVE_FLAMETHROWER} + }, + { + .species = SPECIES_XATU, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_CONFUSE_RAY, MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALAKAZAM, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_TOXIC} + }, + { + .species = SPECIES_STARMIE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_ESPEON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DIG, MOVE_SHADOW_BALL, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round10[] = +{ + { + .species = SPECIES_GOLEM, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SELF_DESTRUCT, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_IRON_TAIL, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_OMASTAR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_MUD_SHOT, MOVE_ANCIENT_POWER, MOVE_NONE} + }, + { + .species = SPECIES_LUNATONE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_HYPNOSIS, MOVE_PSYWAVE, MOVE_EXPLOSION, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_PROTECT, MOVE_WRAP, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_ANCIENT_POWER, MOVE_PROTECT, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_CRADILY, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_ROCK_SLIDE, MOVE_BITE, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round11[] = +{ + { + .species = SPECIES_POLIWRATH, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SUBMISSION, MOVE_FOCUS_PUNCH, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_HARIYAMA, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_FAKE_OUT, MOVE_SURF, MOVE_FOCUS_PUNCH, MOVE_NONE} + }, + { + .species = SPECIES_BRELOOM, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SPORE, MOVE_FOCUS_PUNCH, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_MEDICHAM, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONCHAN, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_FOCUS_PUNCH} + }, + { + .species = SPECIES_HITMONLEE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_MACHAMP, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_SEISMIC_TOSS} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round12[] = +{ + { + .species = SPECIES_QUAGSIRE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_SURF, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_TROPIUS, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_PUPITAR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_LAPRAS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SANDSTORM, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SUNNY_DAY, MOVE_FLAMETHROWER, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_WALREIN, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HAIL, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_RAIN_DANCE, MOVE_THUNDER, MOVE_HYDRO_PUMP, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round13[] = +{ + { + .species = SPECIES_PINECO, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SHUCKLE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_VENOMOTH, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SILVER_WIND, MOVE_POISON_POWDER, MOVE_SLEEP_POWDER, MOVE_PSYCHIC} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_QUICK_ATTACK, MOVE_METAL_CLAW, MOVE_FURY_CUTTER, MOVE_PURSUIT} + }, + { + .species = SPECIES_HERACROSS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_ARMALDO, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_PROTECT, MOVE_ROCK_SLIDE, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_TOXIC, MOVE_SPITE, MOVE_GRUDGE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round14[] = +{ + { + .species = SPECIES_SABLEYE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_PSYCHIC, MOVE_AERIAL_ACE, MOVE_NONE} + }, + { + .species = SPECIES_SNEASEL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_TAUNT, MOVE_FAINT_ATTACK, MOVE_QUICK_ATTACK} + }, + { + .species = SPECIES_CRAWDAUNT, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_CRABHAMMER, MOVE_ICE_BEAM, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_SHIFTRY, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_GIGA_DRAIN} + }, + { + .species = SPECIES_CACTURNE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_NEEDLE_ARM, MOVE_NONE} + }, + { + .species = SPECIES_ABSOL, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_BITE, MOVE_PROTECT, MOVE_SLASH, MOVE_NONE} + }, + { + .species = SPECIES_HOUNDOOM, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_OVERHEAT, MOVE_CRUNCH, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_UMBREON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_IRON_TAIL, MOVE_QUICK_ATTACK} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round15[] = +{ + { + .species = SPECIES_OCTILLERY, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_OCTAZOOKA, MOVE_ICE_BEAM, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_DEWGONG, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_ICE_BEAM, MOVE_HEADBUTT, MOVE_NONE} + }, + { + .species = SPECIES_PELIPPER, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SUPERSONIC, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_QUAGSIRE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SURF, MOVE_NONE} + }, + { + .species = SPECIES_LUDICOLO, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_TOXIC, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_SLOWKING, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_HEADBUTT, MOVE_SWAGGER, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_WATER_PULSE, MOVE_THUNDERBOLT, MOVE_CONFUSE_RAY, MOVE_BLIZZARD} + }, + { + .species = SPECIES_BLASTOISE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_BITE, MOVE_ICE_BEAM, MOVE_NONE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round16[] = +{ + { + .species = SPECIES_DUSKULL, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SHADOW_BALL, MOVE_PROTECT} + }, + { + .species = SPECIES_HAUNTER, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_TOXIC, MOVE_SPITE, MOVE_HYPNOSIS, MOVE_SHADOW_BALL} + }, + { + .species = SPECIES_BANETTE, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_WILL_O_WISP, MOVE_NONE} + }, + { + .species = SPECIES_MISDREAVUS, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PERISH_SONG, MOVE_SPITE, MOVE_MEAN_LOOK, MOVE_NONE} + }, + { + .species = SPECIES_SABLEYE, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_MEAN_LOOK, MOVE_DIG, MOVE_NIGHT_SHADE} + }, + { + .species = SPECIES_DUSCLOPS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_WILL_O_WISP, MOVE_TOXIC, MOVE_SHADOW_BALL, MOVE_NONE} + }, + { + .species = SPECIES_SHEDINJA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_SHADOW_BALL, MOVE_SPITE, MOVE_GRUDGE, MOVE_PROTECT} + }, + { + .species = SPECIES_GENGAR, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_PSYCHIC, MOVE_DESTINY_BOND, MOVE_SPITE, MOVE_NIGHT_SHADE} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round17[] = +{ + { + .species = SPECIES_MAWILE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_CRUNCH, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_MAGNETON, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_STEELIX, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_ROCK_THROW, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_NONE} + }, + { + .species = SPECIES_SCIZOR, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_METAL_CLAW, MOVE_SLASH, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FORRETRESS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EXPLOSION, MOVE_TOXIC, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_SKARMORY, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_STEEL_WING, MOVE_TOXIC, MOVE_FLY, MOVE_PROTECT} + }, + { + .species = SPECIES_AGGRON, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_TAKE_DOWN, MOVE_SURF, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_METAGROSS, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round18[] = +{ + { + .species = SPECIES_DRAGONAIR, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_THUNDER_WAVE, MOVE_TOXIC, MOVE_ICE_BEAM, MOVE_NONE} + }, + { + .species = SPECIES_VIBRAVA, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_CRUNCH, MOVE_STEEL_WING} + }, + { + .species = SPECIES_ALTARIA, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_SING, MOVE_PROTECT} + }, + { + .species = SPECIES_FLYGON, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_FIRE_BLAST, MOVE_NONE} + }, + { + .species = SPECIES_AERODACTYL, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_CLAW, MOVE_NONE} + }, + { + .species = SPECIES_GYARADOS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_SURF, MOVE_THRASH, MOVE_BITE} + }, + { + .species = SPECIES_KINGDRA, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_CHARIZARD, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_FOCUS_PUNCH, MOVE_FIRE_BLAST, MOVE_IRON_TAIL} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round19[] = +{ + { + .species = SPECIES_ARCANINE, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_FIRE_BLAST, MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_POLIWRATH, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_RAICHU, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_SLAM, MOVE_NONE} + }, + { + .species = SPECIES_VAPOREON, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_JOLTEON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_THUNDERBOLT, MOVE_PIN_MISSILE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_FLAREON, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_NONE, MOVE_NONE} + }, + { + .species = SPECIES_NINETALES, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_FLAMETHROWER, MOVE_WILL_O_WISP, MOVE_PROTECT, MOVE_NONE} + }, + { + .species = SPECIES_STARMIE, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_THUNDERBOLT, MOVE_PSYCHIC} + } +}; + +static const struct PyramidWildMon sOpenLevelWildMons_Round20[] = +{ + { + .species = SPECIES_KANGASKHAN, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_SURF, MOVE_DIZZY_PUNCH} + }, + { + .species = SPECIES_SWELLOW, + .lvl = 10, + .abilityBit = 2, + .moves = {MOVE_AERIAL_ACE, MOVE_HYPER_BEAM, MOVE_TOXIC, MOVE_NONE} + }, + { + .species = SPECIES_URSARING, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_FOCUS_PUNCH, MOVE_PROTECT} + }, + { + .species = SPECIES_PORYGON2, + .lvl = 8, + .abilityBit = 2, + .moves = {MOVE_PSYBEAM, MOVE_HYPER_BEAM, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + }, + { + .species = SPECIES_TAUROS, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF, MOVE_THUNDERBOLT} + }, + { + .species = SPECIES_FEAROW, + .lvl = 6, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_FLY, MOVE_MIRROR_MOVE, MOVE_PROTECT} + }, + { + .species = SPECIES_SNORLAX, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE} + }, + { + .species = SPECIES_SLAKING, + .lvl = 5, + .abilityBit = 2, + .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ICE_BEAM} + } +}; + +static const struct PyramidWildMon *const sOpenLevelWildMonPointers[] = +{ + sOpenLevelWildMons_Round1, + sOpenLevelWildMons_Round2, + sOpenLevelWildMons_Round3, + sOpenLevelWildMons_Round4, + sOpenLevelWildMons_Round5, + sOpenLevelWildMons_Round6, + sOpenLevelWildMons_Round7, + sOpenLevelWildMons_Round8, + sOpenLevelWildMons_Round9, + sOpenLevelWildMons_Round10, + sOpenLevelWildMons_Round11, + sOpenLevelWildMons_Round12, + sOpenLevelWildMons_Round13, + sOpenLevelWildMons_Round14, + sOpenLevelWildMons_Round15, + sOpenLevelWildMons_Round16, + sOpenLevelWildMons_Round17, + sOpenLevelWildMons_Round18, + sOpenLevelWildMons_Round19, + sOpenLevelWildMons_Round20 +}; diff --git a/src/data/battle_frontier/battle_tent.h b/src/data/battle_frontier/battle_tent.h new file mode 100644 index 000000000..946ca0187 --- /dev/null +++ b/src/data/battle_frontier/battle_tent.h @@ -0,0 +1,3005 @@ +// Slateport Battle Tent. +const u16 gSlateportBattleTentTrainerMons_Jolie[] = +{ + 9, + 10, + 13, + 27, + 35, + 37, + 42, + 44, + 45, + 46, + 63, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Malachi[] = +{ + 9, + 16, + 17, + 27, + 36, + 39, + 42, + 45, + 48, + 49, + 53, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Kelsie[] = +{ + 4, + 5, + 6, + 11, + 28, + 34, + 35, + 37, + 43, + 51, + 53, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Davon[] = +{ + 4, + 5, + 6, + 12, + 26, + 36, + 37, + 38, + 40, + 44, + 46, + 50, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Glenda[] = +{ + 0, + 1, + 17, + 18, + 19, + 22, + 23, + 33, + 42, + 61, + 64, + 65, + 66, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Helena[] = +{ + 18, + 19, + 21, + 38, + 39, + 41, + 42, + 52, + 54, + 58, + 63, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Rodolfo[] = +{ + 0, + 1, + 4, + 5, + 7, + 8, + 18, + 20, + 21, + 37, + 38, + 40, + 62, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Davion[] = +{ + 17, + 23, + 24, + 25, + 31, + 32, + 33, + 34, + 39, + 43, + 44, + 49, + 57, + 69, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Kendall[] = +{ + 4, + 7, + 8, + 9, + 11, + 12, + 13, + 27, + 38, + 40, + 45, + 46, + 47, + 63, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Colten[] = +{ + 0, + 2, + 12, + 22, + 28, + 30, + 35, + 38, + 43, + 44, + 56, + 57, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Irvin[] = +{ + 0, + 1, + 2, + 3, + 14, + 15, + 24, + 25, + 32, + 34, + 39, + 59, + 60, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Shaun[] = +{ + 17, + 18, + 19, + 22, + 29, + 36, + 42, + 48, + 61, + 62, + 66, + 68, + 69, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Kyler[] = +{ + 22, + 23, + 28, + 29, + 31, + 32, + 34, + 39, + 55, + 64, + 65, + 67, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Maggie[] = +{ + 10, + 13, + 17, + 27, + 45, + 46, + 53, + 56, + 61, + 62, + 63, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Stephon[] = +{ + 8, + 10, + 16, + 23, + 29, + 43, + 44, + 60, + 62, + 63, + 68, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Rebecca[] = +{ + 8, + 13, + 21, + 29, + 33, + 41, + 48, + 54, + 59, + 61, + 68, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Reggie[] = +{ + 6, + 7, + 17, + 23, + 24, + 26, + 32, + 36, + 52, + 53, + 57, + 65, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Janae[] = +{ + 0, + 1, + 27, + 28, + 32, + 34, + 36, + 37, + 52, + 53, + 57, + 65, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Caiden[] = +{ + 10, + 14, + 15, + 16, + 20, + 21, + 25, + 30, + 35, + 47, + 48, + 50, + 69, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Kirsten[] = +{ + 10, + 16, + 18, + 19, + 20, + 21, + 25, + 30, + 35, + 39, + 41, + 48, + 69, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Kurtis[] = +{ + 0, + 1, + 36, + 37, + 40, + 46, + 49, + 51, + 64, + 67, + 68, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Stefan[] = +{ + 4, + 5, + 21, + 33, + 37, + 38, + 40, + 51, + 52, + 64, + 65, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Avery[] = +{ + 2, + 3, + 7, + 8, + 22, + 23, + 28, + 29, + 30, + 51, + 67, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Dwane[] = +{ + 14, + 15, + 30, + 43, + 44, + 45, + 46, + 55, + 58, + 59, + 63, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Mckenna[] = +{ + 27, + 29, + 30, + 32, + 36, + 48, + 51, + 52, + 53, + 57, + 67, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Camryn[] = +{ + 5, + 6, + 7, + 8, + 10, + 16, + 17, + 20, + 21, + 37, + 43, + 44, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Natasha[] = +{ + 1, + 3, + 4, + 5, + 9, + 11, + 12, + 20, + 21, + 22, + 51, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Austyn[] = +{ + 25, + 31, + 35, + 37, + 38, + 39, + 50, + 51, + 52, + 58, + 68, + 69, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Donovan[] = +{ + 10, + 16, + 17, + 24, + 25, + 43, + 44, + 47, + 49, + 53, + 59, + 60, + 64, + 65, + -1 +}; + +const u16 gSlateportBattleTentTrainerMons_Tamia[] = +{ + 2, + 6, + 9, + 13, + 17, + 19, + 20, + 24, + 27, + 29, + 30, + -1 +}; + +const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] = +{ + [0] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("JOLIE"), + .speechBefore = {EC_WORD_WHAT, EC_WORD_WILL, EC_WORD_I, EC_WORD_BE, EC_WORD_TOMORROW, EC_WORD_QUES}, + .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_FRIDAY, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_MONDAY, EC_WORD_ELLIPSIS}, + .monSets = gSlateportBattleTentTrainerMons_Jolie + }, + [1] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("MALACHI"), + .speechBefore = {EC_WORD_BAD, EC_WORD_NEWS, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_MOVE(SAND_TOMB)}, + .speechWin = {EC_WORD_YEEHAW_EXCL, -1, -1, EC_WORD_I_VE, EC_WORD_DONE, EC_WORD_IT}, + .speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SAND_TOMB), EC_WORD_ELLIPSIS}, + .monSets = gSlateportBattleTentTrainerMons_Malachi + }, + [2] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("KELSIE"), + .speechBefore = {EC_WORD_GO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL}, + .speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL}, + .monSets = gSlateportBattleTentTrainerMons_Kelsie + }, + [3] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("DAVON"), + .speechBefore = {EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_GREAT, EC_MOVE(WHIRLPOOL), EC_WORD_ISN_T_IT_QUES}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_LIKE, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL}, + .speechLose = {EC_WORD_DON_T, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_IN, EC_WORD_THAT, EC_MOVE(WHIRLPOOL)}, + .monSets = gSlateportBattleTentTrainerMons_Davon + }, + [4] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("GLENDA"), + .speechBefore = {EC_WORD_CONVERSATION, EC_WORD_CAN, EC_WORD_WAIT, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_WIN}, + .speechWin = {EC_WORD_FABULOUS, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ROCK}, + .speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_SERIOUS}, + .monSets = gSlateportBattleTentTrainerMons_Glenda + }, + [5] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("HELENA"), + .speechBefore = {EC_WORD_DOES, EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES}, + .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_BORING}, + .speechLose = {EC_WORD_I, EC_WORD_DO, EC_WORD_SO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_EXCL}, + .monSets = gSlateportBattleTentTrainerMons_Helena + }, + [6] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("RODOLFO"), + .speechBefore = {EC_WORD_GO, EC_WORD_GET, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_FOR, EC_WORD_ME}, + .speechWin = {EC_WORD_AWW, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_HAVE, EC_WORD_A, EC_POKEMON(WHISCASH)}, + .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_BADLY}, + .monSets = gSlateportBattleTentTrainerMons_Rodolfo + }, + [7] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("DAVION"), + .speechBefore = {EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL, EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_MOVE2(ROAR), EC_WORD_EXCL, -1, EC_MOVE2(ROAR), EC_WORD_EXCL_EXCL, -1}, + .speechLose = {EC_WORD_URGH, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, -1, -1, -1}, + .monSets = gSlateportBattleTentTrainerMons_Davion + }, + [8] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("KENDALL"), + .speechBefore = {EC_WORD_A_LITTLE, EC_MOVE2(PETAL_DANCE), EC_WORD_TO, EC_WORD_PLEASE, EC_WORD_YOU, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THIS, EC_WORD_ONLY, EC_WORD_FOR, EC_WORD_WORK}, + .speechLose = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_MOVE2(POUND), EC_WORD_ME, EC_WORD_QUES}, + .monSets = gSlateportBattleTentTrainerMons_Kendall + }, + [9] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("COLTEN"), + .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_RUN, EC_WORD_AROUND}, + .speechWin = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_WANT, EC_WORD_TO, EC_WORD_RUN, EC_WORD_QUES}, + .speechLose = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_GOOD, EC_WORD_TOO}, + .monSets = gSlateportBattleTentTrainerMons_Colten + }, + [10] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("IRVIN"), + .speechBefore = {EC_WORD_HAVE, EC_WORD_A, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE(CONFUSE_RAY)}, + .speechWin = {EC_WORD_YAHOO, EC_WORD_MY, EC_MOVE(CONFUSE_RAY), EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST}, + .speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL}, + .monSets = gSlateportBattleTentTrainerMons_Irvin + }, + [11] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("SHAUN"), + .speechBefore = {EC_WORD_LISTEN, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_GOOD}, + .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_WAS, EC_WORD_RIGHT}, + .speechLose = {EC_WORD_YES, EC_WORD_YES, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_SOMETHING}, + .monSets = gSlateportBattleTentTrainerMons_Shaun + }, + [12] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("KYLER"), + .speechBefore = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_QUES}, + .speechWin = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_YAY}, + .speechLose = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_WOW}, + .monSets = gSlateportBattleTentTrainerMons_Kyler + }, + [13] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("MAGGIE"), + .speechBefore = {EC_POKEMON(VULPIX), EC_POKEMON(XATU), EC_POKEMON2(UMBREON), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_WORD_ELLIPSIS}, + .speechWin = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON(SEVIPER), EC_WORD_EXCL, -1}, + .speechLose = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON2(SNORLAX), EC_WORD_ELLIPSIS, EC_WORD_UH_OH}, + .monSets = gSlateportBattleTentTrainerMons_Maggie + }, + [14] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("STEPHON"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_AN, EC_WORD_EGG}, + .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_VICTORY}, + .speechLose = {EC_WORD_AWFUL, EC_WORD_EXCL_EXCL, -1, EC_WORD_JUST, EC_WORD_AWFUL, EC_WORD_EXCL_EXCL}, + .monSets = gSlateportBattleTentTrainerMons_Stephon + }, + [15] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("REBECCA"), + .speechBefore = {EC_WORD_THAT, EC_WORD_EGG, EC_WORD_HAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_SHINE}, + .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_EXCL, EC_WORD_SMELL, EC_WORD_THAT, EC_WORD_STENCH}, + .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_STOP, EC_WORD_ELLIPSIS}, + .monSets = gSlateportBattleTentTrainerMons_Rebecca + }, + [16] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("REGGIE"), + .speechBefore = {EC_WORD_POKEMON, EC_WORD_COME, EC_WORD_BEFORE, EC_WORD_MONEY, EC_WORD_OR, EC_WORD_FAMILY}, + .speechWin = {EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_STRONG}, + .speechLose = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_THICK, EC_WORD_ELLIPSIS}, + .monSets = gSlateportBattleTentTrainerMons_Reggie + }, + [17] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("JANAE"), + .speechBefore = {EC_WORD_I, EC_WORD_JUST, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_TOUGH, EC_WORD_LOOK}, + .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_HOW, EC_WORD_YOU, EC_MOVE2(STRUGGLE), -1}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MEAN, EC_WORD_AND, EC_WORD_AWFUL, EC_WORD_TRAINER}, + .monSets = gSlateportBattleTentTrainerMons_Janae + }, + [18] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("CAIDEN"), + .speechBefore = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_BREAK, EC_WORD_YOUR, EC_WORD_SPIRIT}, + .speechWin = {EC_MOVE2(CURSE), EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_A, EC_WORD_LIE, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_LAST, EC_WORD_FOREVER, -1}, + .monSets = gSlateportBattleTentTrainerMons_Caiden + }, + [19] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("KIRSTEN"), + .speechBefore = {EC_WORD_HUH_QUES, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_YOU, EC_WORD_SAID, EC_WORD_QUES}, + .speechWin = {EC_WORD_HUH_QUES, EC_WORD_STRONG, EC_WORD_BUT, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH}, + .speechLose = {EC_WORD_HUH_QUES, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_TO, EC_WORD_YOUR, EC_MOVE(STRENGTH)}, + .monSets = gSlateportBattleTentTrainerMons_Kirsten + }, + [20] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("KURTIS"), + .speechBefore = {EC_WORD_SORRY, EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_MOVE2(BEAT_UP)}, + .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_WE, EC_WORD_WOULD, EC_MOVE2(POUND), EC_WORD_YOU}, + .speechLose = {EC_WORD_HOW, EC_WORD_DID, EC_WORD_I, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_QUES}, + .monSets = gSlateportBattleTentTrainerMons_Kurtis + }, + [21] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("STEFAN"), + .speechBefore = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_WANT, EC_WORD_CUTE, EC_WORD_POKEMON, -1}, + .speechWin = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_IT, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_ELLIPSIS, -1}, + .monSets = gSlateportBattleTentTrainerMons_Stefan + }, + [22] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("AVERY"), + .speechBefore = {EC_WORD_TOYS, EC_WORD_EXCL, EC_WORD_I, EC_WORD_NEED, EC_WORD_MORE, EC_WORD_TOYS}, + .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_EASY, EC_WORD_MONEY, EC_WORD_FAST}, + .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_WORK, EC_WORD_FOR, EC_WORD_MONEY}, + .monSets = gSlateportBattleTentTrainerMons_Avery + }, + [23] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("DWANE"), + .speechBefore = {EC_WORD_MMM, EC_WORD_TASTY, EC_WORD_ELLIPSIS, EC_WORD_WONDER, EC_WORD_WHAT, EC_WORD_QUES}, + .speechWin = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW}, + .speechLose = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_OH_YEAH, EC_WORD_THIS_IS_IT_EXCL, -1}, + .monSets = gSlateportBattleTentTrainerMons_Dwane + }, + [24] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("MCKENNA"), + .speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SMALL, EC_WORD_TALK, EC_WORD_LET_S, EC_WORD_GO}, + .speechWin = {EC_WORD_YUP, EC_WORD_THAT_S, EC_WORD_THAT, -1, -1, -1}, + .speechLose = {EC_WORD_KTHX_BYE, -1, -1, -1, -1, -1}, + .monSets = gSlateportBattleTentTrainerMons_Mckenna + }, + [25] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("CAMRYN"), + .speechBefore = {EC_WORD_MR, EC_WORD_JUDGE, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_OUR, EC_WORD_TRUST}, + .speechWin = {EC_WORD_YES_SIR_EXCL, EC_WORD_WE_RE, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THIS, EC_WORD_CONTEST}, + .speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_GIVE_UP, EC_WORD_MY, EC_WORD_IDOL, EC_WORD_DREAM}, + .monSets = gSlateportBattleTentTrainerMons_Camryn + }, + [26] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("NATASHA"), + .speechBefore = {EC_WORD_COME_OVER, EC_WORD_TO, EC_WORD_MY, EC_WORD_PLACE, EC_WORD_OK_QUES, -1}, + .speechWin = {EC_WORD_COME_ON, EC_WORD_OVER, EC_WORD_IT, EC_WORD_WILL, EC_WORD_BE, EC_WORD_GREAT}, + .speechLose = {EC_WORD_AWW, EC_WORD_WON_T, EC_WORD_YOU, EC_WORD_COME_OVER, EC_WORD_QUES, -1}, + .monSets = gSlateportBattleTentTrainerMons_Natasha + }, + [27] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("AUSTYN"), + .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_CARE, EC_WORD_HOW, EC_WORD_WE, EC_WORD_MATCH_UP}, + .speechWin = {EC_WORD_HAH, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_FOR, EC_WORD_YOU}, + .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MY, EC_WORD_LESSONS}, + .monSets = gSlateportBattleTentTrainerMons_Austyn + }, + [28] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("DONOVAN"), + .speechBefore = {EC_WORD_OH, EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SLIMY, EC_WORD_ALL, EC_WORD_OVER}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_THE, EC_MOVE2(MEGA_DRAIN), EC_WORD_HAHAHA}, + .speechLose = {EC_WORD_I_AM, EC_WORD_NATURALLY, EC_WORD_SLIMY, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM}, + .monSets = gSlateportBattleTentTrainerMons_Donovan + }, + [29] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("TAMIA"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_JUST, EC_WORD_SO, EC_WORD_ADORE, EC_WORD_MY, EC_WORD_FATHER}, + .monSets = gSlateportBattleTentTrainerMons_Tamia + } +}; + +const struct FacilityMon gSlateportBattleTentMons[] = +{ + [0] = { + .species = SPECIES_ZIGZAGOON, + .moves = {MOVE_TACKLE, MOVE_CHARM, MOVE_ODOR_SLEUTH, MOVE_PIN_MISSILE}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [1] = { + .species = SPECIES_ZIGZAGOON, + .moves = {MOVE_DIG, MOVE_MUD_SPORT, MOVE_TAIL_WHIP, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [2] = { + .species = SPECIES_BEAUTIFLY, + .moves = {MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_GUST, MOVE_HARDEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [3] = { + .species = SPECIES_DUSTOX, + .moves = {MOVE_POISON_STING, MOVE_MOONLIGHT, MOVE_PROTECT, MOVE_GUST}, + .itemTableId = BATTLE_FRONTIER_ITEM_ORAN_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [4] = { + .species = SPECIES_WAILMER, + .moves = {MOVE_ROLLOUT, MOVE_CURSE, MOVE_GROWL, MOVE_WHIRLPOOL}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [5] = { + .species = SPECIES_WAILMER, + .moves = {MOVE_ROLLOUT, MOVE_GROWL, MOVE_WHIRLPOOL, MOVE_WATER_PULSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [6] = { + .species = SPECIES_MARILL, + .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_TAIL_WHIP, MOVE_BUBBLE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [7] = { + .species = SPECIES_WINGULL, + .moves = {MOVE_SUPERSONIC, MOVE_GROWL, MOVE_WING_ATTACK, MOVE_STEEL_WING}, + .itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAIVE + }, + [8] = { + .species = SPECIES_PELIPPER, + .moves = {MOVE_TWISTER, MOVE_WATER_SPORT, MOVE_GROWL, MOVE_WING_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [9] = { + .species = SPECIES_CACNEA, + .moves = {MOVE_SANDSTORM, MOVE_LEER, MOVE_LEECH_SEED, MOVE_PIN_MISSILE}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SPEED, + .nature = NATURE_JOLLY + }, + [10] = { + .species = SPECIES_LOMBRE, + .moves = {MOVE_ASTONISH, MOVE_WATER_GUN, MOVE_FAKE_OUT, MOVE_ABSORB}, + .itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [11] = { + .species = SPECIES_LOTAD, + .moves = {MOVE_SYNTHESIS, MOVE_NATURE_POWER, MOVE_RAIN_DANCE, MOVE_MEGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_DOCILE + }, + [12] = { + .species = SPECIES_SEEDOT, + .moves = {MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_LEECH_SEED, MOVE_BIDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_TIMID + }, + [13] = { + .species = SPECIES_NUZLEAF, + .moves = {MOVE_FAKE_OUT, MOVE_NATURE_POWER, MOVE_HARDEN, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [14] = { + .species = SPECIES_NINJASK, + .moves = {MOVE_FURY_CUTTER, MOVE_SCREECH, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [15] = { + .species = SPECIES_NINJASK, + .moves = {MOVE_FURY_CUTTER, MOVE_DOUBLE_TEAM, MOVE_SCREECH, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [16] = { + .species = SPECIES_GRAVELER, + .moves = {MOVE_MUD_SPORT, MOVE_BLOCK, MOVE_ROCK_TOMB, MOVE_MAGNITUDE}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [17] = { + .species = SPECIES_BALTOY, + .moves = {MOVE_SELF_DESTRUCT, MOVE_ANCIENT_POWER, MOVE_PSYBEAM, MOVE_REFLECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAIVE + }, + [18] = { + .species = SPECIES_MIGHTYENA, + .moves = {MOVE_BITE, MOVE_ROAR, MOVE_SWAGGER, MOVE_TACKLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [19] = { + .species = SPECIES_MIGHTYENA, + .moves = {MOVE_ODOR_SLEUTH, MOVE_HOWL, MOVE_SAND_ATTACK, MOVE_POISON_FANG}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [20] = { + .species = SPECIES_LINOONE, + .moves = {MOVE_HEADBUTT, MOVE_TICKLE, MOVE_TAIL_WHIP, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [21] = { + .species = SPECIES_GOLDEEN, + .moves = {MOVE_WATER_SPORT, MOVE_HORN_ATTACK, MOVE_WATERFALL, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_CALM + }, + [22] = { + .species = SPECIES_ELECTRIKE, + .moves = {MOVE_BITE, MOVE_SPARK, MOVE_ROAR, MOVE_FLASH}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_MODEST + }, + [23] = { + .species = SPECIES_VOLTORB, + .moves = {MOVE_SPARK, MOVE_ROLLOUT, MOVE_CHARGE, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, + .nature = NATURE_MILD + }, + [24] = { + .species = SPECIES_ARON, + .moves = {MOVE_DIG, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_ENDEAVOR}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [25] = { + .species = SPECIES_ARON, + .moves = {MOVE_MUD_SLAP, MOVE_IRON_TAIL, MOVE_HARDEN, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [26] = { + .species = SPECIES_TRAPINCH, + .moves = {MOVE_BODY_SLAM, MOVE_FOCUS_ENERGY, MOVE_SAND_TOMB, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [27] = { + .species = SPECIES_CACNEA, + .moves = {MOVE_INGRAIN, MOVE_SANDSTORM, MOVE_POISON_STING, MOVE_DESTINY_BOND}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_TIMID + }, + [28] = { + .species = SPECIES_TAILLOW, + .moves = {MOVE_GROWL, MOVE_AERIAL_ACE, MOVE_AGILITY, MOVE_ENDEAVOR}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [29] = { + .species = SPECIES_SWELLOW, + .moves = {MOVE_SUPERSONIC, MOVE_GROWL, MOVE_FOCUS_ENERGY, MOVE_PECK}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [30] = { + .species = SPECIES_GOLBAT, + .moves = {MOVE_ASTONISH, MOVE_GUST, MOVE_MEAN_LOOK, MOVE_CONFUSE_RAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SPELL_TAG, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, + .nature = NATURE_TIMID + }, + [31] = { + .species = SPECIES_LOUDRED, + .moves = {MOVE_ASTONISH, MOVE_SCREECH, MOVE_UPROAR, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [32] = { + .species = SPECIES_SPINDA, + .moves = {MOVE_DIZZY_PUNCH, MOVE_FAINT_ATTACK, MOVE_HYPNOSIS, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [33] = { + .species = SPECIES_MAGNEMITE, + .moves = {MOVE_METAL_SOUND, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SPARK}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_SERIOUS + }, + [34] = { + .species = SPECIES_WHISMUR, + .moves = {MOVE_REST, MOVE_SLEEP_TALK, MOVE_HOWL, MOVE_BODY_SLAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [35] = { + .species = SPECIES_MAKUHITA, + .moves = {MOVE_SAND_ATTACK, MOVE_KNOCK_OFF, MOVE_ARM_THRUST, MOVE_BELLY_DRUM}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [36] = { + .species = SPECIES_NUMEL, + .moves = {MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_GROWL, MOVE_FOCUS_ENERGY}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_MODEST + }, + [37] = { + .species = SPECIES_BARBOACH, + .moves = {MOVE_MAGNITUDE, MOVE_MUD_SPORT, MOVE_WATER_SPORT, MOVE_WATER_GUN}, + .itemTableId = BATTLE_FRONTIER_ITEM_SEA_INCENSE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [38] = { + .species = SPECIES_TENTACOOL, + .moves = {MOVE_SCREECH, MOVE_BUBBLE_BEAM, MOVE_ACID, MOVE_BARRIER}, + .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [39] = { + .species = SPECIES_VIGOROTH, + .moves = {MOVE_FOCUS_ENERGY, MOVE_FURY_SWIPES, MOVE_ENDURE, MOVE_YAWN}, + .itemTableId = BATTLE_FRONTIER_ITEM_AGUAV_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [40] = { + .species = SPECIES_MAGIKARP, + .moves = {MOVE_TACKLE, MOVE_FLAIL, MOVE_SPLASH, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_SCALE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [41] = { + .species = SPECIES_SEVIPER, + .moves = {MOVE_LICK, MOVE_POISON_FANG, MOVE_GLARE, MOVE_WRAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [42] = { + .species = SPECIES_SOLROCK, + .moves = {MOVE_ROCK_THROW, MOVE_HARDEN, MOVE_PSYWAVE, MOVE_TACKLE}, + .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [43] = { + .species = SPECIES_KECLEON, + .moves = {MOVE_PSYBEAM, MOVE_SUBSTITUTE, MOVE_THIEF, MOVE_TAIL_WHIP}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [44] = { + .species = SPECIES_KECLEON, + .moves = {MOVE_FAINT_ATTACK, MOVE_ASTONISH, MOVE_LICK, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_IAPAPA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [45] = { + .species = SPECIES_SHROOMISH, + .moves = {MOVE_STUN_SPORE, MOVE_TACKLE, MOVE_LEECH_SEED, MOVE_MEGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [46] = { + .species = SPECIES_SHROOMISH, + .moves = {MOVE_ABSORB, MOVE_STUN_SPORE, MOVE_SPORE, MOVE_LEECH_SEED}, + .itemTableId = BATTLE_FRONTIER_ITEM_FIGY_BERRY, + .evSpread = F_EV_SPREAD_ATTACK, + .nature = NATURE_BRAVE + }, + [47] = { + .species = SPECIES_LOMBRE, + .moves = {MOVE_NATURE_POWER, MOVE_ASTONISH, MOVE_GROWL, MOVE_ABSORB}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_LONELY + }, + [48] = { + .species = SPECIES_NUMEL, + .moves = {MOVE_EMBER, MOVE_GROWL, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [49] = { + .species = SPECIES_TRAPINCH, + .moves = {MOVE_FAINT_ATTACK, MOVE_DIG, MOVE_BITE, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [50] = { + .species = SPECIES_PELIPPER, + .moves = {MOVE_WING_ATTACK, MOVE_SUPERSONIC, MOVE_MIST, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_WIKI_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [51] = { + .species = SPECIES_WINGULL, + .moves = {MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_GROWL, MOVE_ICY_WIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [52] = { + .species = SPECIES_MARILL, + .moves = {MOVE_DOUBLE_EDGE, MOVE_RAIN_DANCE, MOVE_TAIL_WHIP, MOVE_WATER_GUN}, + .itemTableId = BATTLE_FRONTIER_ITEM_GANLON_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [53] = { + .species = SPECIES_SKITTY, + .moves = {MOVE_ASSIST, MOVE_ATTRACT, MOVE_SING, MOVE_CHARM}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [54] = { + .species = SPECIES_SEVIPER, + .moves = {MOVE_SWAGGER, MOVE_WRAP, MOVE_POISON_TAIL, MOVE_HAZE}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, + .nature = NATURE_BRAVE + }, + [55] = { + .species = SPECIES_GOLBAT, + .moves = {MOVE_BITE, MOVE_TORMENT, MOVE_SCREECH, MOVE_POISON_FANG}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_HARDY + }, + [56] = { + .species = SPECIES_RALTS, + .moves = {MOVE_HYPNOSIS, MOVE_IMPRISON, MOVE_PSYCHIC, MOVE_DREAM_EATER}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGO_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_TIMID + }, + [57] = { + .species = SPECIES_SANDSHREW, + .moves = {MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_SAND_TOMB, MOVE_DEFENSE_CURL}, + .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, + .evSpread = 0, + .nature = NATURE_HARDY + }, + [58] = { + .species = SPECIES_SWALOT, + .moves = {MOVE_YAWN, MOVE_SLUDGE, MOVE_ENCORE, MOVE_POUND}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_IMPISH + }, + [59] = { + .species = SPECIES_VOLBEAT, + .moves = {MOVE_TACKLE, MOVE_CONFUSE_RAY, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [60] = { + .species = SPECIES_ILLUMISE, + .moves = {MOVE_CHARM, MOVE_TACKLE, MOVE_ENCORE, MOVE_MOONLIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [61] = { + .species = SPECIES_KADABRA, + .moves = {MOVE_DISABLE, MOVE_CONFUSION, MOVE_REFLECT, MOVE_RECOVER}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [62] = { + .species = SPECIES_KIRLIA, + .moves = {MOVE_CALM_MIND, MOVE_CONFUSION, MOVE_DOUBLE_TEAM, MOVE_GROWL}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [63] = { + .species = SPECIES_BRELOOM, + .moves = {MOVE_ABSORB, MOVE_TACKLE, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAIVE + }, + [64] = { + .species = SPECIES_PLUSLE, + .moves = {MOVE_SPARK, MOVE_ENCORE, MOVE_THUNDER_WAVE, MOVE_GROWL}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_LONELY + }, + [65] = { + .species = SPECIES_PLUSLE, + .moves = {MOVE_SPARK, MOVE_FAKE_TEARS, MOVE_SUBSTITUTE, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MILD + }, + [66] = { + .species = SPECIES_ELECTRIKE, + .moves = {MOVE_SPARK, MOVE_CHARGE, MOVE_ROAR, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_APICOT_BERRY, + .evSpread = F_EV_SPREAD_SPEED, + .nature = NATURE_TIMID + }, + [67] = { + .species = SPECIES_SWABLU, + .moves = {MOVE_SING, MOVE_PECK, MOVE_STEEL_WING, MOVE_SAFEGUARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [68] = { + .species = SPECIES_MACHOP, + .moves = {MOVE_FOCUS_ENERGY, MOVE_VITAL_THROW, MOVE_SEISMIC_TOSS, MOVE_FORESIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [69] = { + .species = SPECIES_MACHOKE, + .moves = {MOVE_FOCUS_ENERGY, MOVE_LEER, MOVE_KARATE_CHOP, MOVE_FORESIGHT}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + } +}; + +// Verdanturf Battle Tent. +const u16 gVerdanturfBattleTentTrainerMons_Brenna[] = +{ + 4, + 11, + 13, + 18, + 26, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Dilan[] = +{ + 30, + 37, + 13, + 29, + 42, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Eliana[] = +{ + 6, + 7, + 17, + 18, + 40, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Markus[] = +{ + 6, + 7, + 18, + 24, + 38, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Caitlyn[] = +{ + 0, + 12, + 25, + 28, + 22, + 44, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Desiree[] = +{ + 8, + 12, + 21, + 22, + 31, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Ronald[] = +{ + 1, + 20, + 23, + 25, + 32, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Ashten[] = +{ + 9, + 12, + 27, + 37, + 43, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Gerard[] = +{ + 36, + 7, + 34, + 6, + 40, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Bradly[] = +{ + 26, + 3, + 0, + 2, + 17, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Dennis[] = +{ + 14, + 37, + 2, + 38, + 27, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Prestin[] = +{ + 31, + 28, + 22, + 25, + 44, + 43, + 41, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Ernesto[] = +{ + 33, + 32, + 25, + 35, + 34, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Nala[] = +{ + 1, + 4, + 8, + 11, + 17, + 40, + 34, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Darnell[] = +{ + 0, + 29, + 35, + 37, + 39, + 43, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Ashlyn[] = +{ + 29, + 36, + 32, + 30, + 17, + 6, + 44, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Addison[] = +{ + 0, + 1, + 16, + 31, + 6, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Justine[] = +{ + 0, + 1, + 16, + 36, + 18, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Tyson[] = +{ + 5, + 15, + 22, + 30, + 16, + 39, + 43, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Laila[] = +{ + 5, + 15, + 19, + 24, + 41, + 43, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Waren[] = +{ + 0, + 9, + 10, + 11, + 23, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Tobias[] = +{ + 6, + 7, + 24, + 38, + 40, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Josiah[] = +{ + 8, + 16, + 23, + 34, + 3, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Dion[] = +{ + 14, + 2, + 11, + 39, + 21, + 38, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Kenzie[] = +{ + 18, + 10, + 16, + 26, + 25, + 27, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Lillian[] = +{ + 24, + 34, + 36, + 38, + 5, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Lesley[] = +{ + 26, + 0, + 18, + 13, + 25, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Marquis[] = +{ + 24, + 34, + 5, + 15, + 7, + 42, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Freddy[] = +{ + 18, + 21, + 26, + 29, + 41, + -1 +}; + +const u16 gVerdanturfBattleTentTrainerMons_Cecilia[] = +{ + 23, + 26, + 27, + 28, + 31, + -1 +}; + +const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] = +{ + [0] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("BRENNA"), + .speechBefore = {EC_WORD_NO, EC_WORD_DAYS, EC_WORD_GO, EC_WORD_WITHOUT, EC_WORD_MY, EC_MOVE(FAKE_TEARS)}, + .speechWin = {EC_WORD_OH, EC_WORD_THAT_WAS, EC_WORD_SO, EC_WORD_REFRESHING, EC_WORD_EXCL, -1}, + .speechLose = {EC_WORD_ALL, EC_WORD_I, EC_WORD_EVER, EC_WORD_GET, EC_WORD_IS, EC_MOVE(TORMENT)}, + .monSets = gVerdanturfBattleTentTrainerMons_Brenna + }, + [1] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("DILAN"), + .speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_BORED, EC_WORD_I_AM}, + .speechWin = {EC_WORD_LOSING, EC_WORD_ISN_T, EC_WORD_EXCITING, EC_WORD_AT, EC_WORD_ALL, EC_WORD_ELLIPSIS}, + .speechLose = {EC_WORD_EXCITING, EC_WORD_EXCL_EXCL, EC_WORD_BYE_BYE, EC_WORD_TO, EC_WORD_BEING, EC_WORD_BORED}, + .monSets = gVerdanturfBattleTentTrainerMons_Dilan + }, + [2] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("ELIANA"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_ON, EC_WORD_A, EC_WORD_VACATION, EC_WORD_SOON}, + .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_GET, EC_WORD_SOME, EC_WORD_MONEY}, + .speechLose = {EC_WORD_NO, EC_WORD_SLEEP, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_GET, EC_WORD_HOME}, + .monSets = gVerdanturfBattleTentTrainerMons_Eliana + }, + [3] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("MARKUS"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_SMART, EC_WORD_EXCL, EC_WORD_IF_I_LOSE, EC_WORD_I, EC_MOVE(SELF_DESTRUCT)}, + .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_NON_STOP, EC_MOVE2(EXPLOSION), EC_WORD_OF, EC_WORD_JOY}, + .speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_ELLIPSIS, EC_WORD_TIME, EC_WORD_TO, EC_MOVE(SELF_DESTRUCT)}, + .monSets = gVerdanturfBattleTentTrainerMons_Markus + }, + [4] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("CAITLYN"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_OF, EC_WORD_BEING, EC_WORD_AN, EC_WORD_IDOL}, + .speechWin = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_BEST, EC_WORD_FOR, EC_WORD_HAPPINESS}, + .speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, EC_WORD_AT, EC_WORD_ALL}, + .monSets = gVerdanturfBattleTentTrainerMons_Caitlyn + }, + [5] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("DESIREE"), + .speechBefore = {EC_WORD_DOESN_T, EC_WORD_MY, EC_WORD_BEAUTY, EC_MOVE(ASTONISH), EC_WORD_YOU, EC_WORD_QUES}, + .speechWin = {EC_WORD_DID, EC_WORD_I, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES, -1}, + .speechLose = {EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_DID, EC_WORD_NOTHING, EC_WORD_FOR, EC_WORD_YOU}, + .monSets = gVerdanturfBattleTentTrainerMons_Desiree + }, + [6] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("RONALD"), + .speechBefore = {EC_WORD_COME_ON, EC_WORD_I, EC_WORD_WILL, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, -1}, + .speechWin = {EC_WORD_GIVE_UP, EC_WORD_QUES, -1, EC_WORD_THAT_S, EC_WORD_REALLY, EC_WORD_WEAK}, + .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE2(BATON_PASS)}, + .monSets = gVerdanturfBattleTentTrainerMons_Ronald + }, + [7] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("ASHTEN"), + .speechBefore = {EC_WORD_OH_YEAH, EC_WORD_ANOTHER, EC_WORD_EXCITING, EC_WORD_BATTLE, EC_WORD_EXCL, -1}, + .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WIMPY, EC_WORD_AND, EC_WORD_BORING}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_LOSS, EC_WORD_WOW, EC_WORD_EXCL}, + .monSets = gVerdanturfBattleTentTrainerMons_Ashten + }, + [8] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("GERARD"), + .speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_SUPER, EC_MOVE2(TEETER_DANCE), EC_WORD_EXCL}, + .speechWin = {EC_WORD_THAT_WAS, EC_WORD_HARD, EC_WORD_ELLIPSIS, EC_WORD_AM, EC_WORD_I, EC_WORD_OK_QUES}, + .speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGIVE, EC_WORD_YOU, EC_WORD_FOR, EC_WORD_THAT}, + .monSets = gVerdanturfBattleTentTrainerMons_Gerard + }, + [9] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("BRADLY"), + .speechBefore = {EC_WORD_IT_S, EC_WORD_LONESOME, EC_WORD_BUT, EC_WORD_I, EC_WORD_VACATION, EC_WORD_ALONE}, + .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(WITHDRAW), EC_WORD_INSIDE, EC_WORD_MY, EC_WORD_SHELL_ARMOR}, + .speechLose = {EC_WORD_OH, EC_WORD_ELLIPSIS, -1, EC_WORD_ALONE, EC_WORD_AS, EC_WORD_ALWAYS}, + .monSets = gVerdanturfBattleTentTrainerMons_Bradly + }, + [10] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("DENNIS"), + .speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_STRONG, EC_WORD_QUES, -1}, + .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, -1, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL, -1}, + .speechLose = {EC_WORD_NICE, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WAS, EC_WORD_CHILD_S_PLAY}, + .monSets = gVerdanturfBattleTentTrainerMons_Dennis + }, + [11] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("PRESTIN"), + .speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_FOR, EC_WORD_YOU}, + .speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_A, EC_WORD_DREAM}, + .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_WAKE_UP, EC_WORD_FROM, EC_WORD_THIS}, + .monSets = gVerdanturfBattleTentTrainerMons_Prestin + }, + [12] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("ERNESTO"), + .speechBefore = {EC_WORD_THIS, EC_WORD_PARTY, EC_WORD_GOES, EC_WORD_ON, EC_WORD_FOREVER, EC_WORD_EXCL}, + .speechWin = {EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_PLAYS, EC_WORD_ON, EC_WORD_WITHOUT, EC_WORD_END}, + .speechLose = {EC_WORD_NO, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_CAN_T, EC_WORD_STOP}, + .monSets = gVerdanturfBattleTentTrainerMons_Ernesto + }, + [13] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("NALA"), + .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_THE, EC_WORD_WORLD, EC_WORD_MOVIE, EC_WORD_COLLECTION}, + .speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_LIKE, EC_WORD_RADIO, EC_WORD_VERY, EC_WORD_MUCH}, + .speechLose = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_EXCL}, + .monSets = gVerdanturfBattleTentTrainerMons_Nala + }, + [14] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("DARNELL"), + .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO_EASY, EC_WORD_ON, EC_WORD_YOU, -1}, + .speechWin = {EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_HIDDEN, EC_WORD_AWAY}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_TAKE, EC_WORD_ELLIPSIS}, + .monSets = gVerdanturfBattleTentTrainerMons_Darnell + }, + [15] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("ASHLYN"), + .speechBefore = {EC_WORD_I, EC_WORD_LOOK, EC_WORD_TOUGH, EC_WORD_DO, EC_WORD_I, EC_WORD_QUES}, + .speechWin = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OVER, EC_WORD_YOUR, EC_MOVE2(TAUNT), EC_WORD_YET}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_EXCL_EXCL, -1, -1, -1}, + .monSets = gVerdanturfBattleTentTrainerMons_Ashlyn + }, + [16] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("ADDISON"), + .speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL}, + .speechWin = {EC_WORD_WELL, EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_EASY, EC_WORD_QUES, -1}, + .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, -1, EC_WORD_BUT, EC_WORD_WHY, EC_WORD_QUES}, + .monSets = gVerdanturfBattleTentTrainerMons_Addison + }, + [17] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("JUSTINE"), + .speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_COME_ON, EC_WORD_I_AM, EC_WORD_READY}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_GOOD, EC_WORD_ENOUGH, EC_WORD_EXCL}, + .speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL_EXCL, -1, -1, -1, -1}, + .monSets = gVerdanturfBattleTentTrainerMons_Justine + }, + [18] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("TYSON"), + .speechBefore = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_PRESSURE, EC_WORD_ME, EC_WORD_QUES}, + .speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_EXCL}, + .speechLose = {EC_WORD_THIS, EC_WORD_DOESN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY, EC_WORD_EXCL}, + .monSets = gVerdanturfBattleTentTrainerMons_Tyson + }, + [19] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("LAILA"), + .speechBefore = {EC_WORD_A, EC_MOVE2(STRUGGLE), EC_WORD_ISN_T, EC_WORD_VERY, EC_WORD_COOL, -1}, + .speechWin = {EC_WORD_NOPE, EC_WORD_NOT_VERY, EC_WORD_COOL, EC_WORD_AT, EC_WORD_ALL, EC_WORD_EXCL}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_COOL, EC_WORD_BUT, EC_WORD_YOU, EC_WORD_WON}, + .monSets = gVerdanturfBattleTentTrainerMons_Laila + }, + [20] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("WAREN"), + .speechBefore = {EC_WORD_DANGER, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_SENSE, EC_WORD_DANGER}, + .speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_BELIEVE, EC_WORD_MY, EC_WORD_LIE, EC_WORD_QUES_EXCL}, + .speechLose = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DID, EC_WORD_SENSE, EC_WORD_DANGER, EC_WORD_ELLIPSIS}, + .monSets = gVerdanturfBattleTentTrainerMons_Waren + }, + [21] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("TOBIAS"), + .speechBefore = {EC_MOVE2(BARRIER), EC_WORD_EXCL_EXCL, -1, EC_WORD_NOW, EC_WORD_COME_ON, EC_WORD_EXCL}, + .speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES}, + .speechLose = {EC_WORD_I, EC_WORD_SHOULD, EC_WORD_KNOW, EC_WORD_THAT, EC_WORD_IT_S, EC_WORD_HOPELESS}, + .monSets = gVerdanturfBattleTentTrainerMons_Tobias + }, + [22] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("JOSIAH"), + .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_IF_I_LOSE, -1}, + .speechWin = {EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, -1, EC_WORD_YOU, EC_MOVE(FLY), EC_WORD_INSTEAD}, + .speechLose = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_SOMETIME, EC_WORD_SOON}, + .monSets = gVerdanturfBattleTentTrainerMons_Josiah + }, + [23] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("DION"), + .speechBefore = {EC_WORD_IT_S, EC_WORD_TRENDY, EC_WORD_UM, EC_WORD_BATTLE, EC_WORD_SOMETHING, -1}, + .speechWin = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_DATE, EC_WORD_QUES}, + .speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_GOURMET, EC_WORD_QUES}, + .monSets = gVerdanturfBattleTentTrainerMons_Dion + }, + [24] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("KENZIE"), + .speechBefore = {EC_WORD_THE, EC_MOVE(MORNING_SUN), EC_WORD_GIVES, EC_WORD_ME, EC_MOVE(STRENGTH), -1}, + .speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_LIKE, EC_MOVE2(MOONLIGHT), EC_WORD_TOO, -1}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TERRIBLE, EC_MOVE(SANDSTORM), EC_WORD_ELLIPSIS}, + .monSets = gVerdanturfBattleTentTrainerMons_Kenzie + }, + [25] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("LILLIAN"), + .speechBefore = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_WORD_MY, EC_WORD_OWN_TEMPO}, + .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_QUES, EC_WORD_WHAT, EC_WORD_A, EC_WORD_SURPRISE}, + .speechLose = {EC_WORD_AWW, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_NAP}, + .monSets = gVerdanturfBattleTentTrainerMons_Lillian + }, + [26] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("LESLEY"), + .speechBefore = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_LOLLING, EC_WORD_ABOUT}, + .speechWin = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_GET, EC_WORD_UP, EC_WORD_EARLIER, -1}, + .speechLose = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_EXCL}, + .monSets = gVerdanturfBattleTentTrainerMons_Lesley + }, + [27] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("MARQUIS"), + .speechBefore = {EC_WORD_NONE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_SENSE}, + .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THIS, EC_WORD_JUST, EC_WORD_ISN_T, EC_WORD_NORMAL}, + .speechLose = {EC_WORD_SHOULD, EC_WORD_I, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_QUES}, + .monSets = gVerdanturfBattleTentTrainerMons_Marquis + }, + [28] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("FREDDY"), + .speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_THIS, EC_WORD_CUTE, EC_WORD_TELEVISION, EC_WORD_IDOL}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_SO, EC_WORD_FUNNY, EC_WORD_WHEN, EC_WORD_YOU_RE, EC_WORD_ANGRY}, + .speechLose = {EC_WORD_LATE, EC_WORD_NIGHT, EC_WORD_TELEVISION, EC_WORD_IS, EC_WORD_MY, EC_WORD_LIFE}, + .monSets = gVerdanturfBattleTentTrainerMons_Freddy + }, + [29] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("CECILIA"), + .speechBefore = {EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_CUTENESS, EC_WORD_IS, EC_WORD_IN, EC_WORD_FASHION}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_NO, EC_WORD_MATCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_CUTE_CHARM}, + .speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_QUES}, + .monSets = gVerdanturfBattleTentTrainerMons_Cecilia + } +}; + +const struct FacilityMon gVerdanturfBattleTentMons[] = +{ + [0] = { + .species = SPECIES_POOCHYENA, + .moves = {MOVE_ROAR, MOVE_THIEF, MOVE_BITE, MOVE_HOWL}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [1] = { + .species = SPECIES_ZIGZAGOON, + .moves = {MOVE_COVET, MOVE_GROWL, MOVE_PIN_MISSILE, MOVE_MUD_SPORT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [2] = { + .species = SPECIES_DUSTOX, + .moves = {MOVE_CONFUSION, MOVE_MOONLIGHT, MOVE_PROTECT, MOVE_FLASH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, + .nature = NATURE_MODEST + }, + [3] = { + .species = SPECIES_TAILLOW, + .moves = {MOVE_AGILITY, MOVE_DOUBLE_TEAM, MOVE_WING_ATTACK, MOVE_GROWL}, + .itemTableId = BATTLE_FRONTIER_ITEM_ORAN_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [4] = { + .species = SPECIES_SHROOMISH, + .moves = {MOVE_HEADBUTT, MOVE_STUN_SPORE, MOVE_LEECH_SEED, MOVE_FLASH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_RASH + }, + [5] = { + .species = SPECIES_MACHOP, + .moves = {MOVE_LOW_KICK, MOVE_LEER, MOVE_FOCUS_ENERGY, MOVE_ENCORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_LONELY + }, + [6] = { + .species = SPECIES_MAGIKARP, + .moves = {MOVE_SPLASH, MOVE_FLAIL, MOVE_TACKLE, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [7] = { + .species = SPECIES_BARBOACH, + .moves = {MOVE_MUD_SLAP, MOVE_WATER_GUN, MOVE_RAIN_DANCE, MOVE_SPARK}, + .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, + .evSpread = F_EV_SPREAD_SPEED, + .nature = NATURE_HASTY + }, + [8] = { + .species = SPECIES_WINGULL, + .moves = {MOVE_ATTRACT, MOVE_TWISTER, MOVE_WING_ATTACK, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_IMPISH + }, + [9] = { + .species = SPECIES_ARON, + .moves = {MOVE_ENDEAVOR, MOVE_METAL_CLAW, MOVE_TACKLE, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_HARDY + }, + [10] = { + .species = SPECIES_NUMEL, + .moves = {MOVE_EMBER, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_GROWL}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_SASSY + }, + [11] = { + .species = SPECIES_SWALOT, + .moves = {MOVE_YAWN, MOVE_SLUDGE, MOVE_ACID_ARMOR, MOVE_AMNESIA}, + .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [12] = { + .species = SPECIES_KECLEON, + .moves = {MOVE_SUBSTITUTE, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_BIND}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIET + }, + [13] = { + .species = SPECIES_BALTOY, + .moves = {MOVE_SANDSTORM, MOVE_FLASH, MOVE_SELF_DESTRUCT, MOVE_HARDEN}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [14] = { + .species = SPECIES_NINJASK, + .moves = {MOVE_DIG, MOVE_SCREECH, MOVE_SWORDS_DANCE, MOVE_LEECH_LIFE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [15] = { + .species = SPECIES_MAKUHITA, + .moves = {MOVE_BULK_UP, MOVE_ARM_THRUST, MOVE_SMELLING_SALT, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [16] = { + .species = SPECIES_SWABLU, + .moves = {MOVE_REFRESH, MOVE_SAFEGUARD, MOVE_ATTRACT, MOVE_MIRROR_MOVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MILD + }, + [17] = { + .species = SPECIES_GOLDEEN, + .moves = {MOVE_WATERFALL, MOVE_MUD_SPORT, MOVE_SUPERSONIC, MOVE_DOUBLE_TEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_GENTLE + }, + [18] = { + .species = SPECIES_LOTAD, + .moves = {MOVE_GROWL, MOVE_WATER_GUN, MOVE_MEGA_DRAIN, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_IAPAPA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [19] = { + .species = SPECIES_NUMEL, + .moves = {MOVE_MAGNITUDE, MOVE_EMBER, MOVE_GROWL, MOVE_DEFENSE_CURL}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_RELAXED + }, + [20] = { + .species = SPECIES_LINOONE, + .moves = {MOVE_HEADBUTT, MOVE_TICKLE, MOVE_PROTECT, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [21] = { + .species = SPECIES_SEVIPER, + .moves = {MOVE_WRAP, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SWAGGER}, + .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [22] = { + .species = SPECIES_SKARMORY, + .moves = {MOVE_AIR_CUTTER, MOVE_SANDSTORM, MOVE_LEER, MOVE_AGILITY}, + .itemTableId = BATTLE_FRONTIER_ITEM_MACHO_BRACE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_BASHFUL + }, + [23] = { + .species = SPECIES_SWELLOW, + .moves = {MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [24] = { + .species = SPECIES_GOLDEEN, + .moves = {MOVE_PECK, MOVE_SUPERSONIC, MOVE_PSYBEAM, MOVE_RAIN_DANCE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_GENTLE + }, + [25] = { + .species = SPECIES_ELECTRIKE, + .moves = {MOVE_SHOCK_WAVE, MOVE_TACKLE, MOVE_CHARGE, MOVE_THUNDER_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_MILD + }, + [26] = { + .species = SPECIES_NUZLEAF, + .moves = {MOVE_SUNNY_DAY, MOVE_TORMENT, MOVE_FAKE_OUT, MOVE_THIEF}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [27] = { + .species = SPECIES_ARON, + .moves = {MOVE_TAKE_DOWN, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [28] = { + .species = SPECIES_MIGHTYENA, + .moves = {MOVE_HOWL, MOVE_TAKE_DOWN, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [29] = { + .species = SPECIES_SOLROCK, + .moves = {MOVE_HARDEN, MOVE_FIRE_SPIN, MOVE_MIMIC, MOVE_PSYWAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [30] = { + .species = SPECIES_GRAVELER, + .moves = {MOVE_ROLLOUT, MOVE_ROCK_SMASH, MOVE_SANDSTORM, MOVE_BLOCK}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_IMPISH + }, + [31] = { + .species = SPECIES_KADABRA, + .moves = {MOVE_ENCORE, MOVE_PSYBEAM, MOVE_DISABLE, MOVE_KINESIS}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [32] = { + .species = SPECIES_VOLTORB, + .moves = {MOVE_PROTECT, MOVE_SELF_DESTRUCT, MOVE_SPARK, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_BASHFUL + }, + [33] = { + .species = SPECIES_MAGNEMITE, + .moves = {MOVE_METAL_SOUND, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_SERIOUS + }, + [34] = { + .species = SPECIES_PELIPPER, + .moves = {MOVE_WING_ATTACK, MOVE_MIST, MOVE_AGILITY, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_FIGY_BERRY, + .evSpread = 0, + .nature = NATURE_BRAVE + }, + [35] = { + .species = SPECIES_LOUDRED, + .moves = {MOVE_HOWL, MOVE_UPROAR, MOVE_REST, MOVE_SCREECH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CALM + }, + [36] = { + .species = SPECIES_MARILL, + .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_TAIL_WHIP, MOVE_BUBBLE_BEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [37] = { + .species = SPECIES_TRAPINCH, + .moves = {MOVE_DIG, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_FAINT_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_NONE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_NAUGHTY + }, + [38] = { + .species = SPECIES_TENTACOOL, + .moves = {MOVE_SCREECH, MOVE_CONFUSE_RAY, MOVE_WRAP, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [39] = { + .species = SPECIES_VIGOROTH, + .moves = {MOVE_ENCORE, MOVE_SLACK_OFF, MOVE_YAWN, MOVE_SECRET_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [40] = { + .species = SPECIES_WAILMER, + .moves = {MOVE_WATER_PULSE, MOVE_ROLLOUT, MOVE_CURSE, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, + .evSpread = F_EV_SPREAD_HP, + .nature = NATURE_RELAXED + }, + [41] = { + .species = SPECIES_ILLUMISE, + .moves = {MOVE_TACKLE, MOVE_SWEET_SCENT, MOVE_WISH, MOVE_ENCORE}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [42] = { + .species = SPECIES_MACHOKE, + .moves = {MOVE_LEER, MOVE_KARATE_CHOP, MOVE_BULK_UP, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_CALM + }, + [43] = { + .species = SPECIES_WHISMUR, + .moves = {MOVE_SECRET_POWER, MOVE_SUPERSONIC, MOVE_STOMP, MOVE_ROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_QUIRKY + }, + [44] = { + .species = SPECIES_CACNEA, + .moves = {MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_NEEDLE_ARM, MOVE_GROWTH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SERIOUS + } +}; + +// Fallarbor Battle Tent. +const u16 gFallarborBattleTentTrainerMons_Amber[] = +{ + 39, + 40, + 41, + 42, + 43, + 44, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Javier[] = +{ + 6, + 35, + 36, + 37, + 38, + 44, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Natalie[] = +{ + 5, + 29, + 30, + 32, + 34, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Treve[] = +{ + 28, + 29, + 30, + 32, + 33, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Arianna[] = +{ + 18, + 23, + 24, + 27, + 44, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Jadyn[] = +{ + 0, + 22, + 24, + 27, + 32, + 39, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Gerardo[] = +{ + 6, + 18, + 23, + 24, + 29, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Jonn[] = +{ + 16, + 17, + 21, + 22, + 37, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Esteban[] = +{ + 5, + 28, + 30, + 33, + 42, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Jameson[] = +{ + 1, + 2, + 3, + 5, + 9, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Alanzo[] = +{ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Howard[] = +{ + 18, + 23, + 31, + 38, + 43, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Conrad[] = +{ + 18, + 19, + 20, + 21, + 22, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Makenna[] = +{ + 4, + 21, + 25, + 36, + 40, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Brayan[] = +{ + 0, + 4, + 6, + 12, + 19, + 23, + 28, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Mariana[] = +{ + 0, + 4, + 13, + 19, + 28, + 30, + 37, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Sheldon[] = +{ + 2, + 3, + 21, + 31, + 39, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Gianna[] = +{ + 1, + 2, + 30, + 32, + 41, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Yahir[] = +{ + 4, + 8, + 15, + 17, + 22, + 24, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Britney[] = +{ + 4, + 7, + 14, + 20, + 23, + 43, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Hecter[] = +{ + 0, + 1, + 2, + 5, + 9, + 35, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Tannor[] = +{ + 5, + 30, + 31, + 33, + 34, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Benji[] = +{ + 25, + 26, + 27, + 28, + 29, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Rory[] = +{ + 9, + 11, + 14, + 15, + 27, + 39, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Eleanor[] = +{ + 23, + 28, + 31, + 36, + 38, + 42, + 44, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Evelyn[] = +{ + 29, + 31, + 32, + 33, + 34, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Arielle[] = +{ + 1, + 3, + 38, + 39, + 41, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Connar[] = +{ + 7, + 8, + 28, + 29, + 31, + 32, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Maurice[] = +{ + 4, + 5, + 6, + 12, + 13, + -1 +}; + +const u16 gFallarborBattleTentTrainerMons_Kianna[] = +{ + 22, + 24, + 26, + 27, + 34, + 37, + -1 +}; + +const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] = +{ + [0] = { + .facilityClass = FACILITY_CLASS_AROMA_LADY, + .trainerName = _("AMBER"), + .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DIET, EC_WORD_EVERY, EC_WORD_DAY}, + .speechWin = {EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_OF, EC_WORD_SWEETS, EC_WORD_SHOCKED, EC_WORD_ME}, + .speechLose = {EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_LOSE}, + .monSets = gFallarborBattleTentTrainerMons_Amber + }, + [1] = { + .facilityClass = FACILITY_CLASS_RUIN_MANIAC, + .trainerName = _("JAVIER"), + .speechBefore = {EC_WORD_I, EC_WORD_NEVER, EC_WORD_EVER, EC_WORD_HAVE, EC_WORD_ENOUGH, EC_WORD_MONEY}, + .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY}, + .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY, EC_WORD_FOR, EC_WORD_A, EC_WORD_BIKE}, + .monSets = gFallarborBattleTentTrainerMons_Javier + }, + [2] = { + .facilityClass = FACILITY_CLASS_TUBER_F, + .trainerName = _("NATALIE"), + .speechBefore = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_I, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_WEIRD}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_THIS, EC_WORD_PLACE}, + .speechLose = {EC_WORD_GIVE_ME, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH, EC_WORD_NEXT, EC_WORD_TIME}, + .monSets = gFallarborBattleTentTrainerMons_Natalie + }, + [3] = { + .facilityClass = FACILITY_CLASS_TUBER_M, + .trainerName = _("TREVE"), + .speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE2(METRONOME), EC_WORD_AND, EC_WORD_SLEEP}, + .speechWin = {EC_WORD_YEAH, EC_WORD_EXCL, EC_MOVE(HYPNOSIS), EC_WORD_IS, EC_WORD_TOTALLY, EC_WORD_GREAT}, + .speechLose = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_ELLIPSIS, -1}, + .monSets = gFallarborBattleTentTrainerMons_Treve + }, + [4] = { + .facilityClass = FACILITY_CLASS_LADY, + .trainerName = _("ARIANNA"), + .speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_GIVE_ME, EC_WORD_POKEMON, EC_WORD_FOR, EC_WORD_MY, EC_WORD_COLLECTION}, + .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_COLLECT}, + .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SOMETHING, EC_WORD_ELSE, EC_WORD_ELLIPSIS}, + .monSets = gFallarborBattleTentTrainerMons_Arianna + }, + [5] = { + .facilityClass = FACILITY_CLASS_BEAUTY, + .trainerName = _("JADYN"), + .speechBefore = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_A, EC_WORD_MYSTERY}, + .speechWin = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_GOES, EC_WORD_ON, EC_WORD_A, EC_WORD_MYSTERY}, + .speechLose = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_YOUR, EC_WORD_MOTHER}, + .monSets = gFallarborBattleTentTrainerMons_Jadyn + }, + [6] = { + .facilityClass = FACILITY_CLASS_RICH_BOY, + .trainerName = _("GERARDO"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST, EC_WORD_HERO, EC_WORD_EVER, EC_WORD_EXCL}, + .speechWin = {EC_WORD_SEE, EC_WORD_WHAT, EC_WORD_I, EC_WORD_MEAN, EC_WORD_QUES, -1}, + .speechLose = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_WERE, EC_WORD_RIGHT, EC_WORD_QUES, -1}, + .monSets = gFallarborBattleTentTrainerMons_Gerardo + }, + [7] = { + .facilityClass = FACILITY_CLASS_POKEMANIAC, + .trainerName = _("JONN"), + .speechBefore = {EC_WORD_THE, EC_WORD_WORLD, EC_MOVE2(SUPERPOWER), EC_MOVE2(STOMP), EC_WORD_CONTEST, EC_WORD_EXCL_EXCL}, + .speechWin = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_EXCL_EXCL, EC_WORD_HEAR, EC_WORD_ME, EC_MOVE2(ROAR)}, + .speechLose = {EC_WORD_I, EC_WORD_GIVE_UP, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_NO_1, EC_WORD_EXCL}, + .monSets = gFallarborBattleTentTrainerMons_Jonn + }, + [8] = { + .facilityClass = FACILITY_CLASS_SWIMMER_M, + .trainerName = _("ESTEBAN"), + .speechBefore = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_GOOD, EC_WORD_TRAINER, EC_WORD_QUES, EC_WORD_UNBELIEVABLE}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_PUSHOVER, EC_WORD_OF, EC_WORD_A, EC_WORD_TRAINER}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_ME}, + .monSets = gFallarborBattleTentTrainerMons_Esteban + }, + [9] = { + .facilityClass = FACILITY_CLASS_CAMPER, + .trainerName = _("JAMESON"), + .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_EXCL}, + .speechWin = {EC_WORD_MY, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_POKEMON, EC_WORD_RULE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(STRUGGLE), EC_WORD_IN, EC_WORD_YOUR, EC_WORD_STICKY_HOLD}, + .monSets = gFallarborBattleTentTrainerMons_Jameson + }, + [10] = { + .facilityClass = FACILITY_CLASS_BUG_MANIAC, + .trainerName = _("ALANZO"), + .speechBefore = {EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_A, EC_WORD_POWER, EC_WORD_I, EC_WORD_HAVE}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_OBLIVIOUS, EC_WORD_ABOUT, EC_MOVE2(FORESIGHT), EC_WORD_EXCL, -1}, + .speechLose = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_RIGHT, EC_WORD_EXCL}, + .monSets = gFallarborBattleTentTrainerMons_Alanzo + }, + [11] = { + .facilityClass = FACILITY_CLASS_GENTLEMAN, + .trainerName = _("HOWARD"), + .speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, -1}, + .speechWin = {EC_WORD_YOU, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES}, + .speechLose = {EC_WORD_YOU, EC_WORD_WOULD, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_ELLIPSIS}, + .monSets = gFallarborBattleTentTrainerMons_Howard + }, + [12] = { + .facilityClass = FACILITY_CLASS_GUITARIST, + .trainerName = _("CONRAD"), + .speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_PRETTY, EC_WORD_WILD, EC_WORD_EXCL}, + .speechWin = {EC_WORD_WHOAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_LET_S, EC_WORD_DANCE, EC_WORD_EXCL}, + .speechLose = {EC_WORD_MY, EC_WORD_MUSIC, EC_WORD_WILL, EC_WORD_PLAY, EC_WORD_ON, EC_WORD_ELLIPSIS}, + .monSets = gFallarborBattleTentTrainerMons_Conrad + }, + [13] = { + .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, + .trainerName = _("MAKENNA"), + .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT}, + .speechWin = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY}, + .speechLose = {EC_WORD_AWW, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_TOO}, + .monSets = gFallarborBattleTentTrainerMons_Makenna + }, + [14] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_M, + .trainerName = _("BRAYAN"), + .speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_MY, EC_WORD_POWER, EC_WORD_QUES}, + .speechWin = {EC_WORD_HOW, EC_WORD_BORING, EC_WORD_ELLIPSIS, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE}, + .speechLose = {EC_WORD_AM, EC_WORD_I, EC_WORD_THE, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_QUES}, + .monSets = gFallarborBattleTentTrainerMons_Brayan + }, + [15] = { + .facilityClass = FACILITY_CLASS_COOLTRAINER_F, + .trainerName = _("MARIANA"), + .speechBefore = {EC_WORD_A, EC_WORD_LIE, EC_WORD_CAN, EC_WORD_BE, EC_WORD_KIND, EC_WORD_ELLIPSIS}, + .speechWin = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_THE, EC_WORD_SUNDAY, EC_WORD_COMICS}, + .speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_FROM, EC_WORD_A, EC_WORD_MOVIE}, + .monSets = gFallarborBattleTentTrainerMons_Mariana + }, + [16] = { + .facilityClass = FACILITY_CLASS_POKEFAN_M, + .trainerName = _("SHELDON"), + .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_TEACHER, EC_WORD_GETS, EC_WORD_NO, EC_MOVE2(REST)}, + .speechWin = {EC_WORD_MY, EC_WORD_SMARTNESS, EC_WORD_GETS, EC_WORD_ME, EC_WORD_EASY, EC_WORD_WINS}, + .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_GO, EC_WORD_WORK, EC_WORD_BYE_BYE}, + .monSets = gFallarborBattleTentTrainerMons_Sheldon + }, + [17] = { + .facilityClass = FACILITY_CLASS_POKEFAN_F, + .trainerName = _("GIANNA"), + .speechBefore = {EC_WORD_AHAHA, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_LOVEY_DOVEY, EC_WORD_POKEMON, EC_WORD_WORLD}, + .speechWin = {EC_WORD_MY, EC_WORD_SHINE, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_THINGS, EC_WORD_BETTER}, + .speechLose = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_POKEMON, EC_WORD_QUES, -1}, + .monSets = gFallarborBattleTentTrainerMons_Gianna + }, + [18] = { + .facilityClass = FACILITY_CLASS_EXPERT_M, + .trainerName = _("YAHIR"), + .speechBefore = {EC_WORD_YOU, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_COME_ON, EC_WORD_EXCL}, + .speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_A_LOT, EC_WORD_MORE}, + .speechLose = {EC_WORD_NOT, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_ENOUGH}, + .monSets = gFallarborBattleTentTrainerMons_Yahir + }, + [19] = { + .facilityClass = FACILITY_CLASS_EXPERT_F, + .trainerName = _("BRITNEY"), + .speechBefore = {EC_WORD_IT, EC_WORD_SEEMS, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_GOOD}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_LUKEWARM, EC_WORD_TALENT, EC_WORD_AT, EC_WORD_BEST}, + .speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_COOL, EC_WORD_HERO, EC_WORD_AT, EC_WORD_THIS}, + .monSets = gFallarborBattleTentTrainerMons_Britney + }, + [20] = { + .facilityClass = FACILITY_CLASS_YOUNGSTER, + .trainerName = _("HECTER"), + .speechBefore = {EC_WORD_MY, EC_MOVE2(HIDDEN_POWER), EC_WORD_IS, EC_WORD_EXCITING, EC_WORD_ME, EC_WORD_EXCL}, + .speechWin = {EC_WORD_YEEHAW_EXCL, EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(HIDDEN_POWER), EC_WORD_PARTY}, + .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DON_T, EC_WORD_YOU, EC_MOVE2(MIMIC), EC_WORD_ME}, + .monSets = gFallarborBattleTentTrainerMons_Hecter + }, + [21] = { + .facilityClass = FACILITY_CLASS_FISHERMAN, + .trainerName = _("TANNOR"), + .speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_BE, EC_WORD_JOKING}, + .speechWin = {EC_WORD_YOU_RE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_AT, EC_WORD_BEING, EC_WORD_FUNNY}, + .speechLose = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BEING, EC_WORD_FUNNY, EC_WORD_AT, EC_WORD_ALL}, + .monSets = gFallarborBattleTentTrainerMons_Tannor + }, + [22] = { + .facilityClass = FACILITY_CLASS_BIRD_KEEPER, + .trainerName = _("BENJI"), + .speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_THINK, EC_WORD_VERY, EC_WORD_FAST, EC_WORD_HUH_QUES}, + .speechWin = {EC_WORD_SORRY, EC_WORD_EXCL, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_MEAN, EC_WORD_YOU}, + .speechLose = {EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_ELLIPSIS}, + .monSets = gFallarborBattleTentTrainerMons_Benji + }, + [23] = { + .facilityClass = FACILITY_CLASS_NINJA_BOY, + .trainerName = _("RORY"), + .speechBefore = {EC_WORD_DON_T, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_YOU, EC_WORD_EXCL}, + .speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_NEED, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_EXCL}, + .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR)}, + .monSets = gFallarborBattleTentTrainerMons_Rory + }, + [24] = { + .facilityClass = FACILITY_CLASS_PARASOL_LADY, + .trainerName = _("ELEANOR"), + .speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_WANT, EC_WORD_TO, EC_WORD_PARTY, -1}, + .speechWin = {EC_WORD_A, EC_WORD_TRENDY, EC_WORD_PARTY, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_REFRESHING}, + .speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PARTY, EC_WORD_QUES}, + .monSets = gFallarborBattleTentTrainerMons_Eleanor + }, + [25] = { + .facilityClass = FACILITY_CLASS_SWIMMER_F, + .trainerName = _("EVELYN"), + .speechBefore = {EC_WORD_MY, EC_WORD_PC, EC_WORD_IS, EC_WORD_MY, EC_WORD_SECRET_BASE, EC_WORD_EXCL}, + .speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_SECRET, EC_WORD_ON, EC_WORD_MY, EC_WORD_PC}, + .speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_REJECT, EC_WORD_THIS}, + .monSets = gFallarborBattleTentTrainerMons_Evelyn + }, + [26] = { + .facilityClass = FACILITY_CLASS_PICNICKER, + .trainerName = _("ARIELLE"), + .speechBefore = {EC_WORD_IT_S, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_I, EC_WORD_TRY}, + .speechWin = {EC_WORD_WE_RE, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_WE_RE, EC_WORD_GREAT}, + .speechLose = {EC_WORD_THAT_WAS, EC_WORD_PRETTY, EC_WORD_MEAN, EC_WORD_OF, EC_WORD_YOU, EC_WORD_EXCL}, + .monSets = gFallarborBattleTentTrainerMons_Arielle + }, + [27] = { + .facilityClass = FACILITY_CLASS_SAILOR, + .trainerName = _("CONNAR"), + .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_THIS}, + .speechWin = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_YOU_RE, EC_WORD_OK_QUES, -1}, + .speechLose = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, -1, -1, -1}, + .monSets = gFallarborBattleTentTrainerMons_Connar + }, + [28] = { + .facilityClass = FACILITY_CLASS_COLLECTOR, + .trainerName = _("MAURICE"), + .speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_RADIO, EC_WORD_OR, EC_WORD_TELEVISION}, + .speechWin = {EC_WORD_BUT, EC_WORD_THERE, EC_WORD_IS, EC_WORD_A_LOT, EC_WORD_OF, EC_WORD_POKEMON}, + .speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_ENJOY, EC_WORD_MYSELF, EC_WORD_WITHOUT, EC_WORD_MONEY}, + .monSets = gFallarborBattleTentTrainerMons_Maurice + }, + [29] = { + .facilityClass = FACILITY_CLASS_LASS, + .trainerName = _("KIANNA"), + .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_DEPT_STORE, EC_WORD_SHOPPING}, + .speechWin = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SHOPPING, EC_WORD_ALONE, -1, -1}, + .speechLose = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_SHOPPING, EC_WORD_TOGETHER, EC_WORD_QUES}, + .monSets = gFallarborBattleTentTrainerMons_Kianna + } +}; + +const struct FacilityMon gFallarborBattleTentMons[] = +{ + [0] = { + .species = SPECIES_NUMEL, + .moves = {MOVE_GROWL, MOVE_FLAMETHROWER, MOVE_TACKLE, MOVE_SUNNY_DAY}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [1] = { + .species = SPECIES_LINOONE, + .moves = {MOVE_ODOR_SLEUTH, MOVE_COVET, MOVE_ROCK_SMASH, MOVE_CHARM}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, + .nature = NATURE_SASSY + }, + [2] = { + .species = SPECIES_PLUSLE, + .moves = {MOVE_SPARK, MOVE_GROWL, MOVE_QUICK_ATTACK, MOVE_FAKE_TEARS}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [3] = { + .species = SPECIES_POOCHYENA, + .moves = {MOVE_YAWN, MOVE_ODOR_SLEUTH, MOVE_HOWL, MOVE_FRUSTRATION}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAUGHTY + }, + [4] = { + .species = SPECIES_KECLEON, + .moves = {MOVE_LICK, MOVE_SLASH, MOVE_FAINT_ATTACK, MOVE_PSYBEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_WIKI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_MODEST + }, + [5] = { + .species = SPECIES_MAGIKARP, + .moves = {MOVE_SPLASH, MOVE_TACKLE, MOVE_FLAIL, MOVE_NONE}, + .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_SCALE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [6] = { + .species = SPECIES_SOLROCK, + .moves = {MOVE_ROCK_THROW, MOVE_FLASH, MOVE_SANDSTORM, MOVE_PSYWAVE}, + .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_SASSY + }, + [7] = { + .species = SPECIES_MAKUHITA, + .moves = {MOVE_DETECT, MOVE_ARM_THRUST, MOVE_FAKE_OUT, MOVE_SMELLING_SALT}, + .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [8] = { + .species = SPECIES_MACHOKE, + .moves = {MOVE_COUNTER, MOVE_REVENGE, MOVE_BULK_UP, MOVE_FOCUS_ENERGY}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_NAIVE + }, + [9] = { + .species = SPECIES_NINCADA, + .moves = {MOVE_FURY_SWIPES, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_DIG}, + .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_SERIOUS + }, + [10] = { + .species = SPECIES_BEAUTIFLY, + .moves = {MOVE_FLASH, MOVE_MORNING_SUN, MOVE_HARDEN, MOVE_MEGA_DRAIN}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIRKY + }, + [11] = { + .species = SPECIES_DUSTOX, + .moves = {MOVE_MOONLIGHT, MOVE_HARDEN, MOVE_POISON_STING, MOVE_PSYBEAM}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, + .nature = NATURE_DOCILE + }, + [12] = { + .species = SPECIES_ILLUMISE, + .moves = {MOVE_METRONOME, MOVE_FLATTER, MOVE_WISH, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, + .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [13] = { + .species = SPECIES_VOLBEAT, + .moves = {MOVE_TACKLE, MOVE_MOONLIGHT, MOVE_SIGNAL_BEAM, MOVE_TAIL_GLOW}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [14] = { + .species = SPECIES_NINJASK, + .moves = {MOVE_DOUBLE_TEAM, MOVE_PROTECT, MOVE_DIG, MOVE_SAND_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_TIMID + }, + [15] = { + .species = SPECIES_NINJASK, + .moves = {MOVE_SWORDS_DANCE, MOVE_CUT, MOVE_FURY_CUTTER, MOVE_LEECH_LIFE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [16] = { + .species = SPECIES_ARON, + .moves = {MOVE_METAL_CLAW, MOVE_PROTECT, MOVE_SHOCK_WAVE, MOVE_METAL_SOUND}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_LONELY + }, + [17] = { + .species = SPECIES_ARON, + .moves = {MOVE_SECRET_POWER, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_MUD_SLAP}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_GENTLE + }, + [18] = { + .species = SPECIES_ELECTRIKE, + .moves = {MOVE_CRUNCH, MOVE_THUNDER_WAVE, MOVE_HOWL, MOVE_QUICK_ATTACK}, + .itemTableId = BATTLE_FRONTIER_ITEM_SEA_INCENSE, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_HASTY + }, + [19] = { + .species = SPECIES_MAGNEMITE, + .moves = {MOVE_THUNDER_WAVE, MOVE_SUPERSONIC, MOVE_ENDURE, MOVE_SPARK}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_QUIET + }, + [20] = { + .species = SPECIES_VOLTORB, + .moves = {MOVE_CHARGE, MOVE_SPARK, MOVE_SCREECH, MOVE_SONIC_BOOM}, + .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [21] = { + .species = SPECIES_WHISMUR, + .moves = {MOVE_REST, MOVE_SLEEP_TALK, MOVE_HYPER_VOICE, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [22] = { + .species = SPECIES_LOUDRED, + .moves = {MOVE_STOMP, MOVE_REST, MOVE_SCREECH, MOVE_UPROAR}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [23] = { + .species = SPECIES_LINOONE, + .moves = {MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_SHOCK_WAVE, MOVE_GROWL}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [24] = { + .species = SPECIES_MIGHTYENA, + .moves = {MOVE_SAND_ATTACK, MOVE_HOWL, MOVE_SWAGGER, MOVE_SECRET_POWER}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_JOLLY + }, + [25] = { + .species = SPECIES_SWABLU, + .moves = {MOVE_TAKE_DOWN, MOVE_SING, MOVE_GROWL, MOVE_SAFEGUARD}, + .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_QUIRKY + }, + [26] = { + .species = SPECIES_SKARMORY, + .moves = {MOVE_AGILITY, MOVE_STEEL_WING, MOVE_SAND_ATTACK, MOVE_TORMENT}, + .itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [27] = { + .species = SPECIES_GOLBAT, + .moves = {MOVE_CONFUSE_RAY, MOVE_BITE, MOVE_DOUBLE_TEAM, MOVE_SUBSTITUTE}, + .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BOLD + }, + [28] = { + .species = SPECIES_WINGULL, + .moves = {MOVE_WING_ATTACK, MOVE_HAIL, MOVE_DOUBLE_TEAM, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, + .nature = NATURE_MODEST + }, + [29] = { + .species = SPECIES_PELIPPER, + .moves = {MOVE_TWISTER, MOVE_ICY_WIND, MOVE_DOUBLE_TEAM, MOVE_WATER_GUN}, + .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [30] = { + .species = SPECIES_BARBOACH, + .moves = {MOVE_SPARK, MOVE_WATER_GUN, MOVE_EARTHQUAKE, MOVE_WATER_SPORT}, + .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_MODEST + }, + [31] = { + .species = SPECIES_WAILMER, + .moves = {MOVE_WATER_PULSE, MOVE_RAIN_DANCE, MOVE_SPLASH, MOVE_CURSE}, + .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_QUIET + }, + [32] = { + .species = SPECIES_MARILL, + .moves = {MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_ATTRACT}, + .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [33] = { + .species = SPECIES_GOLDEEN, + .moves = {MOVE_WATERFALL, MOVE_RAIN_DANCE, MOVE_FLAIL, MOVE_PROTECT}, + .itemTableId = BATTLE_FRONTIER_ITEM_GANLON_BERRY, + .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, + .nature = NATURE_HASTY + }, + [34] = { + .species = SPECIES_GOLDEEN, + .moves = {MOVE_SLEEP_TALK, MOVE_HORN_DRILL, MOVE_REST, MOVE_SUPERSONIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_CAREFUL + }, + [35] = { + .species = SPECIES_TRAPINCH, + .moves = {MOVE_RETURN, MOVE_SAND_ATTACK, MOVE_ATTRACT, MOVE_STRENGTH}, + .itemTableId = BATTLE_FRONTIER_ITEM_MAGO_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [36] = { + .species = SPECIES_BALTOY, + .moves = {MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_RAPID_SPIN, MOVE_MIMIC}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [37] = { + .species = SPECIES_GRAVELER, + .moves = {MOVE_ROCK_BLAST, MOVE_DEFENSE_CURL, MOVE_MAGNITUDE, MOVE_MUD_SPORT}, + .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + }, + [38] = { + .species = SPECIES_SANDSHREW, + .moves = {MOVE_SAND_TOMB, MOVE_SANDSTORM, MOVE_DOUBLE_TEAM, MOVE_FOCUS_PUNCH}, + .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_JOLLY + }, + [39] = { + .species = SPECIES_SWALOT, + .moves = {MOVE_YAWN, MOVE_ENCORE, MOVE_BULLET_SEED, MOVE_SLUDGE}, + .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, + .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, + .nature = NATURE_BRAVE + }, + [40] = { + .species = SPECIES_SHROOMISH, + .moves = {MOVE_HEADBUTT, MOVE_SPORE, MOVE_SWAGGER, MOVE_LEECH_SEED}, + .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_IMPISH + }, + [41] = { + .species = SPECIES_KIRLIA, + .moves = {MOVE_HYPNOSIS, MOVE_GROWL, MOVE_ATTRACT, MOVE_DREAM_EATER}, + .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [42] = { + .species = SPECIES_LOMBRE, + .moves = {MOVE_NATURE_POWER, MOVE_WATER_GUN, MOVE_RAIN_DANCE, MOVE_FLASH}, + .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_BASHFUL + }, + [43] = { + .species = SPECIES_NUZLEAF, + .moves = {MOVE_NATURE_POWER, MOVE_TORMENT, MOVE_SWAGGER, MOVE_REST}, + .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, + .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, + .nature = NATURE_ADAMANT + }, + [44] = { + .species = SPECIES_CACNEA, + .moves = {MOVE_SANDSTORM, MOVE_NEEDLE_ARM, MOVE_TEETER_DANCE, MOVE_LEECH_SEED}, + .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, + .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, + .nature = NATURE_ADAMANT + } +}; diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 00a6f7fdb..008d7d784 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -1,3913 +1,4617 @@ -#ifndef GUARD_DATA_BATTLE_MOVES -#define GUARD_DATA_BATTLE_MOVES - const struct BattleMove gBattleMoves[MOVES_COUNT] = { - { // MOVE_NONE - .effect = EFFECT_HIT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 0, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = 0, - }, - { // MOVE_POUND - .effect = EFFECT_HIT, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 35, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_KARATE_CHOP - .effect = EFFECT_HIGH_CRITICAL, - .power = 50, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DOUBLE_SLAP - .effect = EFFECT_MULTI_HIT, - .power = 15, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_COMET_PUNCH - .effect = EFFECT_MULTI_HIT, - .power = 18, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_MEGA_PUNCH - .effect = EFFECT_HIT, - .power = 80, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_PAY_DAY - .effect = EFFECT_PAY_DAY, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FIRE_PUNCH - .effect = EFFECT_BURN_HIT, - .power = 75, - .type = TYPE_FIRE, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ICE_PUNCH - .effect = EFFECT_FREEZE_HIT, - .power = 75, - .type = TYPE_ICE, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_THUNDER_PUNCH - .effect = EFFECT_PARALYZE_HIT, - .power = 75, - .type = TYPE_ELECTRIC, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SCRATCH - .effect = EFFECT_HIT, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 35, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_VICE_GRIP - .effect = EFFECT_HIT, - .power = 55, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_GUILLOTINE - .effect = EFFECT_OHKO, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 30, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_RAZOR_WIND - .effect = EFFECT_RAZOR_WIND, - .power = 80, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SWORDS_DANCE - .effect = EFFECT_ATTACK_UP_2, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_CUT - .effect = EFFECT_HIT, - .power = 50, - .type = TYPE_NORMAL, - .accuracy = 95, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_GUST - .effect = EFFECT_GUST, - .power = 40, - .type = TYPE_FLYING, - .accuracy = 100, - .pp = 35, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_WING_ATTACK - .effect = EFFECT_HIT, - .power = 60, - .type = TYPE_FLYING, - .accuracy = 100, - .pp = 35, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_WHIRLWIND - .effect = EFFECT_ROAR, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = -6, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FLY - .effect = EFFECT_SEMI_INVULNERABLE, - .power = 70, - .type = TYPE_FLYING, - .accuracy = 95, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BIND - .effect = EFFECT_TRAP, - .power = 15, - .type = TYPE_NORMAL, - .accuracy = 75, - .pp = 20, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SLAM - .effect = EFFECT_HIT, - .power = 80, - .type = TYPE_NORMAL, - .accuracy = 75, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_VINE_WHIP - .effect = EFFECT_HIT, - .power = 35, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_STOMP - .effect = EFFECT_FLINCH_MINIMIZE_HIT, - .power = 65, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DOUBLE_KICK - .effect = EFFECT_DOUBLE_HIT, - .power = 30, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_MEGA_KICK - .effect = EFFECT_HIT, - .power = 120, - .type = TYPE_NORMAL, - .accuracy = 75, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_JUMP_KICK - .effect = EFFECT_RECOIL_IF_MISS, - .power = 70, - .type = TYPE_FIGHTING, - .accuracy = 95, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ROLLING_KICK - .effect = EFFECT_FLINCH_HIT, - .power = 60, - .type = TYPE_FIGHTING, - .accuracy = 85, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SAND_ATTACK - .effect = EFFECT_ACCURACY_DOWN, - .power = 0, - .type = TYPE_GROUND, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HEADBUTT - .effect = EFFECT_FLINCH_HIT, - .power = 70, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HORN_ATTACK - .effect = EFFECT_HIT, - .power = 65, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FURY_ATTACK - .effect = EFFECT_MULTI_HIT, - .power = 15, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_HORN_DRILL - .effect = EFFECT_OHKO, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 30, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_TACKLE - .effect = EFFECT_HIT, - .power = 35, - .type = TYPE_NORMAL, - .accuracy = 95, - .pp = 35, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BODY_SLAM - .effect = EFFECT_PARALYZE_HIT, - .power = 85, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_WRAP - .effect = EFFECT_TRAP, - .power = 15, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 20, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_TAKE_DOWN - .effect = EFFECT_RECOIL, - .power = 90, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_THRASH - .effect = EFFECT_RAMPAGE, - .power = 90, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_RANDOM, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DOUBLE_EDGE - .effect = EFFECT_DOUBLE_EDGE, - .power = 120, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_TAIL_WHIP - .effect = EFFECT_DEFENSE_DOWN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_POISON_STING - .effect = EFFECT_POISON_HIT, - .power = 15, - .type = TYPE_POISON, - .accuracy = 100, - .pp = 35, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_TWINEEDLE - .effect = EFFECT_TWINEEDLE, - .power = 25, - .type = TYPE_BUG, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PIN_MISSILE - .effect = EFFECT_MULTI_HIT, - .power = 14, - .type = TYPE_BUG, - .accuracy = 85, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_LEER - .effect = EFFECT_DEFENSE_DOWN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_BITE - .effect = EFFECT_FLINCH_HIT, - .power = 60, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_GROWL - .effect = EFFECT_ATTACK_DOWN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ROAR - .effect = EFFECT_ROAR, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = -6, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SING - .effect = EFFECT_SLEEP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 55, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SUPERSONIC - .effect = EFFECT_CONFUSE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 55, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SONIC_BOOM - .effect = EFFECT_SONICBOOM, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 90, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DISABLE - .effect = EFFECT_DISABLE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 55, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ACID - .effect = EFFECT_DEFENSE_DOWN_HIT, - .power = 40, - .type = TYPE_POISON, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_EMBER - .effect = EFFECT_BURN_HIT, - .power = 40, - .type = TYPE_FIRE, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FLAMETHROWER - .effect = EFFECT_BURN_HIT, - .power = 95, - .type = TYPE_FIRE, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MIST - .effect = EFFECT_MIST, - .power = 0, - .type = TYPE_ICE, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_WATER_GUN - .effect = EFFECT_HIT, - .power = 40, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_HYDRO_PUMP - .effect = EFFECT_HIT, - .power = 120, - .type = TYPE_WATER, - .accuracy = 80, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SURF - .effect = EFFECT_HIT, - .power = 95, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ICE_BEAM - .effect = EFFECT_FREEZE_HIT, - .power = 95, - .type = TYPE_ICE, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_BLIZZARD - .effect = EFFECT_FREEZE_HIT, - .power = 120, - .type = TYPE_ICE, - .accuracy = 70, - .pp = 5, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PSYBEAM - .effect = EFFECT_CONFUSE_HIT, - .power = 65, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_BUBBLE_BEAM - .effect = EFFECT_SPEED_DOWN_HIT, - .power = 65, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_AURORA_BEAM - .effect = EFFECT_ATTACK_DOWN_HIT, - .power = 65, - .type = TYPE_ICE, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HYPER_BEAM - .effect = EFFECT_RECHARGE, - .power = 150, - .type = TYPE_NORMAL, - .accuracy = 90, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_PECK - .effect = EFFECT_HIT, - .power = 35, - .type = TYPE_FLYING, - .accuracy = 100, - .pp = 35, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DRILL_PECK - .effect = EFFECT_HIT, - .power = 80, - .type = TYPE_FLYING, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SUBMISSION - .effect = EFFECT_RECOIL, - .power = 80, - .type = TYPE_FIGHTING, - .accuracy = 80, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_LOW_KICK - .effect = EFFECT_LOW_KICK, - .power = 1, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_COUNTER - .effect = EFFECT_COUNTER, - .power = 1, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = -5, - .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SEISMIC_TOSS - .effect = EFFECT_LEVEL_DAMAGE, - .power = 1, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_STRENGTH - .effect = EFFECT_HIT, - .power = 80, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ABSORB - .effect = EFFECT_ABSORB, - .power = 20, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MEGA_DRAIN - .effect = EFFECT_ABSORB, - .power = 40, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_LEECH_SEED - .effect = EFFECT_LEECH_SEED, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_GROWTH - .effect = EFFECT_SPECIAL_ATTACK_UP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_RAZOR_LEAF - .effect = EFFECT_HIGH_CRITICAL, - .power = 55, - .type = TYPE_GRASS, - .accuracy = 95, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SOLAR_BEAM - .effect = EFFECT_SOLARBEAM, - .power = 120, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_POISON_POWDER - .effect = EFFECT_POISON, - .power = 0, - .type = TYPE_POISON, - .accuracy = 75, - .pp = 35, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_STUN_SPORE - .effect = EFFECT_PARALYZE, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 75, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SLEEP_POWDER - .effect = EFFECT_SLEEP, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 75, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PETAL_DANCE - .effect = EFFECT_RAMPAGE, - .power = 70, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_RANDOM, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_STRING_SHOT - .effect = EFFECT_SPEED_DOWN, - .power = 0, - .type = TYPE_BUG, - .accuracy = 95, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DRAGON_RAGE - .effect = EFFECT_DRAGON_RAGE, - .power = 1, - .type = TYPE_DRAGON, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FIRE_SPIN - .effect = EFFECT_TRAP, - .power = 15, - .type = TYPE_FIRE, - .accuracy = 70, - .pp = 15, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_THUNDER_SHOCK - .effect = EFFECT_PARALYZE_HIT, - .power = 40, - .type = TYPE_ELECTRIC, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_THUNDERBOLT - .effect = EFFECT_PARALYZE_HIT, - .power = 95, - .type = TYPE_ELECTRIC, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_THUNDER_WAVE - .effect = EFFECT_PARALYZE, - .power = 0, - .type = TYPE_ELECTRIC, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_THUNDER - .effect = EFFECT_THUNDER, - .power = 120, - .type = TYPE_ELECTRIC, - .accuracy = 70, - .pp = 10, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ROCK_THROW - .effect = EFFECT_HIT, - .power = 50, - .type = TYPE_ROCK, - .accuracy = 90, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_EARTHQUAKE - .effect = EFFECT_EARTHQUAKE, - .power = 100, - .type = TYPE_GROUND, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_FOES_AND_ALLY, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FISSURE - .effect = EFFECT_OHKO, - .power = 1, - .type = TYPE_GROUND, - .accuracy = 30, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DIG - .effect = EFFECT_SEMI_INVULNERABLE, - .power = 60, - .type = TYPE_GROUND, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_TOXIC - .effect = EFFECT_TOXIC, - .power = 0, - .type = TYPE_POISON, - .accuracy = 85, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_CONFUSION - .effect = EFFECT_CONFUSE_HIT, - .power = 50, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PSYCHIC - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - .power = 90, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HYPNOSIS - .effect = EFFECT_SLEEP, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 60, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MEDITATE - .effect = EFFECT_ATTACK_UP, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_AGILITY - .effect = EFFECT_SPEED_UP_2, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_QUICK_ATTACK - .effect = EFFECT_QUICK_ATTACK, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 1, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_RAGE - .effect = EFFECT_RAGE, - .power = 20, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_TELEPORT - .effect = EFFECT_TELEPORT, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_NIGHT_SHADE - .effect = EFFECT_LEVEL_DAMAGE, - .power = 1, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_MIMIC - .effect = EFFECT_MIMIC, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED, - }, - { // MOVE_SCREECH - .effect = EFFECT_DEFENSE_DOWN_2, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DOUBLE_TEAM - .effect = EFFECT_EVASION_UP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_RECOVER - .effect = EFFECT_RESTORE_HP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_HARDEN - .effect = EFFECT_DEFENSE_UP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_MINIMIZE - .effect = EFFECT_MINIMIZE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_SMOKESCREEN - .effect = EFFECT_ACCURACY_DOWN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_CONFUSE_RAY - .effect = EFFECT_CONFUSE, - .power = 0, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_WITHDRAW - .effect = EFFECT_DEFENSE_UP, - .power = 0, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_DEFENSE_CURL - .effect = EFFECT_DEFENSE_CURL, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_BARRIER - .effect = EFFECT_DEFENSE_UP_2, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_LIGHT_SCREEN - .effect = EFFECT_LIGHT_SCREEN, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_HAZE - .effect = EFFECT_HAZE, - .power = 0, - .type = TYPE_ICE, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED, - }, - { // MOVE_REFLECT - .effect = EFFECT_REFLECT, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_FOCUS_ENERGY - .effect = EFFECT_FOCUS_ENERGY, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_BIDE - .effect = EFFECT_BIDE, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_METRONOME - .effect = EFFECT_METRONOME, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = 0, - .flags = 0, - }, - { // MOVE_MIRROR_MOVE - .effect = EFFECT_MIRROR_MOVE, - .power = 0, - .type = TYPE_FLYING, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = 0, - .flags = 0, - }, - { // MOVE_SELF_DESTRUCT - .effect = EFFECT_EXPLOSION, - .power = 200, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_FOES_AND_ALLY, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_EGG_BOMB - .effect = EFFECT_HIT, - .power = 100, - .type = TYPE_NORMAL, - .accuracy = 75, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_LICK - .effect = EFFECT_PARALYZE_HIT, - .power = 20, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SMOG - .effect = EFFECT_POISON_HIT, - .power = 20, - .type = TYPE_POISON, - .accuracy = 70, - .pp = 20, - .secondaryEffectChance = 40, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SLUDGE - .effect = EFFECT_POISON_HIT, - .power = 65, - .type = TYPE_POISON, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_BONE_CLUB - .effect = EFFECT_FLINCH_HIT, - .power = 65, - .type = TYPE_GROUND, - .accuracy = 85, - .pp = 20, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FIRE_BLAST - .effect = EFFECT_BURN_HIT, - .power = 120, - .type = TYPE_FIRE, - .accuracy = 85, - .pp = 5, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_WATERFALL - .effect = EFFECT_HIT, - .power = 80, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_CLAMP - .effect = EFFECT_TRAP, - .power = 35, - .type = TYPE_WATER, - .accuracy = 75, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SWIFT - .effect = EFFECT_ALWAYS_HIT, - .power = 60, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SKULL_BASH - .effect = EFFECT_SKULL_BASH, - .power = 100, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SPIKE_CANNON - .effect = EFFECT_MULTI_HIT, - .power = 20, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_CONSTRICT - .effect = EFFECT_SPEED_DOWN_HIT, - .power = 10, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 35, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_AMNESIA - .effect = EFFECT_SPECIAL_DEFENSE_UP_2, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_KINESIS - .effect = EFFECT_ACCURACY_DOWN, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 80, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SOFT_BOILED - .effect = EFFECT_SOFTBOILED, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HI_JUMP_KICK - .effect = EFFECT_RECOIL_IF_MISS, - .power = 85, - .type = TYPE_FIGHTING, - .accuracy = 90, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_GLARE - .effect = EFFECT_PARALYZE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 75, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DREAM_EATER - .effect = EFFECT_DREAM_EATER, - .power = 100, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_POISON_GAS - .effect = EFFECT_POISON, - .power = 0, - .type = TYPE_POISON, - .accuracy = 55, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_BARRAGE - .effect = EFFECT_MULTI_HIT, - .power = 15, - .type = TYPE_NORMAL, - .accuracy = 85, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_LEECH_LIFE - .effect = EFFECT_ABSORB, - .power = 20, - .type = TYPE_BUG, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_LOVELY_KISS - .effect = EFFECT_SLEEP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 75, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SKY_ATTACK - .effect = EFFECT_SKY_ATTACK, - .power = 140, - .type = TYPE_FLYING, - .accuracy = 90, - .pp = 5, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_TRANSFORM - .effect = EFFECT_TRANSFORM, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = 0, - }, - { // MOVE_BUBBLE - .effect = EFFECT_SPEED_DOWN_HIT, - .power = 20, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DIZZY_PUNCH - .effect = EFFECT_CONFUSE_HIT, - .power = 70, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SPORE - .effect = EFFECT_SLEEP, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FLASH - .effect = EFFECT_ACCURACY_DOWN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 70, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PSYWAVE - .effect = EFFECT_PSYWAVE, - .power = 1, - .type = TYPE_PSYCHIC, - .accuracy = 80, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SPLASH - .effect = EFFECT_SPLASH, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_ACID_ARMOR - .effect = EFFECT_DEFENSE_UP_2, - .power = 0, - .type = TYPE_POISON, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_CRABHAMMER - .effect = EFFECT_HIGH_CRITICAL, - .power = 90, - .type = TYPE_WATER, - .accuracy = 85, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_EXPLOSION - .effect = EFFECT_EXPLOSION, - .power = 250, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_FOES_AND_ALLY, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FURY_SWIPES - .effect = EFFECT_MULTI_HIT, - .power = 18, - .type = TYPE_NORMAL, - .accuracy = 80, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BONEMERANG - .effect = EFFECT_DOUBLE_HIT, - .power = 50, - .type = TYPE_GROUND, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_REST - .effect = EFFECT_REST, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_ROCK_SLIDE - .effect = EFFECT_FLINCH_HIT, - .power = 75, - .type = TYPE_ROCK, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HYPER_FANG - .effect = EFFECT_FLINCH_HIT, - .power = 80, - .type = TYPE_NORMAL, - .accuracy = 90, - .pp = 15, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SHARPEN - .effect = EFFECT_ATTACK_UP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_CONVERSION - .effect = EFFECT_CONVERSION, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_TRI_ATTACK - .effect = EFFECT_TRI_ATTACK, - .power = 80, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SUPER_FANG - .effect = EFFECT_SUPER_FANG, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SLASH - .effect = EFFECT_HIGH_CRITICAL, - .power = 70, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SUBSTITUTE - .effect = EFFECT_SUBSTITUTE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_STRUGGLE - .effect = EFFECT_RECOIL, - .power = 50, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 1, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SKETCH - .effect = EFFECT_SKETCH, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 1, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = 0, - }, - { // MOVE_TRIPLE_KICK - .effect = EFFECT_TRIPLE_KICK, - .power = 10, - .type = TYPE_FIGHTING, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_THIEF - .effect = EFFECT_THIEF, - .power = 40, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SPIDER_WEB - .effect = EFFECT_MEAN_LOOK, - .power = 0, - .type = TYPE_BUG, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MIND_READER - .effect = EFFECT_LOCK_ON, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_NIGHTMARE - .effect = EFFECT_NIGHTMARE, - .power = 0, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FLAME_WHEEL - .effect = EFFECT_THAW_HIT, - .power = 60, - .type = TYPE_FIRE, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SNORE - .effect = EFFECT_SNORE, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_CURSE - .effect = EFFECT_CURSE, - .power = 0, - .type = TYPE_MYSTERY, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = 0, - }, - { // MOVE_FLAIL - .effect = EFFECT_FLAIL, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_CONVERSION_2 - .effect = EFFECT_CONVERSION_2, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_AEROBLAST - .effect = EFFECT_HIGH_CRITICAL, - .power = 100, - .type = TYPE_FLYING, - .accuracy = 95, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_COTTON_SPORE - .effect = EFFECT_SPEED_DOWN_2, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 85, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_REVERSAL - .effect = EFFECT_FLAIL, - .power = 1, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SPITE - .effect = EFFECT_SPITE, - .power = 0, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_POWDER_SNOW - .effect = EFFECT_FREEZE_HIT, - .power = 40, - .type = TYPE_ICE, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PROTECT - .effect = EFFECT_PROTECT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 3, - .flags = 0, - }, - { // MOVE_MACH_PUNCH - .effect = EFFECT_QUICK_ATTACK, - .power = 40, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 1, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SCARY_FACE - .effect = EFFECT_SPEED_DOWN_2, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FAINT_ATTACK - .effect = EFFECT_ALWAYS_HIT, - .power = 60, - .type = TYPE_DARK, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SWEET_KISS - .effect = EFFECT_CONFUSE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 75, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_BELLY_DRUM - .effect = EFFECT_BELLY_DRUM, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_SLUDGE_BOMB - .effect = EFFECT_POISON_HIT, - .power = 90, - .type = TYPE_POISON, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MUD_SLAP - .effect = EFFECT_ACCURACY_DOWN_HIT, - .power = 20, - .type = TYPE_GROUND, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_OCTAZOOKA - .effect = EFFECT_ACCURACY_DOWN_HIT, - .power = 65, - .type = TYPE_WATER, - .accuracy = 85, - .pp = 10, - .secondaryEffectChance = 50, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SPIKES - .effect = EFFECT_SPIKES, - .power = 0, - .type = TYPE_GROUND, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_OPPONENTS_FIELD, - .priority = 0, - .flags = 0, - }, - { // MOVE_ZAP_CANNON - .effect = EFFECT_PARALYZE_HIT, - .power = 100, - .type = TYPE_ELECTRIC, - .accuracy = 50, - .pp = 5, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FORESIGHT - .effect = EFFECT_FORESIGHT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DESTINY_BOND - .effect = EFFECT_DESTINY_BOND, - .power = 0, - .type = TYPE_GHOST, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_PERISH_SONG - .effect = EFFECT_PERISH_SONG, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_ICY_WIND - .effect = EFFECT_SPEED_DOWN_HIT, - .power = 55, - .type = TYPE_ICE, - .accuracy = 95, - .pp = 15, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DETECT - .effect = EFFECT_PROTECT, - .power = 0, - .type = TYPE_FIGHTING, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 3, - .flags = 0, - }, - { // MOVE_BONE_RUSH - .effect = EFFECT_MULTI_HIT, - .power = 25, - .type = TYPE_GROUND, - .accuracy = 80, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_LOCK_ON - .effect = EFFECT_LOCK_ON, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_OUTRAGE - .effect = EFFECT_RAMPAGE, - .power = 90, - .type = TYPE_DRAGON, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_RANDOM, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SANDSTORM - .effect = EFFECT_SANDSTORM, - .power = 0, - .type = TYPE_ROCK, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_GIGA_DRAIN - .effect = EFFECT_ABSORB, - .power = 60, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ENDURE - .effect = EFFECT_ENDURE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 3, - .flags = 0, - }, - { // MOVE_CHARM - .effect = EFFECT_ATTACK_DOWN_2, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ROLLOUT - .effect = EFFECT_ROLLOUT, - .power = 30, - .type = TYPE_ROCK, - .accuracy = 90, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FALSE_SWIPE - .effect = EFFECT_FALSE_SWIPE, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SWAGGER - .effect = EFFECT_SWAGGER, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 90, - .pp = 15, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MILK_DRINK - .effect = EFFECT_SOFTBOILED, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, - }, - { // MOVE_SPARK - .effect = EFFECT_PARALYZE_HIT, - .power = 65, - .type = TYPE_ELECTRIC, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FURY_CUTTER - .effect = EFFECT_FURY_CUTTER, - .power = 10, - .type = TYPE_BUG, - .accuracy = 95, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_STEEL_WING - .effect = EFFECT_DEFENSE_UP_HIT, - .power = 70, - .type = TYPE_STEEL, - .accuracy = 90, - .pp = 25, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_MEAN_LOOK - .effect = EFFECT_MEAN_LOOK, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ATTRACT - .effect = EFFECT_ATTRACT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SLEEP_TALK - .effect = EFFECT_SLEEP_TALK, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = 0, - .flags = 0, - }, - { // MOVE_HEAL_BELL - .effect = EFFECT_HEAL_BELL, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_RETURN - .effect = EFFECT_RETURN, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_PRESENT - .effect = EFFECT_PRESENT, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 90, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FRUSTRATION - .effect = EFFECT_FRUSTRATION, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SAFEGUARD - .effect = EFFECT_SAFEGUARD, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_PAIN_SPLIT - .effect = EFFECT_PAIN_SPLIT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SACRED_FIRE - .effect = EFFECT_THAW_HIT, - .power = 100, - .type = TYPE_FIRE, - .accuracy = 95, - .pp = 5, - .secondaryEffectChance = 50, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MAGNITUDE - .effect = EFFECT_MAGNITUDE, - .power = 1, - .type = TYPE_GROUND, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_FOES_AND_ALLY, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DYNAMIC_PUNCH - .effect = EFFECT_CONFUSE_HIT, - .power = 100, - .type = TYPE_FIGHTING, - .accuracy = 50, - .pp = 5, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MEGAHORN - .effect = EFFECT_HIT, - .power = 120, - .type = TYPE_BUG, - .accuracy = 85, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DRAGON_BREATH - .effect = EFFECT_PARALYZE_HIT, - .power = 60, - .type = TYPE_DRAGON, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BATON_PASS - .effect = EFFECT_BATON_PASS, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_ENCORE - .effect = EFFECT_ENCORE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PURSUIT - .effect = EFFECT_PURSUIT, - .power = 40, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_RAPID_SPIN - .effect = EFFECT_RAPID_SPIN, - .power = 20, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SWEET_SCENT - .effect = EFFECT_EVASION_DOWN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_IRON_TAIL - .effect = EFFECT_DEFENSE_DOWN_HIT, - .power = 100, - .type = TYPE_STEEL, - .accuracy = 75, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_METAL_CLAW - .effect = EFFECT_ATTACK_UP_HIT, - .power = 50, - .type = TYPE_STEEL, - .accuracy = 95, - .pp = 35, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_VITAL_THROW - .effect = EFFECT_VITAL_THROW, - .power = 70, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = -1, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_MORNING_SUN - .effect = EFFECT_MORNING_SUN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_SYNTHESIS - .effect = EFFECT_SYNTHESIS, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_MOONLIGHT - .effect = EFFECT_MOONLIGHT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_HIDDEN_POWER - .effect = EFFECT_HIDDEN_POWER, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_CROSS_CHOP - .effect = EFFECT_HIGH_CRITICAL, - .power = 100, - .type = TYPE_FIGHTING, - .accuracy = 80, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_TWISTER - .effect = EFFECT_TWISTER, - .power = 40, - .type = TYPE_DRAGON, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_RAIN_DANCE - .effect = EFFECT_RAIN_DANCE, - .power = 0, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_SUNNY_DAY - .effect = EFFECT_SUNNY_DAY, - .power = 0, - .type = TYPE_FIRE, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_CRUNCH - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - .power = 80, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MIRROR_COAT - .effect = EFFECT_MIRROR_COAT, - .power = 1, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = -5, - .flags = FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_PSYCH_UP - .effect = EFFECT_PSYCH_UP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_EXTREME_SPEED - .effect = EFFECT_QUICK_ATTACK, - .power = 80, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 1, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ANCIENT_POWER - .effect = EFFECT_ALL_STATS_UP_HIT, - .power = 60, - .type = TYPE_ROCK, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SHADOW_BALL - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - .power = 80, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FUTURE_SIGHT - .effect = EFFECT_FUTURE_SIGHT, - .power = 80, - .type = TYPE_PSYCHIC, - .accuracy = 90, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = 0, - }, - { // MOVE_ROCK_SMASH - .effect = EFFECT_DEFENSE_DOWN_HIT, - .power = 20, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 50, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_WHIRLPOOL - .effect = EFFECT_TRAP, - .power = 15, - .type = TYPE_WATER, - .accuracy = 70, - .pp = 15, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BEAT_UP - .effect = EFFECT_BEAT_UP, - .power = 10, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FAKE_OUT - .effect = EFFECT_FAKE_OUT, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 1, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_UPROAR - .effect = EFFECT_UPROAR, - .power = 50, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_RANDOM, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_STOCKPILE - .effect = EFFECT_STOCKPILE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_SPIT_UP - .effect = EFFECT_SPIT_UP, - .power = 100, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SWALLOW - .effect = EFFECT_SWALLOW, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_HEAT_WAVE - .effect = EFFECT_BURN_HIT, - .power = 100, - .type = TYPE_FIRE, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HAIL - .effect = EFFECT_HAIL, - .power = 0, - .type = TYPE_ICE, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED, - }, - { // MOVE_TORMENT - .effect = EFFECT_TORMENT, - .power = 0, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FLATTER - .effect = EFFECT_FLATTER, - .power = 0, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_WILL_O_WISP - .effect = EFFECT_WILL_O_WISP, - .power = 0, - .type = TYPE_FIRE, - .accuracy = 75, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MEMENTO - .effect = EFFECT_MEMENTO, - .power = 0, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FACADE - .effect = EFFECT_FACADE, - .power = 70, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FOCUS_PUNCH - .effect = EFFECT_FOCUS_PUNCH, - .power = 150, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = -3, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, - }, - { // MOVE_SMELLING_SALT - .effect = EFFECT_SMELLINGSALT, - .power = 60, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FOLLOW_ME - .effect = EFFECT_FOLLOW_ME, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 3, - .flags = 0, - }, - { // MOVE_NATURE_POWER - .effect = EFFECT_NATURE_POWER, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 95, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = 0, - .flags = 0, - }, - { // MOVE_CHARGE - .effect = EFFECT_CHARGE, - .power = 0, - .type = TYPE_ELECTRIC, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_TAUNT - .effect = EFFECT_TAUNT, - .power = 0, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED, - }, - { // MOVE_HELPING_HAND - .effect = EFFECT_HELPING_HAND, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 5, - .flags = 0, - }, - { // MOVE_TRICK - .effect = EFFECT_TRICK, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ROLE_PLAY - .effect = EFFECT_ROLE_PLAY, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = 0, - }, - { // MOVE_WISH - .effect = EFFECT_WISH, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED, - }, - { // MOVE_ASSIST - .effect = EFFECT_ASSIST, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = 0, - .flags = 0, - }, - { // MOVE_INGRAIN - .effect = EFFECT_INGRAIN, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_SUPERPOWER - .effect = EFFECT_SUPERPOWER, - .power = 120, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MAGIC_COAT - .effect = EFFECT_MAGIC_COAT, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = 4, - .flags = 0, - }, - { // MOVE_RECYCLE - .effect = EFFECT_RECYCLE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_REVENGE - .effect = EFFECT_REVENGE, - .power = 60, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = -4, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BRICK_BREAK - .effect = EFFECT_BRICK_BREAK, - .power = 75, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_YAWN - .effect = EFFECT_YAWN, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_KNOCK_OFF - .effect = EFFECT_KNOCK_OFF, - .power = 20, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ENDEAVOR - .effect = EFFECT_ENDEAVOR, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ERUPTION - .effect = EFFECT_ERUPTION, - .power = 150, - .type = TYPE_FIRE, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SKILL_SWAP - .effect = EFFECT_SKILL_SWAP, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_IMPRISON - .effect = EFFECT_IMPRISON, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED, - }, - { // MOVE_REFRESH - .effect = EFFECT_REFRESH, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_GRUDGE - .effect = EFFECT_GRUDGE, - .power = 0, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SNATCH - .effect = EFFECT_SNATCH, - .power = 0, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_DEPENDS, - .priority = 4, - .flags = FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SECRET_POWER - .effect = EFFECT_SECRET_POWER, - .power = 70, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_DIVE - .effect = EFFECT_SEMI_INVULNERABLE, - .power = 60, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ARM_THRUST - .effect = EFFECT_MULTI_HIT, - .power = 15, - .type = TYPE_FIGHTING, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_CAMOUFLAGE - .effect = EFFECT_CAMOUFLAGE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_TAIL_GLOW - .effect = EFFECT_SPECIAL_ATTACK_UP_2, - .power = 0, - .type = TYPE_BUG, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_LUSTER_PURGE - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - .power = 70, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 50, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MIST_BALL - .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, - .power = 70, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 50, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_FEATHER_DANCE - .effect = EFFECT_ATTACK_DOWN_2, - .power = 0, - .type = TYPE_FLYING, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_TEETER_DANCE - .effect = EFFECT_TEETER_DANCE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_FOES_AND_ALLY, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED, - }, - { // MOVE_BLAZE_KICK - .effect = EFFECT_BLAZE_KICK, - .power = 85, - .type = TYPE_FIRE, - .accuracy = 90, - .pp = 10, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MUD_SPORT - .effect = EFFECT_MUD_SPORT, - .power = 0, - .type = TYPE_GROUND, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_ICE_BALL - .effect = EFFECT_ROLLOUT, - .power = 30, - .type = TYPE_ICE, - .accuracy = 90, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_NEEDLE_ARM - .effect = EFFECT_FLINCH_MINIMIZE_HIT, - .power = 60, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SLACK_OFF - .effect = EFFECT_RESTORE_HP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_HYPER_VOICE - .effect = EFFECT_HIT, - .power = 90, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_POISON_FANG - .effect = EFFECT_POISON_FANG, - .power = 50, - .type = TYPE_POISON, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_CRUSH_CLAW - .effect = EFFECT_DEFENSE_DOWN_HIT, - .power = 75, - .type = TYPE_NORMAL, - .accuracy = 95, - .pp = 10, - .secondaryEffectChance = 50, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_BLAST_BURN - .effect = EFFECT_RECHARGE, - .power = 150, - .type = TYPE_FIRE, - .accuracy = 90, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_HYDRO_CANNON - .effect = EFFECT_RECHARGE, - .power = 150, - .type = TYPE_WATER, - .accuracy = 90, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_METEOR_MASH - .effect = EFFECT_ATTACK_UP_HIT, - .power = 100, - .type = TYPE_STEEL, - .accuracy = 85, - .pp = 10, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ASTONISH - .effect = EFFECT_FLINCH_MINIMIZE_HIT, - .power = 30, - .type = TYPE_GHOST, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_WEATHER_BALL - .effect = EFFECT_WEATHER_BALL, - .power = 50, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_AROMATHERAPY - .effect = EFFECT_HEAL_BELL, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_FAKE_TEARS - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, - .power = 0, - .type = TYPE_DARK, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_AIR_CUTTER - .effect = EFFECT_HIGH_CRITICAL, - .power = 55, - .type = TYPE_FLYING, - .accuracy = 95, - .pp = 25, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_OVERHEAT - .effect = EFFECT_OVERHEAT, - .power = 140, - .type = TYPE_FIRE, - .accuracy = 90, - .pp = 5, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ODOR_SLEUTH - .effect = EFFECT_FORESIGHT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_ROCK_TOMB - .effect = EFFECT_SPEED_DOWN_HIT, - .power = 50, - .type = TYPE_ROCK, - .accuracy = 80, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SILVER_WIND - .effect = EFFECT_ALL_STATS_UP_HIT, - .power = 60, - .type = TYPE_BUG, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_METAL_SOUND - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, - .power = 0, - .type = TYPE_STEEL, - .accuracy = 85, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_GRASS_WHISTLE - .effect = EFFECT_SLEEP, - .power = 0, - .type = TYPE_GRASS, - .accuracy = 55, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_TICKLE - .effect = EFFECT_TICKLE, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_COSMIC_POWER - .effect = EFFECT_COSMIC_POWER, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_WATER_SPOUT - .effect = EFFECT_ERUPTION, - .power = 150, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SIGNAL_BEAM - .effect = EFFECT_CONFUSE_HIT, - .power = 75, - .type = TYPE_BUG, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SHADOW_PUNCH - .effect = EFFECT_ALWAYS_HIT, - .power = 60, - .type = TYPE_GHOST, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_EXTRASENSORY - .effect = EFFECT_FLINCH_MINIMIZE_HIT, - .power = 80, - .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_SKY_UPPERCUT - .effect = EFFECT_SKY_UPPERCUT, - .power = 85, - .type = TYPE_FIGHTING, - .accuracy = 90, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SAND_TOMB - .effect = EFFECT_TRAP, - .power = 15, - .type = TYPE_GROUND, - .accuracy = 70, - .pp = 15, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SHEER_COLD - .effect = EFFECT_OHKO, - .power = 1, - .type = TYPE_ICE, - .accuracy = 30, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_MUDDY_WATER - .effect = EFFECT_ACCURACY_DOWN_HIT, - .power = 95, - .type = TYPE_WATER, - .accuracy = 85, - .pp = 10, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_BOTH, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BULLET_SEED - .effect = EFFECT_MULTI_HIT, - .power = 10, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_AERIAL_ACE - .effect = EFFECT_ALWAYS_HIT, - .power = 60, - .type = TYPE_FLYING, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_ICICLE_SPEAR - .effect = EFFECT_MULTI_HIT, - .power = 10, - .type = TYPE_ICE, - .accuracy = 100, - .pp = 30, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_IRON_DEFENSE - .effect = EFFECT_DEFENSE_UP_2, - .power = 0, - .type = TYPE_STEEL, - .accuracy = 0, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_BLOCK - .effect = EFFECT_MEAN_LOOK, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_HOWL - .effect = EFFECT_ATTACK_UP, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 40, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_DRAGON_CLAW - .effect = EFFECT_HIT, - .power = 80, - .type = TYPE_DRAGON, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_FRENZY_PLANT - .effect = EFFECT_RECHARGE, - .power = 150, - .type = TYPE_GRASS, - .accuracy = 90, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_BULK_UP - .effect = EFFECT_BULK_UP, - .power = 0, - .type = TYPE_FIGHTING, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_BOUNCE - .effect = EFFECT_SEMI_INVULNERABLE, - .power = 85, - .type = TYPE_FLYING, - .accuracy = 85, - .pp = 5, - .secondaryEffectChance = 30, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_MUD_SHOT - .effect = EFFECT_SPEED_DOWN_HIT, - .power = 55, - .type = TYPE_GROUND, - .accuracy = 95, - .pp = 15, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_POISON_TAIL - .effect = EFFECT_POISON_TAIL, - .power = 50, - .type = TYPE_POISON, - .accuracy = 100, - .pp = 25, - .secondaryEffectChance = 10, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_COVET - .effect = EFFECT_THIEF, - .power = 40, - .type = TYPE_NORMAL, - .accuracy = 100, - .pp = 40, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, - }, - { // MOVE_VOLT_TACKLE - .effect = EFFECT_DOUBLE_EDGE, - .power = 120, - .type = TYPE_ELECTRIC, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_MAGICAL_LEAF - .effect = EFFECT_ALWAYS_HIT, - .power = 60, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_WATER_SPORT - .effect = EFFECT_WATER_SPORT, - .power = 0, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = 0, - }, - { // MOVE_CALM_MIND - .effect = EFFECT_CALM_MIND, - .power = 0, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_LEAF_BLADE - .effect = EFFECT_HIGH_CRITICAL, - .power = 70, - .type = TYPE_GRASS, - .accuracy = 100, - .pp = 15, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DRAGON_DANCE - .effect = EFFECT_DRAGON_DANCE, - .power = 0, - .type = TYPE_DRAGON, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, - }, - { // MOVE_ROCK_BLAST - .effect = EFFECT_MULTI_HIT, - .power = 25, - .type = TYPE_ROCK, - .accuracy = 80, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_SHOCK_WAVE - .effect = EFFECT_ALWAYS_HIT, - .power = 60, - .type = TYPE_ELECTRIC, - .accuracy = 0, - .pp = 20, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_WATER_PULSE - .effect = EFFECT_CONFUSE_HIT, - .power = 60, - .type = TYPE_WATER, - .accuracy = 100, - .pp = 20, - .secondaryEffectChance = 20, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, - { // MOVE_DOOM_DESIRE - .effect = EFFECT_FUTURE_SIGHT, - .power = 120, - .type = TYPE_STEEL, - .accuracy = 85, - .pp = 5, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = 0, - }, - { // MOVE_PSYCHO_BOOST - .effect = EFFECT_OVERHEAT, - .power = 140, - .type = TYPE_PSYCHIC, - .accuracy = 90, - .pp = 5, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - }, -}; + [MOVE_NONE] = + { + .effect = EFFECT_HIT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 0, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + + [MOVE_POUND] = + { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_KARATE_CHOP] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 50, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DOUBLE_SLAP] = + { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_COMET_PUNCH] = + { + .effect = EFFECT_MULTI_HIT, + .power = 18, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_MEGA_PUNCH] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_PAY_DAY] = + { + .effect = EFFECT_PAY_DAY, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FIRE_PUNCH] = + { + .effect = EFFECT_BURN_HIT, + .power = 75, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ICE_PUNCH] = + { + .effect = EFFECT_FREEZE_HIT, + .power = 75, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_THUNDER_PUNCH] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 75, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SCRATCH] = + { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_VICE_GRIP] = + { + .effect = EFFECT_HIT, + .power = 55, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_GUILLOTINE] = + { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_RAZOR_WIND] = + { + .effect = EFFECT_RAZOR_WIND, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SWORDS_DANCE] = + { + .effect = EFFECT_ATTACK_UP_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_CUT] = + { + .effect = EFFECT_HIT, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_GUST] = + { + .effect = EFFECT_GUST, + .power = 40, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_WING_ATTACK] = + { + .effect = EFFECT_HIT, + .power = 60, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_WHIRLWIND] = + { + .effect = EFFECT_ROAR, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -6, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FLY] = + { + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 70, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BIND] = + { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SLAM] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_VINE_WHIP] = + { + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_STOMP] = + { + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 65, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DOUBLE_KICK] = + { + .effect = EFFECT_DOUBLE_HIT, + .power = 30, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_MEGA_KICK] = + { + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_JUMP_KICK] = + { + .effect = EFFECT_RECOIL_IF_MISS, + .power = 70, + .type = TYPE_FIGHTING, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ROLLING_KICK] = + { + .effect = EFFECT_FLINCH_HIT, + .power = 60, + .type = TYPE_FIGHTING, + .accuracy = 85, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SAND_ATTACK] = + { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HEADBUTT] = + { + .effect = EFFECT_FLINCH_HIT, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HORN_ATTACK] = + { + .effect = EFFECT_HIT, + .power = 65, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FURY_ATTACK] = + { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_HORN_DRILL] = + { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_TACKLE] = + { + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BODY_SLAM] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 85, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_WRAP] = + { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_TAKE_DOWN] = + { + .effect = EFFECT_RECOIL, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_THRASH] = + { + .effect = EFFECT_RAMPAGE, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DOUBLE_EDGE] = + { + .effect = EFFECT_DOUBLE_EDGE, + .power = 120, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_TAIL_WHIP] = + { + .effect = EFFECT_DEFENSE_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_POISON_STING] = + { + .effect = EFFECT_POISON_HIT, + .power = 15, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_TWINEEDLE] = + { + .effect = EFFECT_TWINEEDLE, + .power = 25, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PIN_MISSILE] = + { + .effect = EFFECT_MULTI_HIT, + .power = 14, + .type = TYPE_BUG, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_LEER] = + { + .effect = EFFECT_DEFENSE_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_BITE] = + { + .effect = EFFECT_FLINCH_HIT, + .power = 60, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_GROWL] = + { + .effect = EFFECT_ATTACK_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ROAR] = + { + .effect = EFFECT_ROAR, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -6, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SING] = + { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SUPERSONIC] = + { + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SONIC_BOOM] = + { + .effect = EFFECT_SONICBOOM, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DISABLE] = + { + .effect = EFFECT_DISABLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ACID] = + { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 40, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_EMBER] = + { + .effect = EFFECT_BURN_HIT, + .power = 40, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FLAMETHROWER] = + { + .effect = EFFECT_BURN_HIT, + .power = 95, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MIST] = + { + .effect = EFFECT_MIST, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_WATER_GUN] = + { + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_HYDRO_PUMP] = + { + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_WATER, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SURF] = + { + .effect = EFFECT_HIT, + .power = 95, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ICE_BEAM] = + { + .effect = EFFECT_FREEZE_HIT, + .power = 95, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_BLIZZARD] = + { + .effect = EFFECT_FREEZE_HIT, + .power = 120, + .type = TYPE_ICE, + .accuracy = 70, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PSYBEAM] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 65, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_BUBBLE_BEAM] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 65, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_AURORA_BEAM] = + { + .effect = EFFECT_ATTACK_DOWN_HIT, + .power = 65, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HYPER_BEAM] = + { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_PECK] = + { + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DRILL_PECK] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SUBMISSION] = + { + .effect = EFFECT_RECOIL, + .power = 80, + .type = TYPE_FIGHTING, + .accuracy = 80, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_LOW_KICK] = + { + .effect = EFFECT_LOW_KICK, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_COUNTER] = + { + .effect = EFFECT_COUNTER, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = -5, + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SEISMIC_TOSS] = + { + .effect = EFFECT_LEVEL_DAMAGE, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_STRENGTH] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ABSORB] = + { + .effect = EFFECT_ABSORB, + .power = 20, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MEGA_DRAIN] = + { + .effect = EFFECT_ABSORB, + .power = 40, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_LEECH_SEED] = + { + .effect = EFFECT_LEECH_SEED, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_GROWTH] = + { + .effect = EFFECT_SPECIAL_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_RAZOR_LEAF] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 55, + .type = TYPE_GRASS, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SOLAR_BEAM] = + { + .effect = EFFECT_SOLARBEAM, + .power = 120, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_POISON_POWDER] = + { + .effect = EFFECT_POISON, + .power = 0, + .type = TYPE_POISON, + .accuracy = 75, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_STUN_SPORE] = + { + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 75, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SLEEP_POWDER] = + { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PETAL_DANCE] = + { + .effect = EFFECT_RAMPAGE, + .power = 70, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_STRING_SHOT] = + { + .effect = EFFECT_SPEED_DOWN, + .power = 0, + .type = TYPE_BUG, + .accuracy = 95, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DRAGON_RAGE] = + { + .effect = EFFECT_DRAGON_RAGE, + .power = 1, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FIRE_SPIN] = + { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_FIRE, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_THUNDER_SHOCK] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 40, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_THUNDERBOLT] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 95, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_THUNDER_WAVE] = + { + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_THUNDER] = + { + .effect = EFFECT_THUNDER, + .power = 120, + .type = TYPE_ELECTRIC, + .accuracy = 70, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ROCK_THROW] = + { + .effect = EFFECT_HIT, + .power = 50, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_EARTHQUAKE] = + { + .effect = EFFECT_EARTHQUAKE, + .power = 100, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FISSURE] = + { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_GROUND, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DIG] = + { + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 60, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_TOXIC] = + { + .effect = EFFECT_TOXIC, + .power = 0, + .type = TYPE_POISON, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_CONFUSION] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 50, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PSYCHIC] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 90, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HYPNOSIS] = + { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 60, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MEDITATE] = + { + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_AGILITY] = + { + .effect = EFFECT_SPEED_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_QUICK_ATTACK] = + { + .effect = EFFECT_QUICK_ATTACK, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_RAGE] = + { + .effect = EFFECT_RAGE, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_TELEPORT] = + { + .effect = EFFECT_TELEPORT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_NIGHT_SHADE] = + { + .effect = EFFECT_LEVEL_DAMAGE, + .power = 1, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_MIMIC] = + { + .effect = EFFECT_MIMIC, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + + [MOVE_SCREECH] = + { + .effect = EFFECT_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DOUBLE_TEAM] = + { + .effect = EFFECT_EVASION_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_RECOVER] = + { + .effect = EFFECT_RESTORE_HP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_HARDEN] = + { + .effect = EFFECT_DEFENSE_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_MINIMIZE] = + { + .effect = EFFECT_MINIMIZE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_SMOKESCREEN] = + { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_CONFUSE_RAY] = + { + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_WITHDRAW] = + { + .effect = EFFECT_DEFENSE_UP, + .power = 0, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_DEFENSE_CURL] = + { + .effect = EFFECT_DEFENSE_CURL, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_BARRIER] = + { + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_LIGHT_SCREEN] = + { + .effect = EFFECT_LIGHT_SCREEN, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_HAZE] = + { + .effect = EFFECT_HAZE, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + + [MOVE_REFLECT] = + { + .effect = EFFECT_REFLECT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_FOCUS_ENERGY] = + { + .effect = EFFECT_FOCUS_ENERGY, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_BIDE] = + { + .effect = EFFECT_BIDE, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_METRONOME] = + { + .effect = EFFECT_METRONOME, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + + [MOVE_MIRROR_MOVE] = + { + .effect = EFFECT_MIRROR_MOVE, + .power = 0, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + + [MOVE_SELF_DESTRUCT] = + { + .effect = EFFECT_EXPLOSION, + .power = 200, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_EGG_BOMB] = + { + .effect = EFFECT_HIT, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_LICK] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 20, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SMOG] = + { + .effect = EFFECT_POISON_HIT, + .power = 20, + .type = TYPE_POISON, + .accuracy = 70, + .pp = 20, + .secondaryEffectChance = 40, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SLUDGE] = + { + .effect = EFFECT_POISON_HIT, + .power = 65, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_BONE_CLUB] = + { + .effect = EFFECT_FLINCH_HIT, + .power = 65, + .type = TYPE_GROUND, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FIRE_BLAST] = + { + .effect = EFFECT_BURN_HIT, + .power = 120, + .type = TYPE_FIRE, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_WATERFALL] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_CLAMP] = + { + .effect = EFFECT_TRAP, + .power = 35, + .type = TYPE_WATER, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SWIFT] = + { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SKULL_BASH] = + { + .effect = EFFECT_SKULL_BASH, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SPIKE_CANNON] = + { + .effect = EFFECT_MULTI_HIT, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_CONSTRICT] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 10, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_AMNESIA] = + { + .effect = EFFECT_SPECIAL_DEFENSE_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_KINESIS] = + { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SOFT_BOILED] = + { + .effect = EFFECT_SOFTBOILED, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HI_JUMP_KICK] = + { + .effect = EFFECT_RECOIL_IF_MISS, + .power = 85, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_GLARE] = + { + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DREAM_EATER] = + { + .effect = EFFECT_DREAM_EATER, + .power = 100, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_POISON_GAS] = + { + .effect = EFFECT_POISON, + .power = 0, + .type = TYPE_POISON, + .accuracy = 55, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_BARRAGE] = + { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_LEECH_LIFE] = + { + .effect = EFFECT_ABSORB, + .power = 20, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_LOVELY_KISS] = + { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SKY_ATTACK] = + { + .effect = EFFECT_SKY_ATTACK, + .power = 140, + .type = TYPE_FLYING, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_TRANSFORM] = + { + .effect = EFFECT_TRANSFORM, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + + [MOVE_BUBBLE] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 20, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DIZZY_PUNCH] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SPORE] = + { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FLASH] = + { + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 70, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PSYWAVE] = + { + .effect = EFFECT_PSYWAVE, + .power = 1, + .type = TYPE_PSYCHIC, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SPLASH] = + { + .effect = EFFECT_SPLASH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ACID_ARMOR] = + { + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_POISON, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_CRABHAMMER] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 90, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_EXPLOSION] = + { + .effect = EFFECT_EXPLOSION, + .power = 250, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FURY_SWIPES] = + { + .effect = EFFECT_MULTI_HIT, + .power = 18, + .type = TYPE_NORMAL, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BONEMERANG] = + { + .effect = EFFECT_DOUBLE_HIT, + .power = 50, + .type = TYPE_GROUND, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_REST] = + { + .effect = EFFECT_REST, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_ROCK_SLIDE] = + { + .effect = EFFECT_FLINCH_HIT, + .power = 75, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HYPER_FANG] = + { + .effect = EFFECT_FLINCH_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SHARPEN] = + { + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_CONVERSION] = + { + .effect = EFFECT_CONVERSION, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_TRI_ATTACK] = + { + .effect = EFFECT_TRI_ATTACK, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SUPER_FANG] = + { + .effect = EFFECT_SUPER_FANG, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SLASH] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SUBSTITUTE] = + { + .effect = EFFECT_SUBSTITUTE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_STRUGGLE] = + { + .effect = EFFECT_RECOIL, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 1, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SKETCH] = + { + .effect = EFFECT_SKETCH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 1, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + + [MOVE_TRIPLE_KICK] = + { + .effect = EFFECT_TRIPLE_KICK, + .power = 10, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_THIEF] = + { + .effect = EFFECT_THIEF, + .power = 40, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SPIDER_WEB] = + { + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MIND_READER] = + { + .effect = EFFECT_LOCK_ON, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_NIGHTMARE] = + { + .effect = EFFECT_NIGHTMARE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FLAME_WHEEL] = + { + .effect = EFFECT_THAW_HIT, + .power = 60, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SNORE] = + { + .effect = EFFECT_SNORE, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_CURSE] = + { + .effect = EFFECT_CURSE, + .power = 0, + .type = TYPE_MYSTERY, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + + [MOVE_FLAIL] = + { + .effect = EFFECT_FLAIL, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_CONVERSION_2] = + { + .effect = EFFECT_CONVERSION_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, -#endif // GUARD_DATA_BATTLE_MOVES + [MOVE_AEROBLAST] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 100, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_COTTON_SPORE] = + { + .effect = EFFECT_SPEED_DOWN_2, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_REVERSAL] = + { + .effect = EFFECT_FLAIL, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SPITE] = + { + .effect = EFFECT_SPITE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_POWDER_SNOW] = + { + .effect = EFFECT_FREEZE_HIT, + .power = 40, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PROTECT] = + { + .effect = EFFECT_PROTECT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_MACH_PUNCH] = + { + .effect = EFFECT_QUICK_ATTACK, + .power = 40, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SCARY_FACE] = + { + .effect = EFFECT_SPEED_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FAINT_ATTACK] = + { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_DARK, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SWEET_KISS] = + { + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_BELLY_DRUM] = + { + .effect = EFFECT_BELLY_DRUM, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_SLUDGE_BOMB] = + { + .effect = EFFECT_POISON_HIT, + .power = 90, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MUD_SLAP] = + { + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 20, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_OCTAZOOKA] = + { + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 65, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SPIKES] = + { + .effect = EFFECT_SPIKES, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_OPPONENTS_FIELD, + .priority = 0, + .flags = 0, + }, + + [MOVE_ZAP_CANNON] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 100, + .type = TYPE_ELECTRIC, + .accuracy = 50, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FORESIGHT] = + { + .effect = EFFECT_FORESIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DESTINY_BOND] = + { + .effect = EFFECT_DESTINY_BOND, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_PERISH_SONG] = + { + .effect = EFFECT_PERISH_SONG, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ICY_WIND] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 55, + .type = TYPE_ICE, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DETECT] = + { + .effect = EFFECT_PROTECT, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_BONE_RUSH] = + { + .effect = EFFECT_MULTI_HIT, + .power = 25, + .type = TYPE_GROUND, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_LOCK_ON] = + { + .effect = EFFECT_LOCK_ON, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_OUTRAGE] = + { + .effect = EFFECT_RAMPAGE, + .power = 90, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SANDSTORM] = + { + .effect = EFFECT_SANDSTORM, + .power = 0, + .type = TYPE_ROCK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_GIGA_DRAIN] = + { + .effect = EFFECT_ABSORB, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ENDURE] = + { + .effect = EFFECT_ENDURE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_CHARM] = + { + .effect = EFFECT_ATTACK_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ROLLOUT] = + { + .effect = EFFECT_ROLLOUT, + .power = 30, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FALSE_SWIPE] = + { + .effect = EFFECT_FALSE_SWIPE, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SWAGGER] = + { + .effect = EFFECT_SWAGGER, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MILK_DRINK] = + { + .effect = EFFECT_SOFTBOILED, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, + }, + + [MOVE_SPARK] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 65, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FURY_CUTTER] = + { + .effect = EFFECT_FURY_CUTTER, + .power = 10, + .type = TYPE_BUG, + .accuracy = 95, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_STEEL_WING] = + { + .effect = EFFECT_DEFENSE_UP_HIT, + .power = 70, + .type = TYPE_STEEL, + .accuracy = 90, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_MEAN_LOOK] = + { + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ATTRACT] = + { + .effect = EFFECT_ATTRACT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SLEEP_TALK] = + { + .effect = EFFECT_SLEEP_TALK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + + [MOVE_HEAL_BELL] = + { + .effect = EFFECT_HEAL_BELL, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_RETURN] = + { + .effect = EFFECT_RETURN, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_PRESENT] = + { + .effect = EFFECT_PRESENT, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FRUSTRATION] = + { + .effect = EFFECT_FRUSTRATION, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SAFEGUARD] = + { + .effect = EFFECT_SAFEGUARD, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_PAIN_SPLIT] = + { + .effect = EFFECT_PAIN_SPLIT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SACRED_FIRE] = + { + .effect = EFFECT_THAW_HIT, + .power = 100, + .type = TYPE_FIRE, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MAGNITUDE] = + { + .effect = EFFECT_MAGNITUDE, + .power = 1, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DYNAMIC_PUNCH] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 100, + .type = TYPE_FIGHTING, + .accuracy = 50, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MEGAHORN] = + { + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_BUG, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DRAGON_BREATH] = + { + .effect = EFFECT_PARALYZE_HIT, + .power = 60, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BATON_PASS] = + { + .effect = EFFECT_BATON_PASS, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ENCORE] = + { + .effect = EFFECT_ENCORE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PURSUIT] = + { + .effect = EFFECT_PURSUIT, + .power = 40, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_RAPID_SPIN] = + { + .effect = EFFECT_RAPID_SPIN, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SWEET_SCENT] = + { + .effect = EFFECT_EVASION_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_IRON_TAIL] = + { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 100, + .type = TYPE_STEEL, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_METAL_CLAW] = + { + .effect = EFFECT_ATTACK_UP_HIT, + .power = 50, + .type = TYPE_STEEL, + .accuracy = 95, + .pp = 35, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_VITAL_THROW] = + { + .effect = EFFECT_VITAL_THROW, + .power = 70, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_MORNING_SUN] = + { + .effect = EFFECT_MORNING_SUN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_SYNTHESIS] = + { + .effect = EFFECT_SYNTHESIS, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_MOONLIGHT] = + { + .effect = EFFECT_MOONLIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_HIDDEN_POWER] = + { + .effect = EFFECT_HIDDEN_POWER, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_CROSS_CHOP] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 100, + .type = TYPE_FIGHTING, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_TWISTER] = + { + .effect = EFFECT_TWISTER, + .power = 40, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_RAIN_DANCE] = + { + .effect = EFFECT_RAIN_DANCE, + .power = 0, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_SUNNY_DAY] = + { + .effect = EFFECT_SUNNY_DAY, + .power = 0, + .type = TYPE_FIRE, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_CRUNCH] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MIRROR_COAT] = + { + .effect = EFFECT_MIRROR_COAT, + .power = 1, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = -5, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_PSYCH_UP] = + { + .effect = EFFECT_PSYCH_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_EXTREME_SPEED] = + { + .effect = EFFECT_QUICK_ATTACK, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ANCIENT_POWER] = + { + .effect = EFFECT_ALL_STATS_UP_HIT, + .power = 60, + .type = TYPE_ROCK, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SHADOW_BALL] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FUTURE_SIGHT] = + { + .effect = EFFECT_FUTURE_SIGHT, + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + + [MOVE_ROCK_SMASH] = + { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 20, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_WHIRLPOOL] = + { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_WATER, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BEAT_UP] = + { + .effect = EFFECT_BEAT_UP, + .power = 10, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FAKE_OUT] = + { + .effect = EFFECT_FAKE_OUT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_UPROAR] = + { + .effect = EFFECT_UPROAR, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_STOCKPILE] = + { + .effect = EFFECT_STOCKPILE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_SPIT_UP] = + { + .effect = EFFECT_SPIT_UP, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SWALLOW] = + { + .effect = EFFECT_SWALLOW, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_HEAT_WAVE] = + { + .effect = EFFECT_BURN_HIT, + .power = 100, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HAIL] = + { + .effect = EFFECT_HAIL, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + + [MOVE_TORMENT] = + { + .effect = EFFECT_TORMENT, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FLATTER] = + { + .effect = EFFECT_FLATTER, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_WILL_O_WISP] = + { + .effect = EFFECT_WILL_O_WISP, + .power = 0, + .type = TYPE_FIRE, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MEMENTO] = + { + .effect = EFFECT_MEMENTO, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FACADE] = + { + .effect = EFFECT_FACADE, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FOCUS_PUNCH] = + { + .effect = EFFECT_FOCUS_PUNCH, + .power = 150, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -3, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, + }, + + [MOVE_SMELLING_SALT] = + { + .effect = EFFECT_SMELLINGSALT, + .power = 60, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FOLLOW_ME] = + { + .effect = EFFECT_FOLLOW_ME, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + + [MOVE_NATURE_POWER] = + { + .effect = EFFECT_NATURE_POWER, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + + [MOVE_CHARGE] = + { + .effect = EFFECT_CHARGE, + .power = 0, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_TAUNT] = + { + .effect = EFFECT_TAUNT, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + + [MOVE_HELPING_HAND] = + { + .effect = EFFECT_HELPING_HAND, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 5, + .flags = 0, + }, + + [MOVE_TRICK] = + { + .effect = EFFECT_TRICK, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ROLE_PLAY] = + { + .effect = EFFECT_ROLE_PLAY, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + + [MOVE_WISH] = + { + .effect = EFFECT_WISH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + + [MOVE_ASSIST] = + { + .effect = EFFECT_ASSIST, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + + [MOVE_INGRAIN] = + { + .effect = EFFECT_INGRAIN, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_SUPERPOWER] = + { + .effect = EFFECT_SUPERPOWER, + .power = 120, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MAGIC_COAT] = + { + .effect = EFFECT_MAGIC_COAT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 4, + .flags = 0, + }, + + [MOVE_RECYCLE] = + { + .effect = EFFECT_RECYCLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_REVENGE] = + { + .effect = EFFECT_REVENGE, + .power = 60, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -4, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BRICK_BREAK] = + { + .effect = EFFECT_BRICK_BREAK, + .power = 75, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_YAWN] = + { + .effect = EFFECT_YAWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_KNOCK_OFF] = + { + .effect = EFFECT_KNOCK_OFF, + .power = 20, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ENDEAVOR] = + { + .effect = EFFECT_ENDEAVOR, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ERUPTION] = + { + .effect = EFFECT_ERUPTION, + .power = 150, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SKILL_SWAP] = + { + .effect = EFFECT_SKILL_SWAP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_IMPRISON] = + { + .effect = EFFECT_IMPRISON, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + + [MOVE_REFRESH] = + { + .effect = EFFECT_REFRESH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_GRUDGE] = + { + .effect = EFFECT_GRUDGE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SNATCH] = + { + .effect = EFFECT_SNATCH, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 4, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SECRET_POWER] = + { + .effect = EFFECT_SECRET_POWER, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_DIVE] = + { + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ARM_THRUST] = + { + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_CAMOUFLAGE] = + { + .effect = EFFECT_CAMOUFLAGE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_TAIL_GLOW] = + { + .effect = EFFECT_SPECIAL_ATTACK_UP_2, + .power = 0, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_LUSTER_PURGE] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MIST_BALL] = + { + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_FEATHER_DANCE] = + { + .effect = EFFECT_ATTACK_DOWN_2, + .power = 0, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_TEETER_DANCE] = + { + .effect = EFFECT_TEETER_DANCE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + + [MOVE_BLAZE_KICK] = + { + .effect = EFFECT_BLAZE_KICK, + .power = 85, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MUD_SPORT] = + { + .effect = EFFECT_MUD_SPORT, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_ICE_BALL] = + { + .effect = EFFECT_ROLLOUT, + .power = 30, + .type = TYPE_ICE, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_NEEDLE_ARM] = + { + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SLACK_OFF] = + { + .effect = EFFECT_RESTORE_HP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_HYPER_VOICE] = + { + .effect = EFFECT_HIT, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_POISON_FANG] = + { + .effect = EFFECT_POISON_FANG, + .power = 50, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_CRUSH_CLAW] = + { + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 75, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 10, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_BLAST_BURN] = + { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_HYDRO_CANNON] = + { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_WATER, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_METEOR_MASH] = + { + .effect = EFFECT_ATTACK_UP_HIT, + .power = 100, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ASTONISH] = + { + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 30, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_WEATHER_BALL] = + { + .effect = EFFECT_WEATHER_BALL, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_AROMATHERAPY] = + { + .effect = EFFECT_HEAL_BELL, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_FAKE_TEARS] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_AIR_CUTTER] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 55, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_OVERHEAT] = + { + .effect = EFFECT_OVERHEAT, + .power = 140, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ODOR_SLEUTH] = + { + .effect = EFFECT_FORESIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_ROCK_TOMB] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 50, + .type = TYPE_ROCK, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SILVER_WIND] = + { + .effect = EFFECT_ALL_STATS_UP_HIT, + .power = 60, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_METAL_SOUND] = + { + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_GRASS_WHISTLE] = + { + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 55, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_TICKLE] = + { + .effect = EFFECT_TICKLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_COSMIC_POWER] = + { + .effect = EFFECT_COSMIC_POWER, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_WATER_SPOUT] = + { + .effect = EFFECT_ERUPTION, + .power = 150, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SIGNAL_BEAM] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 75, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SHADOW_PUNCH] = + { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_EXTRASENSORY] = + { + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_SKY_UPPERCUT] = + { + .effect = EFFECT_SKY_UPPERCUT, + .power = 85, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SAND_TOMB] = + { + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_GROUND, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SHEER_COLD] = + { + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_ICE, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_MUDDY_WATER] = + { + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 95, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BULLET_SEED] = + { + .effect = EFFECT_MULTI_HIT, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_AERIAL_ACE] = + { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_ICICLE_SPEAR] = + { + .effect = EFFECT_MULTI_HIT, + .power = 10, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_IRON_DEFENSE] = + { + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_STEEL, + .accuracy = 0, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_BLOCK] = + { + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_HOWL] = + { + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_DRAGON_CLAW] = + { + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_FRENZY_PLANT] = + { + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_GRASS, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_BULK_UP] = + { + .effect = EFFECT_BULK_UP, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_BOUNCE] = + { + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 85, + .type = TYPE_FLYING, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_MUD_SHOT] = + { + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 55, + .type = TYPE_GROUND, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_POISON_TAIL] = + { + .effect = EFFECT_POISON_TAIL, + .power = 50, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_COVET] = + { + .effect = EFFECT_THIEF, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + + [MOVE_VOLT_TACKLE] = + { + .effect = EFFECT_DOUBLE_EDGE, + .power = 120, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_MAGICAL_LEAF] = + { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_WATER_SPORT] = + { + .effect = EFFECT_WATER_SPORT, + .power = 0, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + + [MOVE_CALM_MIND] = + { + .effect = EFFECT_CALM_MIND, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_LEAF_BLADE] = + { + .effect = EFFECT_HIGH_CRITICAL, + .power = 70, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DRAGON_DANCE] = + { + .effect = EFFECT_DRAGON_DANCE, + .power = 0, + .type = TYPE_DRAGON, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + + [MOVE_ROCK_BLAST] = + { + .effect = EFFECT_MULTI_HIT, + .power = 25, + .type = TYPE_ROCK, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_SHOCK_WAVE] = + { + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_ELECTRIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_WATER_PULSE] = + { + .effect = EFFECT_CONFUSE_HIT, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + + [MOVE_DOOM_DESIRE] = + { + .effect = EFFECT_FUTURE_SIGHT, + .power = 120, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + + [MOVE_PSYCHO_BOOST] = + { + .effect = EFFECT_OVERHEAT, + .power = 140, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, +}; diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index ae560c833..5460ac806 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -1,2889 +1,3129 @@ const struct ContestMove gContestMoves[MOVES_COUNT] = { - [MOVE_NONE] = {0}, - - [MOVE_POUND] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_POUND, - .comboMoves = {0}, - }, - - [MOVE_KARATE_CHOP] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, - }, - - [MOVE_DOUBLE_SLAP] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_POUND}, - }, - - [MOVE_COMET_PUNCH] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MEGA_PUNCH] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER}, - }, - - [MOVE_PAY_DAY] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FIRE_PUNCH] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_FIRE_PUNCH, - .comboMoves = {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH}, - }, - - [MOVE_ICE_PUNCH] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_ICE_PUNCH, - .comboMoves = {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH}, - }, - - [MOVE_THUNDER_PUNCH] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_THUNDER_PUNCH, - .comboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH}, - }, - - [MOVE_SCRATCH] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_SCRATCH, - .comboMoves = {COMBO_STARTER_LEER}, - }, - - [MOVE_VICE_GRIP] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_VICE_GRIP, - .comboMoves = {0}, - }, - - [MOVE_GUILLOTINE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_VICE_GRIP}, - }, - - [MOVE_RAZOR_WIND] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SWORDS_DANCE] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_SWORDS_DANCE, - .comboMoves = {0}, - }, - - [MOVE_CUT] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, - }, - - [MOVE_GUST] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WING_ATTACK] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WHIRLWIND] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FLY] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BIND] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_VICE_GRIP}, - }, - - [MOVE_SLAM] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_POUND}, - }, - - [MOVE_VINE_WHIP] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_STOMP] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0,{0, COMBO_STARTER_LEER}, - }, - - [MOVE_DOUBLE_KICK] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MEGA_KICK] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER}, - }, - - [MOVE_JUMP_KICK] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_MIND_READER}, - }, - - [MOVE_ROLLING_KICK] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SAND_ATTACK] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_SAND_ATTACK, - .comboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM}, - }, - - [MOVE_HEADBUTT] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, - }, - - [MOVE_HORN_ATTACK] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_HORN_ATTACK, - .comboMoves = {COMBO_STARTER_LEER}, - }, - - [MOVE_FURY_ATTACK] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK}, - }, - - [MOVE_HORN_DRILL] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_HORN_ATTACK}, - }, - - [MOVE_TACKLE] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN}, - }, - - [MOVE_BODY_SLAM] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WRAP] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TAKE_DOWN] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN}, - }, - - [MOVE_THRASH] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAGE}, - }, - - [MOVE_DOUBLE_EDGE] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN}, - }, - - [MOVE_TAIL_WHIP] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARM}, - }, - - [MOVE_POISON_STING] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TWINEEDLE] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_PIN_MISSILE] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_LEER] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_LEER, - .comboMoves = {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE}, - }, - - [MOVE_BITE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE}, - }, - - [MOVE_GROWL] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARM}, - }, - - [MOVE_ROAR] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SING] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_SING, - .comboMoves = {0}, - }, - - [MOVE_SUPERSONIC] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SONIC_BOOM] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DISABLE] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ACID] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_EMBER] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_FLAMETHROWER] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_MIST] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WATER_GUN] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT}, - }, - - [MOVE_HYDRO_PUMP] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_SURF] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_SURF, - .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE}, - }, - - [MOVE_ICE_BEAM] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BLIZZARD] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL}, - }, - - [MOVE_PSYBEAM] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_BUBBLE_BEAM] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_AURORA_BEAM] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_HYPER_BEAM] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_PECK] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_PECK, - .comboMoves = {0}, - }, - - [MOVE_DRILL_PECK] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_PECK}, - }, - - [MOVE_SUBMISSION] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_MIND_READER}, - }, - - [MOVE_LOW_KICK] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_COUNTER] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_TAUNT}, - }, - - [MOVE_SEISMIC_TOSS] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FAKE_OUT}, - }, - - [MOVE_STRENGTH] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ABSORB] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_MEGA_DRAIN] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_LEECH_SEED] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_GROWTH] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_GROWTH, - .comboMoves = {0}, - }, - - [MOVE_RAZOR_LEAF] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_SOLAR_BEAM] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH}, - }, - - [MOVE_POISON_POWDER] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWEET_SCENT}, - }, - - [MOVE_STUN_SPORE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWEET_SCENT}, - }, - - [MOVE_SLEEP_POWDER] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWEET_SCENT}, - }, - - [MOVE_PETAL_DANCE] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_STRING_SHOT] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_STRING_SHOT, - .comboMoves = {0}, - }, - - [MOVE_DRAGON_RAGE] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_DRAGON_RAGE, - .comboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE}, - }, - - [MOVE_FIRE_SPIN] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_THUNDER_SHOCK] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARGE}, - }, - - [MOVE_THUNDERBOLT] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARGE}, - }, - - [MOVE_THUNDER_WAVE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARGE}, - }, - - [MOVE_THUNDER] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON}, - }, - - [MOVE_ROCK_THROW] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_ROCK_THROW, - .comboMoves = {0}, - }, - - [MOVE_EARTHQUAKE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_EARTHQUAKE, - .comboMoves = {0}, - }, - - [MOVE_FISSURE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_EARTHQUAKE}, - }, - - [MOVE_DIG] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TOXIC] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_CONFUSION] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_CONFUSION, - .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_PSYCHIC] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_PSYCHIC, - .comboMoves = {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_HYPNOSIS] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_HYPNOSIS, - .comboMoves = {0}, - }, - - [MOVE_MEDITATE] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_AGILITY] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_DOUBLE_TEAM}, - }, - - [MOVE_QUICK_ATTACK] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_DOUBLE_TEAM}, - }, - - [MOVE_RAGE] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_RAGE, - .comboMoves = {0}, - }, - - [MOVE_TELEPORT] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION}, - }, - - [MOVE_NIGHT_SHADE] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MIMIC] = - { - .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SCREECH] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DOUBLE_TEAM] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_DOUBLE_TEAM, - .comboMoves = {0}, - }, - - [MOVE_RECOVER] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_HARDEN] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_HARDEN, - .comboMoves = {0}, - }, - - [MOVE_MINIMIZE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SMOKESCREEN] = - { - .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SMOG}, - }, - - [MOVE_CONFUSE_RAY] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WITHDRAW] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_DEFENSE_CURL] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_DEFENSE_CURL, - .comboMoves = {0}, - }, - - [MOVE_BARRIER] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_LIGHT_SCREEN] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_HAZE] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_REFLECT] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_FOCUS_ENERGY] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_FOCUS_ENERGY, - .comboMoves = {0}, - }, - - [MOVE_BIDE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_METRONOME] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MIRROR_MOVE] = - { - .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SELF_DESTRUCT] = - { - .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_EGG_BOMB] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SOFT_BOILED}, - }, - - [MOVE_LICK] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SMOG] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_SMOG, - .comboMoves = {0}, - }, - - [MOVE_SLUDGE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_SLUDGE, - .comboMoves = {COMBO_STARTER_SLUDGE_BOMB}, - }, - - [MOVE_BONE_CLUB] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_BONE_CLUB, - .comboMoves = {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH}, - }, - - [MOVE_FIRE_BLAST] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_WATERFALL] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_CLAMP] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_SWIFT] = - { - .effect = CONTEST_EFFECT_BETTER_IF_FIRST, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SKULL_BASH] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SPIKE_CANNON] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_CONSTRICT] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_AMNESIA] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_KINESIS] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_KINESIS, - .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION}, - }, - - [MOVE_SOFT_BOILED] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_SOFT_BOILED, - .comboMoves = {0}, - }, - - [MOVE_HI_JUMP_KICK] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_MIND_READER}, - }, - - [MOVE_GLARE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_LEER}, - }, - - [MOVE_DREAM_EATER] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_POISON_GAS] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BARRAGE] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_LEECH_LIFE] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_LOVELY_KISS] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SKY_ATTACK] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TRANSFORM] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BUBBLE] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_DIZZY_PUNCH] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SPORE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FLASH] = - { - .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_PSYWAVE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_SPLASH] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ACID_ARMOR] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_CRABHAMMER] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE}, - }, - - [MOVE_EXPLOSION] = - { - .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FURY_SWIPES] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SCRATCH}, - }, - - [MOVE_BONEMERANG] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_BONEMERANG, - .comboMoves = {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH}, - }, - - [MOVE_REST] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_REST, - .comboMoves = {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN}, - }, - - [MOVE_ROCK_SLIDE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_ROCK_THROW}, - }, - - [MOVE_HYPER_FANG] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SHARPEN] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_CONVERSION] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TRI_ATTACK] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_LOCK_ON}, - }, - - [MOVE_SUPER_FANG] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SCARY_FACE}, - }, - - [MOVE_SLASH] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH}, - }, - - [MOVE_SUBSTITUTE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_STRUGGLE] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SKETCH] = - { - .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TRIPLE_KICK] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, - }, - - [MOVE_THIEF] = - { - .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SPIDER_WEB] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_STRING_SHOT}, - }, - - [MOVE_MIND_READER] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_MIND_READER, - .comboMoves = {0}, - }, - - [MOVE_NIGHTMARE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_HYPNOSIS}, - }, - - [MOVE_FLAME_WHEEL] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_SNORE] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_REST}, - }, - - [MOVE_CURSE] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_CURSE, - .comboMoves = {0}, - }, - - [MOVE_FLAIL] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_ENDURE}, - }, - - [MOVE_CONVERSION_2] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_AEROBLAST] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_COTTON_SPORE] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_REVERSAL] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_ENDURE}, - }, - - [MOVE_SPITE] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CURSE}, - }, - - [MOVE_POWDER_SNOW] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_POWDER_SNOW, - .comboMoves = {COMBO_STARTER_HAIL}, - }, - - [MOVE_PROTECT] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_HARDEN}, - }, - - [MOVE_MACH_PUNCH] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SCARY_FACE] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_SCARY_FACE, - .comboMoves = {COMBO_STARTER_RAGE, COMBO_STARTER_LEER}, - }, - - [MOVE_FAINT_ATTACK] = - { - .effect = CONTEST_EFFECT_BETTER_IF_FIRST, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND}, - }, - - [MOVE_SWEET_KISS] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARM}, - }, - - [MOVE_BELLY_DRUM] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_BELLY_DRUM, - .comboMoves = {0}, - }, - - [MOVE_SLUDGE_BOMB] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_SLUDGE_BOMB, - .comboMoves = {COMBO_STARTER_SLUDGE}, - }, - - [MOVE_MUD_SLAP] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_MUD_SLAP, - .comboMoves = {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM}, - }, - - [MOVE_OCTAZOOKA] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON}, - }, - - [MOVE_SPIKES] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ZAP_CANNON] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_LOCK_ON}, - }, - - [MOVE_FORESIGHT] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DESTINY_BOND] = - { - .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE}, - }, - - [MOVE_PERISH_SONG] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING}, - }, - - [MOVE_ICY_WIND] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DETECT] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_TAUNT}, - }, - - [MOVE_BONE_RUSH] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_BONE_RUSH, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG}, - }, - - [MOVE_LOCK_ON] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_LOCK_ON, - .comboMoves = {0}, - }, - - [MOVE_OUTRAGE] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SANDSTORM] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_SANDSTORM, - .comboMoves = {0}, - }, - - [MOVE_GIGA_DRAIN] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_ENDURE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_ENDURE, - .comboMoves = {0}, - }, - - [MOVE_CHARM] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_CHARM, - .comboMoves = {0}, - }, - - [MOVE_ROLLOUT] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN}, - }, - - [MOVE_FALSE_SWIPE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, - }, - - [MOVE_SWAGGER] = - { - .effect = CONTEST_EFFECT_BETTER_IF_FIRST, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MILK_DRINK] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SPARK] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARGE}, - }, - - [MOVE_FURY_CUTTER] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, - }, - - [MOVE_STEEL_WING] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MEAN_LOOK] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_MEAN_LOOK, - .comboMoves = {COMBO_STARTER_CURSE}, - }, - - [MOVE_ATTRACT] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SLEEP_TALK] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_REST}, - }, - - [MOVE_HEAL_BELL] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_RETURN] = - { - .effect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_PRESENT] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FRUSTRATION] = - { - .effect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SAFEGUARD] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_PAIN_SPLIT] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_ENDURE}, - }, - - [MOVE_SACRED_FIRE] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_MAGNITUDE] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DYNAMIC_PUNCH] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER}, - }, - - [MOVE_MEGAHORN] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DRAGON_BREATH] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_DRAGON_BREATH, - .comboMoves = {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE}, - }, - - [MOVE_BATON_PASS] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ENCORE] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_PURSUIT] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_RAPID_SPIN] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SWEET_SCENT] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_SWEET_SCENT, - .comboMoves = {0}, - }, - - [MOVE_IRON_TAIL] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_METAL_CLAW] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_METAL_SOUND}, - }, - - [MOVE_VITAL_THROW] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FAKE_OUT}, - }, - - [MOVE_MORNING_SUN] = - { - .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_SYNTHESIS] = - { - .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_MOONLIGHT] = - { - .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_HIDDEN_POWER] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_CROSS_CHOP] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, - }, - - [MOVE_TWISTER] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_RAIN_DANCE] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_RAIN_DANCE, - .comboMoves = {0}, - }, - - [MOVE_SUNNY_DAY] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_SUNNY_DAY, - .comboMoves = {0}, - }, - - [MOVE_CRUNCH] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SCARY_FACE}, - }, - - [MOVE_MIRROR_COAT] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_TAUNT}, - }, - - [MOVE_PSYCH_UP] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_EXTREME_SPEED] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ANCIENT_POWER] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SHADOW_BALL] = - { - .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FUTURE_SIGHT] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_ROCK_SMASH] = - { - .effect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WHIRLPOOL] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_BEAT_UP] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FAKE_OUT] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_FAKE_OUT, - .comboMoves = {0}, - }, - - [MOVE_UPROAR] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_STOCKPILE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = COMBO_STARTER_STOCKPILE, - .comboMoves = {0}, - }, - - [MOVE_SPIT_UP] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_STOCKPILE}, - }, - - [MOVE_SWALLOW] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_STOCKPILE}, - }, - - [MOVE_HEAT_WAVE] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_HAIL] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_HAIL, - .comboMoves = {0}, - }, - - [MOVE_TORMENT] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FLATTER] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARM}, - }, - - [MOVE_WILL_O_WISP] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_MEMENTO] = - { - .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FACADE] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FOCUS_PUNCH] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, - }, - - [MOVE_SMELLING_SALT] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FOLLOW_ME] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_NATURE_POWER] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_CHARGE] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_CHARGE, - .comboMoves = {0}, - }, - - [MOVE_TAUNT] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_TAUNT, - .comboMoves = {0}, - }, - - [MOVE_HELPING_HAND] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TRICK] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ROLE_PLAY] = - { - .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WISH] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ASSIST] = - { - .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_INGRAIN] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SUPERPOWER] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_LOCK_ON}, - }, - - [MOVE_MAGIC_COAT] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_RECYCLE] = - { - .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_REVENGE] = - { - .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BRICK_BREAK] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, - }, - - [MOVE_YAWN] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_YAWN, - .comboMoves = {0}, - }, - - [MOVE_KNOCK_OFF] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FAKE_OUT}, - }, - - [MOVE_ENDEAVOR] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_ENDURE}, - }, - - [MOVE_ERUPTION] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_SKILL_SWAP] = - { - .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_IMPRISON] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_REFRESH] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING}, - }, - - [MOVE_GRUDGE] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CURSE}, - }, - - [MOVE_SNATCH] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SECRET_POWER] = - { - .effect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DIVE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = COMBO_STARTER_DIVE, - .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF}, - }, - - [MOVE_ARM_THRUST] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT}, - }, - - [MOVE_CAMOUFLAGE] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TAIL_GLOW] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_LUSTER_PURGE] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_MIST_BALL] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, - - [MOVE_FEATHER_DANCE] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TEETER_DANCE] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BLAZE_KICK] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_MUD_SPORT] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_MUD_SPORT, - .comboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT}, - }, - - [MOVE_ICE_BALL] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_NEEDLE_ARM] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SLACK_OFF] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_YAWN}, - }, - - [MOVE_HYPER_VOICE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_POISON_FANG] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_CRUSH_CLAW] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, - }, - - [MOVE_BLAST_BURN] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_HYDRO_CANNON] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_METEOR_MASH] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ASTONISH] = - { - .effect = CONTEST_EFFECT_STARTLE_PREV_MON, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WEATHER_BALL] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM}, - }, - - [MOVE_AROMATHERAPY] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_FAKE_TEARS] = - { - .effect = CONTEST_EFFECT_BETTER_IF_LAST, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_AIR_CUTTER] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_OVERHEAT] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SUNNY_DAY}, - }, - - [MOVE_ODOR_SLEUTH] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ROCK_TOMB] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_ROCK_THROW}, - }, - - [MOVE_SILVER_WIND] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_METAL_SOUND] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_METAL_SOUND, - .comboMoves = {0}, - }, - - [MOVE_GRASS_WHISTLE] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_TICKLE] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_COSMIC_POWER] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_WATER_SPOUT] = - { - .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_SIGNAL_BEAM] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SHADOW_PUNCH] = - { - .effect = CONTEST_EFFECT_BETTER_IF_FIRST, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_EXTRASENSORY] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SKY_UPPERCUT] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, - }, - - [MOVE_SAND_TOMB] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_SANDSTORM}, - }, - - [MOVE_SHEER_COLD] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MUDDY_WATER] = - { - .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_BULLET_SEED] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_AERIAL_ACE] = - { - .effect = CONTEST_EFFECT_BETTER_IF_FIRST, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_ICICLE_SPEAR] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_IRON_DEFENSE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BLOCK] = - { - .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_HOWL] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DRAGON_CLAW] = - { - .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE}, - }, - - [MOVE_FRENZY_PLANT] = - { - .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_BULK_UP] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_BOUNCE] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_MUD_SHOT] = - { - .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_POISON_TAIL] = - { - .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_COVET] = - { - .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_VOLT_TACKLE] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARGE}, - }, - - [MOVE_MAGICAL_LEAF] = - { - .effect = CONTEST_EFFECT_BETTER_IF_FIRST, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_GROWTH}, - }, - - [MOVE_WATER_SPORT] = - { - .effect = CONTEST_EFFECT_HIGHLY_APPEALING, - .contestCategory = CONTEST_CATEGORY_CUTE, - .comboStarterId = COMBO_STARTER_WATER_SPORT, - .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT}, - }, - - [MOVE_CALM_MIND] = - { - .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = COMBO_STARTER_CALM_MIND, - .comboMoves = {0}, - }, - - [MOVE_LEAF_BLADE] = - { - .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_DRAGON_DANCE] = - { - .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = COMBO_STARTER_DRAGON_DANCE, - .comboMoves = {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH}, - }, - - [MOVE_ROCK_BLAST] = - { - .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, - .contestCategory = CONTEST_CATEGORY_TOUGH, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_SHOCK_WAVE] = - { - .effect = CONTEST_EFFECT_BETTER_IF_FIRST, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CHARGE}, - }, - - [MOVE_WATER_PULSE] = - { - .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, - .contestCategory = CONTEST_CATEGORY_BEAUTY, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_RAIN_DANCE}, - }, - - [MOVE_DOOM_DESIRE] = - { - .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, - .contestCategory = CONTEST_CATEGORY_COOL, - .comboStarterId = 0, - .comboMoves = {0}, - }, - - [MOVE_PSYCHO_BOOST] = - { - .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, - .contestCategory = CONTEST_CATEGORY_SMART, - .comboStarterId = 0, - .comboMoves = {COMBO_STARTER_CALM_MIND}, - }, + [MOVE_NONE] = {0}, + + [MOVE_POUND] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_POUND, + .comboMoves = {0}, + }, + + [MOVE_KARATE_CHOP] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, + }, + + [MOVE_DOUBLE_SLAP] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_POUND}, + }, + + [MOVE_COMET_PUNCH] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MEGA_PUNCH] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER}, + }, + + [MOVE_PAY_DAY] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FIRE_PUNCH] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_FIRE_PUNCH, + .comboMoves = {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_ICE_PUNCH}, + }, + + [MOVE_ICE_PUNCH] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_ICE_PUNCH, + .comboMoves = {COMBO_STARTER_THUNDER_PUNCH, COMBO_STARTER_FIRE_PUNCH}, + }, + + [MOVE_THUNDER_PUNCH] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_THUNDER_PUNCH, + .comboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_FIRE_PUNCH, COMBO_STARTER_ICE_PUNCH}, + }, + + [MOVE_SCRATCH] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_SCRATCH, + .comboMoves = {COMBO_STARTER_LEER}, + }, + + [MOVE_VICE_GRIP] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_VICE_GRIP, + .comboMoves = {0}, + }, + + [MOVE_GUILLOTINE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_VICE_GRIP}, + }, + + [MOVE_RAZOR_WIND] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SWORDS_DANCE] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_SWORDS_DANCE, + .comboMoves = {0}, + }, + + [MOVE_CUT] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, + }, + + [MOVE_GUST] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WING_ATTACK] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WHIRLWIND] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FLY] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BIND] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_VICE_GRIP}, + }, + + [MOVE_SLAM] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_POUND}, + }, + + [MOVE_VINE_WHIP] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_STOMP] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0,{0, COMBO_STARTER_LEER}, + }, + + [MOVE_DOUBLE_KICK] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MEGA_KICK] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER}, + }, + + [MOVE_JUMP_KICK] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_MIND_READER}, + }, + + [MOVE_ROLLING_KICK] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SAND_ATTACK] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_SAND_ATTACK, + .comboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_SANDSTORM}, + }, + + [MOVE_HEADBUTT] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, + }, + + [MOVE_HORN_ATTACK] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_HORN_ATTACK, + .comboMoves = {COMBO_STARTER_LEER}, + }, + + [MOVE_FURY_ATTACK] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_HORN_ATTACK, COMBO_STARTER_PECK}, + }, + + [MOVE_HORN_DRILL] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_HORN_ATTACK}, + }, + + [MOVE_TACKLE] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_LEER, COMBO_STARTER_HARDEN}, + }, + + [MOVE_BODY_SLAM] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WRAP] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TAKE_DOWN] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN}, + }, + + [MOVE_THRASH] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAGE}, + }, + + [MOVE_DOUBLE_EDGE] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_HARDEN}, + }, + + [MOVE_TAIL_WHIP] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARM}, + }, + + [MOVE_POISON_STING] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TWINEEDLE] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_PIN_MISSILE] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_LEER] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_LEER, + .comboMoves = {COMBO_STARTER_RAGE, COMBO_STARTER_SCARY_FACE}, + }, + + [MOVE_BITE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_LEER, COMBO_STARTER_SCARY_FACE}, + }, + + [MOVE_GROWL] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARM}, + }, + + [MOVE_ROAR] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SING] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_SING, + .comboMoves = {0}, + }, + + [MOVE_SUPERSONIC] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SONIC_BOOM] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DISABLE] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ACID] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_EMBER] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_FLAMETHROWER] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_MIST] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WATER_GUN] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_WATER_SPORT, COMBO_STARTER_MUD_SPORT}, + }, + + [MOVE_HYDRO_PUMP] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_SURF] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_SURF, + .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_DIVE}, + }, + + [MOVE_ICE_BEAM] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BLIZZARD] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_POWDER_SNOW, COMBO_STARTER_HAIL}, + }, + + [MOVE_PSYBEAM] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_BUBBLE_BEAM] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_AURORA_BEAM] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_HYPER_BEAM] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_PECK] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_PECK, + .comboMoves = {0}, + }, + + [MOVE_DRILL_PECK] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_PECK}, + }, + + [MOVE_SUBMISSION] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_MIND_READER}, + }, + + [MOVE_LOW_KICK] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_COUNTER] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_TAUNT}, + }, + + [MOVE_SEISMIC_TOSS] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FAKE_OUT}, + }, + + [MOVE_STRENGTH] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ABSORB] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_MEGA_DRAIN] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_LEECH_SEED] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_GROWTH] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_GROWTH, + .comboMoves = {0}, + }, + + [MOVE_RAZOR_LEAF] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_SOLAR_BEAM] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_GROWTH}, + }, + + [MOVE_POISON_POWDER] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWEET_SCENT}, + }, + + [MOVE_STUN_SPORE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWEET_SCENT}, + }, + + [MOVE_SLEEP_POWDER] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWEET_SCENT}, + }, + + [MOVE_PETAL_DANCE] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_STRING_SHOT] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_STRING_SHOT, + .comboMoves = {0}, + }, + + [MOVE_DRAGON_RAGE] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_DRAGON_RAGE, + .comboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_DANCE}, + }, + + [MOVE_FIRE_SPIN] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_THUNDER_SHOCK] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARGE}, + }, + + [MOVE_THUNDERBOLT] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARGE}, + }, + + [MOVE_THUNDER_WAVE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARGE}, + }, + + [MOVE_THUNDER] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARGE, COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON}, + }, + + [MOVE_ROCK_THROW] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_ROCK_THROW, + .comboMoves = {0}, + }, + + [MOVE_EARTHQUAKE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_EARTHQUAKE, + .comboMoves = {0}, + }, + + [MOVE_FISSURE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_EARTHQUAKE}, + }, + + [MOVE_DIG] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TOXIC] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_CONFUSION] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_CONFUSION, + .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_PSYCHIC] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_PSYCHIC, + .comboMoves = {COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_HYPNOSIS] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_HYPNOSIS, + .comboMoves = {0}, + }, + + [MOVE_MEDITATE] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_AGILITY] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_DOUBLE_TEAM}, + }, + + [MOVE_QUICK_ATTACK] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_DOUBLE_TEAM}, + }, + + [MOVE_RAGE] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_RAGE, + .comboMoves = {0}, + }, + + [MOVE_TELEPORT] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_DOUBLE_TEAM, COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION}, + }, + + [MOVE_NIGHT_SHADE] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MIMIC] = + { + .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SCREECH] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DOUBLE_TEAM] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_DOUBLE_TEAM, + .comboMoves = {0}, + }, + + [MOVE_RECOVER] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_HARDEN] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_HARDEN, + .comboMoves = {0}, + }, + + [MOVE_MINIMIZE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SMOKESCREEN] = + { + .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SMOG}, + }, + + [MOVE_CONFUSE_RAY] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WITHDRAW] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_DEFENSE_CURL] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_DEFENSE_CURL, + .comboMoves = {0}, + }, + + [MOVE_BARRIER] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_LIGHT_SCREEN] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_HAZE] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_REFLECT] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_FOCUS_ENERGY] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_FOCUS_ENERGY, + .comboMoves = {0}, + }, + + [MOVE_BIDE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_METRONOME] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MIRROR_MOVE] = + { + .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SELF_DESTRUCT] = + { + .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_EGG_BOMB] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SOFT_BOILED}, + }, + + [MOVE_LICK] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SMOG] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_SMOG, + .comboMoves = {0}, + }, + + [MOVE_SLUDGE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_SLUDGE, + .comboMoves = {COMBO_STARTER_SLUDGE_BOMB}, + }, + + [MOVE_BONE_CLUB] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_BONE_CLUB, + .comboMoves = {COMBO_STARTER_BONEMERANG, COMBO_STARTER_BONE_RUSH}, + }, + + [MOVE_FIRE_BLAST] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_WATERFALL] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_CLAMP] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_SWIFT] = + { + .effect = CONTEST_EFFECT_BETTER_IF_FIRST, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SKULL_BASH] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SPIKE_CANNON] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_CONSTRICT] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_AMNESIA] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_KINESIS] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_KINESIS, + .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_CONFUSION}, + }, + + [MOVE_SOFT_BOILED] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_SOFT_BOILED, + .comboMoves = {0}, + }, + + [MOVE_HI_JUMP_KICK] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_MIND_READER}, + }, + + [MOVE_GLARE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_LEER}, + }, + + [MOVE_DREAM_EATER] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_HYPNOSIS, COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_POISON_GAS] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BARRAGE] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_LEECH_LIFE] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_LOVELY_KISS] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SKY_ATTACK] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TRANSFORM] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BUBBLE] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_DIZZY_PUNCH] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SPORE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FLASH] = + { + .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_PSYWAVE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_SPLASH] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ACID_ARMOR] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_CRABHAMMER] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SWORDS_DANCE}, + }, + + [MOVE_EXPLOSION] = + { + .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FURY_SWIPES] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SCRATCH}, + }, + + [MOVE_BONEMERANG] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_BONEMERANG, + .comboMoves = {COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONE_RUSH}, + }, + + [MOVE_REST] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_REST, + .comboMoves = {COMBO_STARTER_BELLY_DRUM, COMBO_STARTER_CHARM, COMBO_STARTER_YAWN}, + }, + + [MOVE_ROCK_SLIDE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_ROCK_THROW}, + }, + + [MOVE_HYPER_FANG] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SHARPEN] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_CONVERSION] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TRI_ATTACK] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_LOCK_ON}, + }, + + [MOVE_SUPER_FANG] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SCARY_FACE}, + }, + + [MOVE_SLASH] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWORDS_DANCE, COMBO_STARTER_SCRATCH}, + }, + + [MOVE_SUBSTITUTE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_STRUGGLE] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SKETCH] = + { + .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TRIPLE_KICK] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, + }, + + [MOVE_THIEF] = + { + .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SPIDER_WEB] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_STRING_SHOT}, + }, + + [MOVE_MIND_READER] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_MIND_READER, + .comboMoves = {0}, + }, + + [MOVE_NIGHTMARE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_HYPNOSIS}, + }, + + [MOVE_FLAME_WHEEL] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_SNORE] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_REST}, + }, + + [MOVE_CURSE] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_CURSE, + .comboMoves = {0}, + }, + + [MOVE_FLAIL] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_ENDURE}, + }, + + [MOVE_CONVERSION_2] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_AEROBLAST] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_COTTON_SPORE] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_REVERSAL] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_ENDURE}, + }, + + [MOVE_SPITE] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CURSE}, + }, + + [MOVE_POWDER_SNOW] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_POWDER_SNOW, + .comboMoves = {COMBO_STARTER_HAIL}, + }, + + [MOVE_PROTECT] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_HARDEN}, + }, + + [MOVE_MACH_PUNCH] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SCARY_FACE] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_SCARY_FACE, + .comboMoves = {COMBO_STARTER_RAGE, COMBO_STARTER_LEER}, + }, + + [MOVE_FAINT_ATTACK] = + { + .effect = CONTEST_EFFECT_BETTER_IF_FIRST, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FAKE_OUT, COMBO_STARTER_LEER, COMBO_STARTER_POUND}, + }, + + [MOVE_SWEET_KISS] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARM}, + }, + + [MOVE_BELLY_DRUM] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_BELLY_DRUM, + .comboMoves = {0}, + }, + + [MOVE_SLUDGE_BOMB] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_SLUDGE_BOMB, + .comboMoves = {COMBO_STARTER_SLUDGE}, + }, + + [MOVE_MUD_SLAP] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_MUD_SLAP, + .comboMoves = {COMBO_STARTER_SAND_ATTACK, COMBO_STARTER_MUD_SPORT, COMBO_STARTER_SANDSTORM}, + }, + + [MOVE_OCTAZOOKA] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_LOCK_ON}, + }, + + [MOVE_SPIKES] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ZAP_CANNON] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_LOCK_ON}, + }, + + [MOVE_FORESIGHT] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DESTINY_BOND] = + { + .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_CURSE, COMBO_STARTER_ENDURE}, + }, + + [MOVE_PERISH_SONG] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_MEAN_LOOK, COMBO_STARTER_SING}, + }, + + [MOVE_ICY_WIND] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DETECT] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_TAUNT}, + }, + + [MOVE_BONE_RUSH] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_BONE_RUSH, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_BONE_CLUB, COMBO_STARTER_BONEMERANG}, + }, + + [MOVE_LOCK_ON] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_LOCK_ON, + .comboMoves = {0}, + }, + + [MOVE_OUTRAGE] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SANDSTORM] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_SANDSTORM, + .comboMoves = {0}, + }, + + [MOVE_GIGA_DRAIN] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_ENDURE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_ENDURE, + .comboMoves = {0}, + }, + + [MOVE_CHARM] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_CHARM, + .comboMoves = {0}, + }, + + [MOVE_ROLLOUT] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_DEFENSE_CURL, COMBO_STARTER_HARDEN}, + }, + + [MOVE_FALSE_SWIPE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, + }, + + [MOVE_SWAGGER] = + { + .effect = CONTEST_EFFECT_BETTER_IF_FIRST, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MILK_DRINK] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SPARK] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARGE}, + }, + + [MOVE_FURY_CUTTER] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, + }, + + [MOVE_STEEL_WING] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MEAN_LOOK] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_MEAN_LOOK, + .comboMoves = {COMBO_STARTER_CURSE}, + }, + + [MOVE_ATTRACT] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SLEEP_TALK] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_REST}, + }, + + [MOVE_HEAL_BELL] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_RETURN] = + { + .effect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_PRESENT] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FRUSTRATION] = + { + .effect = CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SAFEGUARD] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_PAIN_SPLIT] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_ENDURE}, + }, + + [MOVE_SACRED_FIRE] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_MAGNITUDE] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DYNAMIC_PUNCH] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_MIND_READER}, + }, + + [MOVE_MEGAHORN] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DRAGON_BREATH] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_DRAGON_BREATH, + .comboMoves = {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE}, + }, + + [MOVE_BATON_PASS] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ENCORE] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_PURSUIT] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_RAPID_SPIN] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SWEET_SCENT] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_SWEET_SCENT, + .comboMoves = {0}, + }, + + [MOVE_IRON_TAIL] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_METAL_CLAW] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_METAL_SOUND}, + }, + + [MOVE_VITAL_THROW] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FAKE_OUT}, + }, + + [MOVE_MORNING_SUN] = + { + .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_SYNTHESIS] = + { + .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_MOONLIGHT] = + { + .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_HIDDEN_POWER] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_CROSS_CHOP] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, + }, + + [MOVE_TWISTER] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_RAIN_DANCE] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_RAIN_DANCE, + .comboMoves = {0}, + }, + + [MOVE_SUNNY_DAY] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_SUNNY_DAY, + .comboMoves = {0}, + }, + + [MOVE_CRUNCH] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SCARY_FACE}, + }, + + [MOVE_MIRROR_COAT] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_TAUNT}, + }, + + [MOVE_PSYCH_UP] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_EXTREME_SPEED] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ANCIENT_POWER] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SHADOW_BALL] = + { + .effect = CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FUTURE_SIGHT] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_PSYCHIC, COMBO_STARTER_KINESIS, COMBO_STARTER_CONFUSION, COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_ROCK_SMASH] = + { + .effect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WHIRLPOOL] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_BEAT_UP] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FAKE_OUT] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_FAKE_OUT, + .comboMoves = {0}, + }, + + [MOVE_UPROAR] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_STOCKPILE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = COMBO_STARTER_STOCKPILE, + .comboMoves = {0}, + }, + + [MOVE_SPIT_UP] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_STOCKPILE}, + }, + + [MOVE_SWALLOW] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_STOCKPILE}, + }, + + [MOVE_HEAT_WAVE] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_HAIL] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_HAIL, + .comboMoves = {0}, + }, + + [MOVE_TORMENT] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FLATTER] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARM}, + }, + + [MOVE_WILL_O_WISP] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_MEMENTO] = + { + .effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FACADE] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FOCUS_PUNCH] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, + }, + + [MOVE_SMELLING_SALT] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FOLLOW_ME] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_NATURE_POWER] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_CHARGE] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_CHARGE, + .comboMoves = {0}, + }, + + [MOVE_TAUNT] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_TAUNT, + .comboMoves = {0}, + }, + + [MOVE_HELPING_HAND] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TRICK] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ROLE_PLAY] = + { + .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WISH] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ASSIST] = + { + .effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_INGRAIN] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SUPERPOWER] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_LOCK_ON}, + }, + + [MOVE_MAGIC_COAT] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_RECYCLE] = + { + .effect = CONTEST_EFFECT_REPETITION_NOT_BORING, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_REVENGE] = + { + .effect = CONTEST_EFFECT_NEXT_APPEAL_LATER, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BRICK_BREAK] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, + }, + + [MOVE_YAWN] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_YAWN, + .comboMoves = {0}, + }, + + [MOVE_KNOCK_OFF] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FAKE_OUT}, + }, + + [MOVE_ENDEAVOR] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_ENDURE}, + }, + + [MOVE_ERUPTION] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_ENDURE, COMBO_STARTER_EARTHQUAKE, COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_SKILL_SWAP] = + { + .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_IMPRISON] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_REFRESH] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_WATER_SPORT, COMBO_STARTER_SING}, + }, + + [MOVE_GRUDGE] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CURSE}, + }, + + [MOVE_SNATCH] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SECRET_POWER] = + { + .effect = CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DIVE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = COMBO_STARTER_DIVE, + .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SURF}, + }, + + [MOVE_ARM_THRUST] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY, COMBO_STARTER_FAKE_OUT}, + }, + + [MOVE_CAMOUFLAGE] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TAIL_GLOW] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_LUSTER_PURGE] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_MIST_BALL] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, + + [MOVE_FEATHER_DANCE] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TEETER_DANCE] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BLAZE_KICK] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_MUD_SPORT] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_MUD_SPORT, + .comboMoves = {COMBO_STARTER_MUD_SLAP, COMBO_STARTER_WATER_SPORT}, + }, + + [MOVE_ICE_BALL] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_NEEDLE_ARM] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SLACK_OFF] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_YAWN}, + }, + + [MOVE_HYPER_VOICE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_POISON_FANG] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_CRUSH_CLAW] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SWORDS_DANCE}, + }, + + [MOVE_BLAST_BURN] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_HYDRO_CANNON] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_METEOR_MASH] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ASTONISH] = + { + .effect = CONTEST_EFFECT_STARTLE_PREV_MON, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WEATHER_BALL] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_SUNNY_DAY, COMBO_STARTER_HAIL, COMBO_STARTER_SANDSTORM}, + }, + + [MOVE_AROMATHERAPY] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_FAKE_TEARS] = + { + .effect = CONTEST_EFFECT_BETTER_IF_LAST, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_AIR_CUTTER] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_OVERHEAT] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SUNNY_DAY}, + }, + + [MOVE_ODOR_SLEUTH] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ROCK_TOMB] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_ROCK_THROW}, + }, + + [MOVE_SILVER_WIND] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_METAL_SOUND] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_METAL_SOUND, + .comboMoves = {0}, + }, + + [MOVE_GRASS_WHISTLE] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_TICKLE] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_COSMIC_POWER] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_WATER_SPOUT] = + { + .effect = CONTEST_EFFECT_BETTER_WHEN_LATER, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_SIGNAL_BEAM] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SHADOW_PUNCH] = + { + .effect = CONTEST_EFFECT_BETTER_IF_FIRST, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_EXTRASENSORY] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SKY_UPPERCUT] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_FOCUS_ENERGY}, + }, + + [MOVE_SAND_TOMB] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_SANDSTORM}, + }, + + [MOVE_SHEER_COLD] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MUDDY_WATER] = + { + .effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_BULLET_SEED] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_AERIAL_ACE] = + { + .effect = CONTEST_EFFECT_BETTER_IF_FIRST, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_ICICLE_SPEAR] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_IRON_DEFENSE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BLOCK] = + { + .effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_HOWL] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DRAGON_CLAW] = + { + .effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_DRAGON_BREATH, COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_DANCE}, + }, + + [MOVE_FRENZY_PLANT] = + { + .effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_BULK_UP] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_BOUNCE] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_MUD_SHOT] = + { + .effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_POISON_TAIL] = + { + .effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_COVET] = + { + .effect = CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_VOLT_TACKLE] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARGE}, + }, + + [MOVE_MAGICAL_LEAF] = + { + .effect = CONTEST_EFFECT_BETTER_IF_FIRST, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_GROWTH}, + }, + + [MOVE_WATER_SPORT] = + { + .effect = CONTEST_EFFECT_HIGHLY_APPEALING, + .contestCategory = CONTEST_CATEGORY_CUTE, + .comboStarterId = COMBO_STARTER_WATER_SPORT, + .comboMoves = {COMBO_STARTER_RAIN_DANCE, COMBO_STARTER_MUD_SPORT}, + }, + + [MOVE_CALM_MIND] = + { + .effect = CONTEST_EFFECT_AVOID_STARTLE_ONCE, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = COMBO_STARTER_CALM_MIND, + .comboMoves = {0}, + }, + + [MOVE_LEAF_BLADE] = + { + .effect = CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_DRAGON_DANCE] = + { + .effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = COMBO_STARTER_DRAGON_DANCE, + .comboMoves = {COMBO_STARTER_DRAGON_RAGE, COMBO_STARTER_DRAGON_BREATH}, + }, + + [MOVE_ROCK_BLAST] = + { + .effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_SHOCK_WAVE] = + { + .effect = CONTEST_EFFECT_BETTER_IF_FIRST, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CHARGE}, + }, + + [MOVE_WATER_PULSE] = + { + .effect = CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_RAIN_DANCE}, + }, + + [MOVE_DOOM_DESIRE] = + { + .effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE, + .contestCategory = CONTEST_CATEGORY_COOL, + .comboStarterId = 0, + .comboMoves = {0}, + }, + + [MOVE_PSYCHO_BOOST] = + { + .effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED, + .contestCategory = CONTEST_CATEGORY_SMART, + .comboStarterId = 0, + .comboMoves = {COMBO_STARTER_CALM_MIND}, + }, }; const struct ContestEffect gContestEffects[] = { - {0, 40, 0}, // CONTEST_EFFECT_HIGHLY_APPEALING - {0, 60, 0}, // CONTEST_EFFECT_USER_MORE_EASILY_STARTLED - {0, 80, 0}, // CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES - {0, 30, 0}, // CONTEST_EFFECT_REPETITION_NOT_BORING - {1, 20, 0}, // CONTEST_EFFECT_AVOID_STARTLE_ONCE - {1, 10, 0}, // CONTEST_EFFECT_AVOID_STARTLE - {1, 30, 0}, // CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY - {1, 30, 0}, // CONTEST_EFFECT_USER_LESS_EASILY_STARTLED - {2, 30, 20}, // CONTEST_EFFECT_STARTLE_FRONT_MON - {3, 30, 10}, // CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS - {2, 20, 30}, // CONTEST_EFFECT_STARTLE_PREV_MON - {3, 20, 20}, // CONTEST_EFFECT_STARTLE_PREV_MONS - {2, 10, 40}, // CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON - {3, 10, 30}, // CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS - {2, 30, 20}, // CONTEST_EFFECT_STARTLE_PREV_MON_2 - {3, 30, 10}, // CONTEST_EFFECT_STARTLE_PREV_MONS_2 - {4, 30, 0}, // CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION - {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION - {3, 40, 40}, // CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN - {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL - {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL - {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL - {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL - {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL - {3, 20, 10}, // CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL - {4, 20, 0}, // CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS - {4, 20, 0}, // CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS - {4, 30, 0}, // CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS - {3, 30, 10}, // CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION - {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_FIRST - {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_LAST - {5, 10, 0}, // CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES - {5, 10, 0}, // CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE - {5, 10, 0}, // CONTEST_EFFECT_BETTER_WHEN_LATER - {5, 10, 0}, // CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING - {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_SAME_TYPE - {5, 20, 0}, // CONTEST_EFFECT_BETTER_IF_DIFF_TYPE - {5, 30, 0}, // CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL - {5, 10, 0}, // CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS - {5, 10, 0}, // CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION - {6, 30, 0}, // CONTEST_EFFECT_NEXT_APPEAL_EARLIER - {6, 30, 0}, // CONTEST_EFFECT_NEXT_APPEAL_LATER - {6, 30, 0}, // CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER - {6, 30, 0}, // CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER - {5, 10, 0}, // CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST - {3, 20, 10}, // CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS - {5, 10, 0}, // CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED - {4, 30, 0} // CONTEST_EFFECT_DONT_EXCITE_AUDIENCE + [CONTEST_EFFECT_HIGHLY_APPEALING] = + { + .effectType = 0, + .appeal = 40, + .jam = 0, + }, + [CONTEST_EFFECT_USER_MORE_EASILY_STARTLED] = + { + .effectType = 0, + .appeal = 60, + .jam = 0, + }, + [CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES] = + { + .effectType = 0, + .appeal = 80, + .jam = 0, + }, + [CONTEST_EFFECT_REPETITION_NOT_BORING] = + { + .effectType = 0, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_AVOID_STARTLE_ONCE] = + { + .effectType = 1, + .appeal = 20, + .jam = 0, + }, + [CONTEST_EFFECT_AVOID_STARTLE] = + { + .effectType = 1, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY] = + { + .effectType = 1, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_USER_LESS_EASILY_STARTLED] = + { + .effectType = 1, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_STARTLE_FRONT_MON] = + { + .effectType = 2, + .appeal = 30, + .jam = 20, + }, + [CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS] = + { + .effectType = 3, + .appeal = 30, + .jam = 10, + }, + [CONTEST_EFFECT_STARTLE_PREV_MON] = + { + .effectType = 2, + .appeal = 20, + .jam = 30, + }, + [CONTEST_EFFECT_STARTLE_PREV_MONS] = + { + .effectType = 3, + .appeal = 20, + .jam = 20, + }, + [CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON] = + { + .effectType = 2, + .appeal = 10, + .jam = 40, + }, + [CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS] = + { + .effectType = 3, + .appeal = 10, + .jam = 30, + }, + [CONTEST_EFFECT_STARTLE_PREV_MON_2] = + { + .effectType = 2, + .appeal = 30, + .jam = 20, + }, + [CONTEST_EFFECT_STARTLE_PREV_MONS_2] = + { + .effectType = 3, + .appeal = 30, + .jam = 10, + }, + [CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION] = + { + .effectType = 4, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN] = + { + .effectType = 3, + .appeal = 40, + .jam = 40, + }, + [CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS] = + { + .effectType = 4, + .appeal = 20, + .jam = 0, + }, + [CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS] = + { + .effectType = 4, + .appeal = 20, + .jam = 0, + }, + [CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS] = + { + .effectType = 4, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION] = + { + .effectType = 3, + .appeal = 30, + .jam = 10, + }, + [CONTEST_EFFECT_BETTER_IF_FIRST] = + { + .effectType = 5, + .appeal = 20, + .jam = 0, + }, + [CONTEST_EFFECT_BETTER_IF_LAST] = + { + .effectType = 5, + .appeal = 20, + .jam = 0, + }, + [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_BETTER_WHEN_LATER] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_BETTER_IF_SAME_TYPE] = + { + .effectType = 5, + .appeal = 20, + .jam = 0, + }, + [CONTEST_EFFECT_BETTER_IF_DIFF_TYPE] = + { + .effectType = 5, + .appeal = 20, + .jam = 0, + }, + [CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL] = + { + .effectType = 5, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_NEXT_APPEAL_EARLIER] = + { + .effectType = 6, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_NEXT_APPEAL_LATER] = + { + .effectType = 6, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER] = + { + .effectType = 6, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER] = + { + .effectType = 6, + .appeal = 30, + .jam = 0, + }, + [CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS] = + { + .effectType = 3, + .appeal = 20, + .jam = 10, + }, + [CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED] = + { + .effectType = 5, + .appeal = 10, + .jam = 0, + }, + [CONTEST_EFFECT_DONT_EXCITE_AUDIENCE] = + { + .effectType = 4, + .appeal = 30, + .jam = 0, + }, }; // A lookup table with TRUE for each combo starter ID and FALSE for ID 0, diff --git a/src/data/decoration/description.h b/src/data/decoration/description.h index ba4c3dd54..b56f43eb6 100644 --- a/src/data/decoration/description.h +++ b/src/data/decoration/description.h @@ -1,10 +1,3 @@ -// -// Created by scott on 10/21/2017. -// - -#ifndef GUARD_DATA_DECORATION_DESCRIPTION_H -#define GUARD_DATA_DECORATION_DESCRIPTION_H - const u8 DecorDesc_SMALL_DESK[] = _( "A small desk built\n" "for one."); @@ -578,4 +571,3 @@ const u8 DecorDesc_REGISTEEL_DOLL[] = _( "A large doll.\n" "Place it on a mat\n" "or a desk."); -#endif //GUARD_DATA_DECORATION_DESCRIPTION_H diff --git a/src/data/decoration/header.h b/src/data/decoration/header.h index 64bed1c7e..a909bd9fd 100644 --- a/src/data/decoration/header.h +++ b/src/data/decoration/header.h @@ -1,10 +1,3 @@ -// -// Created by scott on 10/21/2017. -// - -#ifndef GUARD_DATA_DECORATION_HEADER_H -#define GUARD_DATA_DECORATION_HEADER_H - const struct Decoration gDecorations[] = { { DECOR_NONE, @@ -1096,5 +1089,3 @@ const struct Decoration gDecorations[] = { DecorDesc_REGISTEEL_DOLL, DecorGfx_REGISTEEL_DOLL} }; - -#endif //GUARD_DATA_DECORATION_HEADER_H diff --git a/src/data/decoration/icon.h b/src/data/decoration/icon.h index 1823485ba..58d9cea7b 100644 --- a/src/data/decoration/icon.h +++ b/src/data/decoration/icon.h @@ -1,10 +1,3 @@ -// -// Created by scott on 10/21/2017. -// - -#ifndef GUARD_ICON_H -#define GUARD_ICON_H - const u32 *const gUnknown_085A6BE8[][2] = { {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, {NULL, NULL}, @@ -128,5 +121,3 @@ const u32 *const gUnknown_085A6BE8[][2] = { {gUnknown_08DB9DD4, gUnknown_08DB9EE4}, {gUnknown_08DBA020, gUnknown_08DBA12C} }; - -#endif //GUARD_ICON_H diff --git a/src/data/decoration/tilemaps.h b/src/data/decoration/tilemaps.h index 1cca7ae0b..12fe31dc0 100644 --- a/src/data/decoration/tilemaps.h +++ b/src/data/decoration/tilemaps.h @@ -1,10 +1,3 @@ -// -// Created by scott on 10/21/2017. -// - -#ifndef GUARD_TILEMAPS_H -#define GUARD_TILEMAPS_H - const u8 Unknown_085A6FB0[] = { 0x00, 0x01, 0x02, 0x03 }; @@ -235,5 +228,3 @@ const struct { Unknown_085A7198, 0x18 }}; - -#endif //GUARD_TILEMAPS_H diff --git a/src/data/decoration/tiles.h b/src/data/decoration/tiles.h index 6b3ed699f..2b91cb53d 100644 --- a/src/data/decoration/tiles.h +++ b/src/data/decoration/tiles.h @@ -1,6 +1,3 @@ -#ifndef GUARD_DATA_DECORATION_TILES -#define GUARD_DATA_DECORATION_TILES - const u16 DecorGfx_SMALL_DESK[] = { 0x87 }; @@ -642,5 +639,3 @@ const u16 DecorGfx_REGICE_DOLL[] = { const u16 DecorGfx_REGISTEEL_DOLL[] = { EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL }; - -#endif // GUARD_DATA_DECORATION_TILES diff --git a/src/data/field_event_obj/base_oam.h b/src/data/field_event_obj/base_oam.h index 1aa6987c3..543382d43 100755 --- a/src/data/field_event_obj/base_oam.h +++ b/src/data/field_event_obj/base_oam.h @@ -1,6 +1,3 @@ -#ifndef GUARD_BASE_OAM_H -#define GUARD_BASE_OAM_H - const struct OamData gEventObjectBaseOam_8x8 = { .shape = 0, .size = 0, @@ -48,5 +45,3 @@ const struct OamData gEventObjectBaseOam_64x64 = { .size = 3, .priority = 2 }; - -#endif //GUARD_BASE_OAM_H diff --git a/src/data/field_event_obj/berry_tree_graphics_tables.h b/src/data/field_event_obj/berry_tree_graphics_tables.h index beb59974f..f5ef15af9 100755 --- a/src/data/field_event_obj/berry_tree_graphics_tables.h +++ b/src/data/field_event_obj/berry_tree_graphics_tables.h @@ -1,6 +1,3 @@ -#ifndef GUARD_BERRY_TREE_GRAPHICS_TABLES_H -#define GUARD_BERRY_TREE_GRAPHICS_TABLES_H - const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[] = { overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), @@ -565,6 +562,3 @@ const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[] = { gBerryTreeEventObjectGraphicsIdTable, gBerryTreeEventObjectGraphicsIdTable, }; - - -#endif //GUARD_BERRY_TREE_GRAPHICS_TABLES_H diff --git a/src/data/field_event_obj/event_object_anims.h b/src/data/field_event_obj/event_object_anims.h index 9b897651d..6203e0548 100755 --- a/src/data/field_event_obj/event_object_anims.h +++ b/src/data/field_event_obj/event_object_anims.h @@ -1,6 +1,3 @@ -#ifndef GUARD_EVENT_OBJECT_ANIMS_H -#define GUARD_EVENT_OBJECT_ANIMS_H - const union AnimCmd gEventObjectImageAnim_StayStill[] = { ANIMCMD_FRAME(0, 8), @@ -1172,5 +1169,3 @@ const struct UnkStruct_085094AC gUnknown_085094AC[] = { {0, 0, 0, 0}, }, }; - -#endif //GUARD_EVENT_OBJECT_ANIMS_H diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 4b65e694f..f7f1f33ba 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -1,6 +1,3 @@ -#ifndef GUARD_EVENT_OBJECT_GFX_H -#define GUARD_EVENT_OBJECT_GFX_H - const u32 gEventObjectPic_BrendanNormal[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/walking.4bpp"); const u32 gEventObjectPic_BrendanRunning[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/running.4bpp"); const u16 gEventObjectPalette8[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_08.gbapal"); @@ -307,7 +304,7 @@ const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/event_objects/pale const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_01.gbapal"); const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust.4bpp"); const u32 gFieldEffectObjectPic_BikeHopTallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass.4bpp"); -const u32 gUnusedGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass.4bpp"); +const u32 gUnusedGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass.4bpp"); const u32 gFieldEffectObjectPic_Unknown16[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16.4bpp"); const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17.4bpp"); const u32 gFieldEffectObjectPic_Unknown18[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18.4bpp"); @@ -363,5 +360,3 @@ const u32 gEventObjectPic_Lugia[] = INCBIN_U32("graphics/event_objects/pics/poke const u16 gEventObjectPalette32[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_32.gbapal"); const u32 gEventObjectPic_HoOh[] = INCBIN_U32("graphics/event_objects/pics/pokemon/ho_oh.4bpp"); const u16 gEventObjectPalette31[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_31.gbapal"); - -#endif //GUARD_EVENT_OBJECT_GFX_H diff --git a/src/data/field_event_obj/event_object_graphics_info.h b/src/data/field_event_obj/event_object_graphics_info.h index ebc324b08..1f89cc98d 100755 --- a/src/data/field_event_obj/event_object_graphics_info.h +++ b/src/data/field_event_obj/event_object_graphics_info.h @@ -1,6 +1,3 @@ -#ifndef GUARD_EVENT_OBJECT_GRAPHICS_INFO_H -#define GUARD_EVENT_OBJECT_GRAPHICS_INFO_H - const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanNormal = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanMachBike = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanAcroBike = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; @@ -246,5 +243,3 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireBrenda const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireMay = {0xFFFF, EVENT_OBJ_PAL_TAG_34, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RubySapphireMay, gDummySpriteAffineAnimTable}; const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Lugia = {0xFFFF, EVENT_OBJ_PAL_TAG_32, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Lugia, gDummySpriteAffineAnimTable}; const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_HoOh = {0xFFFF, EVENT_OBJ_PAL_TAG_31, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_HoOh, gEventObjectPicTable_HoOh, gDummySpriteAffineAnimTable}; - -#endif //GUARD_EVENT_OBJECT_GRAPHICS_INFO_H diff --git a/src/data/field_event_obj/event_object_graphics_info_pointers.h b/src/data/field_event_obj/event_object_graphics_info_pointers.h index 3f726e30e..2f504737a 100755 --- a/src/data/field_event_obj/event_object_graphics_info_pointers.h +++ b/src/data/field_event_obj/event_object_graphics_info_pointers.h @@ -1,6 +1,3 @@ -#ifndef GUARD_EVENT_OBJECT_GRAPHICS_INFO_POINTERS_H -#define GUARD_EVENT_OBJECT_GRAPHICS_INFO_POINTERS_H - const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanNormal; const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanMachBike; const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanSurfing; @@ -250,255 +247,253 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldM const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] = { - &gEventObjectGraphicsInfo_BrendanNormal, - &gEventObjectGraphicsInfo_BrendanMachBike, - &gEventObjectGraphicsInfo_BrendanSurfing, - &gEventObjectGraphicsInfo_BrendanFieldMove, - &gEventObjectGraphicsInfo_QuintyPlump, - &gEventObjectGraphicsInfo_NinjaBoy, - &gEventObjectGraphicsInfo_Twin, - &gEventObjectGraphicsInfo_Boy1, - &gEventObjectGraphicsInfo_Girl1, - &gEventObjectGraphicsInfo_Boy2, - &gEventObjectGraphicsInfo_Girl2, - &gEventObjectGraphicsInfo_LittleBoy, - &gEventObjectGraphicsInfo_LittleGirl, - &gEventObjectGraphicsInfo_Boy3, - &gEventObjectGraphicsInfo_Girl3, - &gEventObjectGraphicsInfo_RichBoy, - &gEventObjectGraphicsInfo_Woman1, - &gEventObjectGraphicsInfo_FatMan, - &gEventObjectGraphicsInfo_PokefanF, - &gEventObjectGraphicsInfo_Man1, - &gEventObjectGraphicsInfo_Woman2, - &gEventObjectGraphicsInfo_ExpertM, - &gEventObjectGraphicsInfo_ExpertF, - &gEventObjectGraphicsInfo_Man2, - &gEventObjectGraphicsInfo_Woman3, - &gEventObjectGraphicsInfo_PokefanM, - &gEventObjectGraphicsInfo_Woman4, - &gEventObjectGraphicsInfo_Cook, - &gEventObjectGraphicsInfo_LinkReceptionist, - &gEventObjectGraphicsInfo_OldMan, - &gEventObjectGraphicsInfo_OldWoman, - &gEventObjectGraphicsInfo_Camper, - &gEventObjectGraphicsInfo_Picnicker, - &gEventObjectGraphicsInfo_Man3, - &gEventObjectGraphicsInfo_Woman5, - &gEventObjectGraphicsInfo_Youngster, - &gEventObjectGraphicsInfo_BugCatcher, - &gEventObjectGraphicsInfo_PsychicM, - &gEventObjectGraphicsInfo_SchoolKidM, - &gEventObjectGraphicsInfo_Maniac, - &gEventObjectGraphicsInfo_HexManiac, - &gEventObjectGraphicsInfo_Rayquaza1, - &gEventObjectGraphicsInfo_SwimmerM, - &gEventObjectGraphicsInfo_SwimmerF, - &gEventObjectGraphicsInfo_BlackBelt, - &gEventObjectGraphicsInfo_Beauty, - &gEventObjectGraphicsInfo_Scientist1, - &gEventObjectGraphicsInfo_Lass, - &gEventObjectGraphicsInfo_Gentleman, - &gEventObjectGraphicsInfo_Sailor, - &gEventObjectGraphicsInfo_Fisherman, - &gEventObjectGraphicsInfo_RunningTriathleteM, - &gEventObjectGraphicsInfo_RunningTriathleteF, - &gEventObjectGraphicsInfo_TuberF, - &gEventObjectGraphicsInfo_TuberM, - &gEventObjectGraphicsInfo_Hiker, - &gEventObjectGraphicsInfo_CyclingTriathleteM, - &gEventObjectGraphicsInfo_CyclingTriathleteF, - &gEventObjectGraphicsInfo_Nurse, - &gEventObjectGraphicsInfo_ItemBall, - &gEventObjectGraphicsInfo_BerryTree, - &gEventObjectGraphicsInfo_BerryTreeEarlyStages, - &gEventObjectGraphicsInfo_BerryTreeLateStages, - &gEventObjectGraphicsInfo_BrendanAcroBike, - &gEventObjectGraphicsInfo_ProfBirch, - &gEventObjectGraphicsInfo_Man4, - &gEventObjectGraphicsInfo_Man5, - &gEventObjectGraphicsInfo_ReporterM, - &gEventObjectGraphicsInfo_ReporterF, - &gEventObjectGraphicsInfo_Bard, - &gEventObjectGraphicsInfo_Anabel, - &gEventObjectGraphicsInfo_Tucker, - &gEventObjectGraphicsInfo_Greta, - &gEventObjectGraphicsInfo_Spenser, - &gEventObjectGraphicsInfo_Noland, - &gEventObjectGraphicsInfo_Lucy, - &gEventObjectGraphicsInfo_UnusedNatuDoll, - &gEventObjectGraphicsInfo_UnusedMagnemiteDoll, - &gEventObjectGraphicsInfo_UnusedSquirtleDoll, - &gEventObjectGraphicsInfo_UnusedWooperDoll, - &gEventObjectGraphicsInfo_UnusedPikachuDoll, - &gEventObjectGraphicsInfo_UnusedPorygon2Doll, - &gEventObjectGraphicsInfo_CuttableTree, - &gEventObjectGraphicsInfo_MartEmployee, - &gEventObjectGraphicsInfo_RooftopSaleWoman, - &gEventObjectGraphicsInfo_Teala, - &gEventObjectGraphicsInfo_BreakableRock, - &gEventObjectGraphicsInfo_PushableBoulder, - &gEventObjectGraphicsInfo_MrBrineysBoat, - &gEventObjectGraphicsInfo_MayNormal, - &gEventObjectGraphicsInfo_MayMachBike, - &gEventObjectGraphicsInfo_MayAcroBike, - &gEventObjectGraphicsInfo_MaySurfing, - &gEventObjectGraphicsInfo_MayFieldMove, - &gEventObjectGraphicsInfo_Truck, - &gEventObjectGraphicsInfo_VigorothCarryingBox, - &gEventObjectGraphicsInfo_VigorothFacingAway, - &gEventObjectGraphicsInfo_BirchsBag, - &gEventObjectGraphicsInfo_EnemyZigzagoon, - &gEventObjectGraphicsInfo_Artist, - &gEventObjectGraphicsInfo_RivalBrendanNormal, - &gEventObjectGraphicsInfo_RivalBrendanMachBike, - &gEventObjectGraphicsInfo_RivalBrendanAcroBike, - &gEventObjectGraphicsInfo_RivalBrendanSurfing, - &gEventObjectGraphicsInfo_RivalBrendanFieldMove, - &gEventObjectGraphicsInfo_RivalMayNormal, - &gEventObjectGraphicsInfo_RivalMayMachBike, - &gEventObjectGraphicsInfo_RivalMayAcroBike, - &gEventObjectGraphicsInfo_RivalMaySurfing, - &gEventObjectGraphicsInfo_RivalMayFieldMove, - &gEventObjectGraphicsInfo_Cameraman, - &gEventObjectGraphicsInfo_BrendanUnderwater, - &gEventObjectGraphicsInfo_MayUnderwater, - &gEventObjectGraphicsInfo_MovingBox, - &gEventObjectGraphicsInfo_CableCar, - &gEventObjectGraphicsInfo_Scientist2, - &gEventObjectGraphicsInfo_DevonEmployee, - &gEventObjectGraphicsInfo_AquaMemberM, - &gEventObjectGraphicsInfo_AquaMemberF, - &gEventObjectGraphicsInfo_MagmaMemberM, - &gEventObjectGraphicsInfo_MagmaMemberF, - &gEventObjectGraphicsInfo_Sidney, - &gEventObjectGraphicsInfo_Phoebe, - &gEventObjectGraphicsInfo_Glacia, - &gEventObjectGraphicsInfo_Drake, - &gEventObjectGraphicsInfo_Roxanne, - &gEventObjectGraphicsInfo_Brawly, - &gEventObjectGraphicsInfo_Wattson, - &gEventObjectGraphicsInfo_Flannery, - &gEventObjectGraphicsInfo_Norman, - &gEventObjectGraphicsInfo_Winona, - &gEventObjectGraphicsInfo_Liza, - &gEventObjectGraphicsInfo_Tate, - &gEventObjectGraphicsInfo_Wallace, - &gEventObjectGraphicsInfo_Steven, - &gEventObjectGraphicsInfo_Wally, - &gEventObjectGraphicsInfo_RubySapphireLittleBoy, - &gEventObjectGraphicsInfo_BrendanFishing, - &gEventObjectGraphicsInfo_MayFishing, - &gEventObjectGraphicsInfo_HotSpringsOldWoman, - &gEventObjectGraphicsInfo_SSTidal, - &gEventObjectGraphicsInfo_SubmarineShadow, - &gEventObjectGraphicsInfo_PichuDoll, - &gEventObjectGraphicsInfo_PikachuDoll, - &gEventObjectGraphicsInfo_MarillDoll, - &gEventObjectGraphicsInfo_TogepiDoll, - &gEventObjectGraphicsInfo_CyndaquilDoll, - &gEventObjectGraphicsInfo_ChikoritaDoll, - &gEventObjectGraphicsInfo_TotodileDoll, - &gEventObjectGraphicsInfo_JigglypuffDoll, - &gEventObjectGraphicsInfo_MeowthDoll, - &gEventObjectGraphicsInfo_ClefairyDoll, - &gEventObjectGraphicsInfo_DittoDoll, - &gEventObjectGraphicsInfo_SmoochumDoll, - &gEventObjectGraphicsInfo_TreeckoDoll, - &gEventObjectGraphicsInfo_TorchicDoll, - &gEventObjectGraphicsInfo_MudkipDoll, - &gEventObjectGraphicsInfo_DuskullDoll, - &gEventObjectGraphicsInfo_WynautDoll, - &gEventObjectGraphicsInfo_BaltoyDoll, - &gEventObjectGraphicsInfo_KecleonDoll, - &gEventObjectGraphicsInfo_AzurillDoll, - &gEventObjectGraphicsInfo_SkittyDoll, - &gEventObjectGraphicsInfo_SwabluDoll, - &gEventObjectGraphicsInfo_GulpinDoll, - &gEventObjectGraphicsInfo_LotadDoll, - &gEventObjectGraphicsInfo_SeedotDoll, - &gEventObjectGraphicsInfo_PikaCushion, - &gEventObjectGraphicsInfo_RoundCushion, - &gEventObjectGraphicsInfo_KissCushion, - &gEventObjectGraphicsInfo_ZigzagCushion, - &gEventObjectGraphicsInfo_SpinCushion, - &gEventObjectGraphicsInfo_DiamondCushion, - &gEventObjectGraphicsInfo_BallCushion, - &gEventObjectGraphicsInfo_GrassCushion, - &gEventObjectGraphicsInfo_FireCushion, - &gEventObjectGraphicsInfo_WaterCushion, - &gEventObjectGraphicsInfo_BigSnorlaxDoll, - &gEventObjectGraphicsInfo_BigRhydonDoll, - &gEventObjectGraphicsInfo_BigLaprasDoll, - &gEventObjectGraphicsInfo_BigVenusaurDoll, - &gEventObjectGraphicsInfo_BigCharizardDoll, - &gEventObjectGraphicsInfo_BigBlastoiseDoll, - &gEventObjectGraphicsInfo_BigWailmerDoll, - &gEventObjectGraphicsInfo_BigRegirockDoll, - &gEventObjectGraphicsInfo_BigRegiceDoll, - &gEventObjectGraphicsInfo_BigRegisteelDoll, - &gEventObjectGraphicsInfo_Latias, - &gEventObjectGraphicsInfo_Latios, - &gEventObjectGraphicsInfo_GameboyKid, - &gEventObjectGraphicsInfo_ContestJudge, - &gEventObjectGraphicsInfo_BrendanWatering, - &gEventObjectGraphicsInfo_MayWatering, - &gEventObjectGraphicsInfo_BrendanDecorating, - &gEventObjectGraphicsInfo_MayDecorating, - &gEventObjectGraphicsInfo_Archie, - &gEventObjectGraphicsInfo_Maxie, - &gEventObjectGraphicsInfo_Kyogre1, - &gEventObjectGraphicsInfo_Groudon1, - &gEventObjectGraphicsInfo_Fossil, - &gEventObjectGraphicsInfo_Regirock, - &gEventObjectGraphicsInfo_Regice, - &gEventObjectGraphicsInfo_Registeel, - &gEventObjectGraphicsInfo_Skitty, - &gEventObjectGraphicsInfo_Kecleon1, - &gEventObjectGraphicsInfo_Kyogre2, - &gEventObjectGraphicsInfo_Groudon2, - &gEventObjectGraphicsInfo_Rayquaza2, - &gEventObjectGraphicsInfo_Zigzagoon, - &gEventObjectGraphicsInfo_Pikachu, - &gEventObjectGraphicsInfo_Azumarill, - &gEventObjectGraphicsInfo_Wingull, - &gEventObjectGraphicsInfo_Kecleon2, - &gEventObjectGraphicsInfo_TuberMSwimming, - &gEventObjectGraphicsInfo_Azurill, - &gEventObjectGraphicsInfo_Mom, - &gEventObjectGraphicsInfo_LinkBrendan, - &gEventObjectGraphicsInfo_LinkMay, - &gEventObjectGraphicsInfo_Juan, - &gEventObjectGraphicsInfo_Scott, - &gEventObjectGraphicsInfo_Poochyena, - &gEventObjectGraphicsInfo_Kyogre3, - &gEventObjectGraphicsInfo_Groudon3, - &gEventObjectGraphicsInfo_MysteryEventDeliveryman, - &gEventObjectGraphicsInfo_Statue, - &gEventObjectGraphicsInfo_Kirlia, - &gEventObjectGraphicsInfo_Dusclops, - &gEventObjectGraphicsInfo_UnionRoomAttendant, - &gEventObjectGraphicsInfo_Sudowoodo, - &gEventObjectGraphicsInfo_Mew, - &gEventObjectGraphicsInfo_Red, - &gEventObjectGraphicsInfo_Leaf, - &gEventObjectGraphicsInfo_Deoxys, - &gEventObjectGraphicsInfo_BirthIslandStone, - &gEventObjectGraphicsInfo_Brandon, - &gEventObjectGraphicsInfo_RubySapphireBrendan, - &gEventObjectGraphicsInfo_RubySapphireMay, - &gEventObjectGraphicsInfo_Lugia, - &gEventObjectGraphicsInfo_HoOh, + &gEventObjectGraphicsInfo_BrendanNormal, + &gEventObjectGraphicsInfo_BrendanMachBike, + &gEventObjectGraphicsInfo_BrendanSurfing, + &gEventObjectGraphicsInfo_BrendanFieldMove, + &gEventObjectGraphicsInfo_QuintyPlump, + &gEventObjectGraphicsInfo_NinjaBoy, + &gEventObjectGraphicsInfo_Twin, + &gEventObjectGraphicsInfo_Boy1, + &gEventObjectGraphicsInfo_Girl1, + &gEventObjectGraphicsInfo_Boy2, + &gEventObjectGraphicsInfo_Girl2, + &gEventObjectGraphicsInfo_LittleBoy, + &gEventObjectGraphicsInfo_LittleGirl, + &gEventObjectGraphicsInfo_Boy3, + &gEventObjectGraphicsInfo_Girl3, + &gEventObjectGraphicsInfo_RichBoy, + &gEventObjectGraphicsInfo_Woman1, + &gEventObjectGraphicsInfo_FatMan, + &gEventObjectGraphicsInfo_PokefanF, + &gEventObjectGraphicsInfo_Man1, + &gEventObjectGraphicsInfo_Woman2, + &gEventObjectGraphicsInfo_ExpertM, + &gEventObjectGraphicsInfo_ExpertF, + &gEventObjectGraphicsInfo_Man2, + &gEventObjectGraphicsInfo_Woman3, + &gEventObjectGraphicsInfo_PokefanM, + &gEventObjectGraphicsInfo_Woman4, + &gEventObjectGraphicsInfo_Cook, + &gEventObjectGraphicsInfo_LinkReceptionist, + &gEventObjectGraphicsInfo_OldMan, + &gEventObjectGraphicsInfo_OldWoman, + &gEventObjectGraphicsInfo_Camper, + &gEventObjectGraphicsInfo_Picnicker, + &gEventObjectGraphicsInfo_Man3, + &gEventObjectGraphicsInfo_Woman5, + &gEventObjectGraphicsInfo_Youngster, + &gEventObjectGraphicsInfo_BugCatcher, + &gEventObjectGraphicsInfo_PsychicM, + &gEventObjectGraphicsInfo_SchoolKidM, + &gEventObjectGraphicsInfo_Maniac, + &gEventObjectGraphicsInfo_HexManiac, + &gEventObjectGraphicsInfo_Rayquaza1, + &gEventObjectGraphicsInfo_SwimmerM, + &gEventObjectGraphicsInfo_SwimmerF, + &gEventObjectGraphicsInfo_BlackBelt, + &gEventObjectGraphicsInfo_Beauty, + &gEventObjectGraphicsInfo_Scientist1, + &gEventObjectGraphicsInfo_Lass, + &gEventObjectGraphicsInfo_Gentleman, + &gEventObjectGraphicsInfo_Sailor, + &gEventObjectGraphicsInfo_Fisherman, + &gEventObjectGraphicsInfo_RunningTriathleteM, + &gEventObjectGraphicsInfo_RunningTriathleteF, + &gEventObjectGraphicsInfo_TuberF, + &gEventObjectGraphicsInfo_TuberM, + &gEventObjectGraphicsInfo_Hiker, + &gEventObjectGraphicsInfo_CyclingTriathleteM, + &gEventObjectGraphicsInfo_CyclingTriathleteF, + &gEventObjectGraphicsInfo_Nurse, + &gEventObjectGraphicsInfo_ItemBall, + &gEventObjectGraphicsInfo_BerryTree, + &gEventObjectGraphicsInfo_BerryTreeEarlyStages, + &gEventObjectGraphicsInfo_BerryTreeLateStages, + &gEventObjectGraphicsInfo_BrendanAcroBike, + &gEventObjectGraphicsInfo_ProfBirch, + &gEventObjectGraphicsInfo_Man4, + &gEventObjectGraphicsInfo_Man5, + &gEventObjectGraphicsInfo_ReporterM, + &gEventObjectGraphicsInfo_ReporterF, + &gEventObjectGraphicsInfo_Bard, + &gEventObjectGraphicsInfo_Anabel, + &gEventObjectGraphicsInfo_Tucker, + &gEventObjectGraphicsInfo_Greta, + &gEventObjectGraphicsInfo_Spenser, + &gEventObjectGraphicsInfo_Noland, + &gEventObjectGraphicsInfo_Lucy, + &gEventObjectGraphicsInfo_UnusedNatuDoll, + &gEventObjectGraphicsInfo_UnusedMagnemiteDoll, + &gEventObjectGraphicsInfo_UnusedSquirtleDoll, + &gEventObjectGraphicsInfo_UnusedWooperDoll, + &gEventObjectGraphicsInfo_UnusedPikachuDoll, + &gEventObjectGraphicsInfo_UnusedPorygon2Doll, + &gEventObjectGraphicsInfo_CuttableTree, + &gEventObjectGraphicsInfo_MartEmployee, + &gEventObjectGraphicsInfo_RooftopSaleWoman, + &gEventObjectGraphicsInfo_Teala, + &gEventObjectGraphicsInfo_BreakableRock, + &gEventObjectGraphicsInfo_PushableBoulder, + &gEventObjectGraphicsInfo_MrBrineysBoat, + &gEventObjectGraphicsInfo_MayNormal, + &gEventObjectGraphicsInfo_MayMachBike, + &gEventObjectGraphicsInfo_MayAcroBike, + &gEventObjectGraphicsInfo_MaySurfing, + &gEventObjectGraphicsInfo_MayFieldMove, + &gEventObjectGraphicsInfo_Truck, + &gEventObjectGraphicsInfo_VigorothCarryingBox, + &gEventObjectGraphicsInfo_VigorothFacingAway, + &gEventObjectGraphicsInfo_BirchsBag, + &gEventObjectGraphicsInfo_EnemyZigzagoon, + &gEventObjectGraphicsInfo_Artist, + &gEventObjectGraphicsInfo_RivalBrendanNormal, + &gEventObjectGraphicsInfo_RivalBrendanMachBike, + &gEventObjectGraphicsInfo_RivalBrendanAcroBike, + &gEventObjectGraphicsInfo_RivalBrendanSurfing, + &gEventObjectGraphicsInfo_RivalBrendanFieldMove, + &gEventObjectGraphicsInfo_RivalMayNormal, + &gEventObjectGraphicsInfo_RivalMayMachBike, + &gEventObjectGraphicsInfo_RivalMayAcroBike, + &gEventObjectGraphicsInfo_RivalMaySurfing, + &gEventObjectGraphicsInfo_RivalMayFieldMove, + &gEventObjectGraphicsInfo_Cameraman, + &gEventObjectGraphicsInfo_BrendanUnderwater, + &gEventObjectGraphicsInfo_MayUnderwater, + &gEventObjectGraphicsInfo_MovingBox, + &gEventObjectGraphicsInfo_CableCar, + &gEventObjectGraphicsInfo_Scientist2, + &gEventObjectGraphicsInfo_DevonEmployee, + &gEventObjectGraphicsInfo_AquaMemberM, + &gEventObjectGraphicsInfo_AquaMemberF, + &gEventObjectGraphicsInfo_MagmaMemberM, + &gEventObjectGraphicsInfo_MagmaMemberF, + &gEventObjectGraphicsInfo_Sidney, + &gEventObjectGraphicsInfo_Phoebe, + &gEventObjectGraphicsInfo_Glacia, + &gEventObjectGraphicsInfo_Drake, + &gEventObjectGraphicsInfo_Roxanne, + &gEventObjectGraphicsInfo_Brawly, + &gEventObjectGraphicsInfo_Wattson, + &gEventObjectGraphicsInfo_Flannery, + &gEventObjectGraphicsInfo_Norman, + &gEventObjectGraphicsInfo_Winona, + &gEventObjectGraphicsInfo_Liza, + &gEventObjectGraphicsInfo_Tate, + &gEventObjectGraphicsInfo_Wallace, + &gEventObjectGraphicsInfo_Steven, + &gEventObjectGraphicsInfo_Wally, + &gEventObjectGraphicsInfo_RubySapphireLittleBoy, + &gEventObjectGraphicsInfo_BrendanFishing, + &gEventObjectGraphicsInfo_MayFishing, + &gEventObjectGraphicsInfo_HotSpringsOldWoman, + &gEventObjectGraphicsInfo_SSTidal, + &gEventObjectGraphicsInfo_SubmarineShadow, + &gEventObjectGraphicsInfo_PichuDoll, + &gEventObjectGraphicsInfo_PikachuDoll, + &gEventObjectGraphicsInfo_MarillDoll, + &gEventObjectGraphicsInfo_TogepiDoll, + &gEventObjectGraphicsInfo_CyndaquilDoll, + &gEventObjectGraphicsInfo_ChikoritaDoll, + &gEventObjectGraphicsInfo_TotodileDoll, + &gEventObjectGraphicsInfo_JigglypuffDoll, + &gEventObjectGraphicsInfo_MeowthDoll, + &gEventObjectGraphicsInfo_ClefairyDoll, + &gEventObjectGraphicsInfo_DittoDoll, + &gEventObjectGraphicsInfo_SmoochumDoll, + &gEventObjectGraphicsInfo_TreeckoDoll, + &gEventObjectGraphicsInfo_TorchicDoll, + &gEventObjectGraphicsInfo_MudkipDoll, + &gEventObjectGraphicsInfo_DuskullDoll, + &gEventObjectGraphicsInfo_WynautDoll, + &gEventObjectGraphicsInfo_BaltoyDoll, + &gEventObjectGraphicsInfo_KecleonDoll, + &gEventObjectGraphicsInfo_AzurillDoll, + &gEventObjectGraphicsInfo_SkittyDoll, + &gEventObjectGraphicsInfo_SwabluDoll, + &gEventObjectGraphicsInfo_GulpinDoll, + &gEventObjectGraphicsInfo_LotadDoll, + &gEventObjectGraphicsInfo_SeedotDoll, + &gEventObjectGraphicsInfo_PikaCushion, + &gEventObjectGraphicsInfo_RoundCushion, + &gEventObjectGraphicsInfo_KissCushion, + &gEventObjectGraphicsInfo_ZigzagCushion, + &gEventObjectGraphicsInfo_SpinCushion, + &gEventObjectGraphicsInfo_DiamondCushion, + &gEventObjectGraphicsInfo_BallCushion, + &gEventObjectGraphicsInfo_GrassCushion, + &gEventObjectGraphicsInfo_FireCushion, + &gEventObjectGraphicsInfo_WaterCushion, + &gEventObjectGraphicsInfo_BigSnorlaxDoll, + &gEventObjectGraphicsInfo_BigRhydonDoll, + &gEventObjectGraphicsInfo_BigLaprasDoll, + &gEventObjectGraphicsInfo_BigVenusaurDoll, + &gEventObjectGraphicsInfo_BigCharizardDoll, + &gEventObjectGraphicsInfo_BigBlastoiseDoll, + &gEventObjectGraphicsInfo_BigWailmerDoll, + &gEventObjectGraphicsInfo_BigRegirockDoll, + &gEventObjectGraphicsInfo_BigRegiceDoll, + &gEventObjectGraphicsInfo_BigRegisteelDoll, + &gEventObjectGraphicsInfo_Latias, + &gEventObjectGraphicsInfo_Latios, + &gEventObjectGraphicsInfo_GameboyKid, + &gEventObjectGraphicsInfo_ContestJudge, + &gEventObjectGraphicsInfo_BrendanWatering, + &gEventObjectGraphicsInfo_MayWatering, + &gEventObjectGraphicsInfo_BrendanDecorating, + &gEventObjectGraphicsInfo_MayDecorating, + &gEventObjectGraphicsInfo_Archie, + &gEventObjectGraphicsInfo_Maxie, + &gEventObjectGraphicsInfo_Kyogre1, + &gEventObjectGraphicsInfo_Groudon1, + &gEventObjectGraphicsInfo_Fossil, + &gEventObjectGraphicsInfo_Regirock, + &gEventObjectGraphicsInfo_Regice, + &gEventObjectGraphicsInfo_Registeel, + &gEventObjectGraphicsInfo_Skitty, + &gEventObjectGraphicsInfo_Kecleon1, + &gEventObjectGraphicsInfo_Kyogre2, + &gEventObjectGraphicsInfo_Groudon2, + &gEventObjectGraphicsInfo_Rayquaza2, + &gEventObjectGraphicsInfo_Zigzagoon, + &gEventObjectGraphicsInfo_Pikachu, + &gEventObjectGraphicsInfo_Azumarill, + &gEventObjectGraphicsInfo_Wingull, + &gEventObjectGraphicsInfo_Kecleon2, + &gEventObjectGraphicsInfo_TuberMSwimming, + &gEventObjectGraphicsInfo_Azurill, + &gEventObjectGraphicsInfo_Mom, + &gEventObjectGraphicsInfo_LinkBrendan, + &gEventObjectGraphicsInfo_LinkMay, + &gEventObjectGraphicsInfo_Juan, + &gEventObjectGraphicsInfo_Scott, + &gEventObjectGraphicsInfo_Poochyena, + &gEventObjectGraphicsInfo_Kyogre3, + &gEventObjectGraphicsInfo_Groudon3, + &gEventObjectGraphicsInfo_MysteryEventDeliveryman, + &gEventObjectGraphicsInfo_Statue, + &gEventObjectGraphicsInfo_Kirlia, + &gEventObjectGraphicsInfo_Dusclops, + &gEventObjectGraphicsInfo_UnionRoomAttendant, + &gEventObjectGraphicsInfo_Sudowoodo, + &gEventObjectGraphicsInfo_Mew, + &gEventObjectGraphicsInfo_Red, + &gEventObjectGraphicsInfo_Leaf, + &gEventObjectGraphicsInfo_Deoxys, + &gEventObjectGraphicsInfo_BirthIslandStone, + &gEventObjectGraphicsInfo_Brandon, + &gEventObjectGraphicsInfo_RubySapphireBrendan, + &gEventObjectGraphicsInfo_RubySapphireMay, + &gEventObjectGraphicsInfo_Lugia, + &gEventObjectGraphicsInfo_HoOh, }; const struct EventObjectGraphicsInfo *const gMauvilleOldManGraphicsInfoPointers[] = { - &gEventObjectGraphicsInfo_Bard, - &gEventObjectGraphicsInfo_Hipster, - &gEventObjectGraphicsInfo_Trader, - &gEventObjectGraphicsInfo_Storyteller, - &gEventObjectGraphicsInfo_Giddy, - &gEventObjectGraphicsInfo_UnusedMauvilleOldMan1, - &gEventObjectGraphicsInfo_UnusedMauvilleOldMan2, + &gEventObjectGraphicsInfo_Bard, + &gEventObjectGraphicsInfo_Hipster, + &gEventObjectGraphicsInfo_Trader, + &gEventObjectGraphicsInfo_Storyteller, + &gEventObjectGraphicsInfo_Giddy, + &gEventObjectGraphicsInfo_UnusedMauvilleOldMan1, + &gEventObjectGraphicsInfo_UnusedMauvilleOldMan2, }; - -#endif //GUARD_EVENT_OBJECT_GRAPHICS_INFO_POINTERS_H diff --git a/src/data/field_event_obj/event_object_pic_tables.h b/src/data/field_event_obj/event_object_pic_tables.h index bd1ad1a25..5c8be195d 100755 --- a/src/data/field_event_obj/event_object_pic_tables.h +++ b/src/data/field_event_obj/event_object_pic_tables.h @@ -1,6 +1,3 @@ -#ifndef GUARD_EVENT_OBJECT_PIC_TABLES_H -#define GUARD_EVENT_OBJECT_PIC_TABLES_H - const struct SpriteFrameImage gEventObjectPicTable_BrendanNormal[] = { overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 0), overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 1), @@ -2175,5 +2172,3 @@ const struct SpriteFrameImage gEventObjectPicTable_RubySapphireMay[] = { overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 7), overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 8), }; - -#endif //GUARD_EVENT_OBJECT_PIC_TABLES_H diff --git a/src/data/field_event_obj/event_object_subsprites.h b/src/data/field_event_obj/event_object_subsprites.h index db5fddf1e..5da262731 100755 --- a/src/data/field_event_obj/event_object_subsprites.h +++ b/src/data/field_event_obj/event_object_subsprites.h @@ -1,6 +1,3 @@ -#ifndef GUARD_EVENT_OBJECT_SUBSPRITES_H -#define GUARD_EVENT_OBJECT_SUBSPRITES_H - const struct Subsprite gEventObjectSpriteOamTable_16x16_0[] = { { -8, -8, 0, 1, 0, 2} }; @@ -338,5 +335,3 @@ const struct SubspriteTable gEventObjectSpriteOamTables_SubmarineShadow[] = { {16, gEventObjectSpriteOamTable_SubmarineShadow_3}, {16, gEventObjectSpriteOamTable_SubmarineShadow_3} }; - -#endif //GUARD_EVENT_OBJECT_SUBSPRITES_H diff --git a/src/data/field_event_obj/field_effect_object_template_pointers.h b/src/data/field_event_obj/field_effect_object_template_pointers.h index 3b08a5ff1..32d2b069a 100755 --- a/src/data/field_event_obj/field_effect_object_template_pointers.h +++ b/src/data/field_event_obj/field_effect_object_template_pointers.h @@ -1,6 +1,3 @@ -#ifndef GUARD_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H -#define GUARD_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H - const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall; const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium; const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge; @@ -78,5 +75,3 @@ const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = { &gFieldEffectObjectTemplate_Unknown35, &gFieldEffectObjectTemplate_Rayquaza, }; - -#endif //GUARD_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h index 82fde1769..a3944de36 100755 --- a/src/data/field_event_obj/field_effect_objects.h +++ b/src/data/field_event_obj/field_effect_objects.h @@ -1,6 +1,3 @@ -#ifndef GUARD_FIELD_EFFECT_OBJECTS_H -#define GUARD_FIELD_EFFECT_OBJECTS_H - const struct SpritePalette gFieldEffectObjectPaletteInfo0 = {gFieldEffectObjectPalette0, 0x1004}; const struct SpritePalette gFieldEffectObjectPaletteInfo1 = {gFieldEffectObjectPalette1, 0x1005}; @@ -993,5 +990,3 @@ const struct SpriteFrameImage gFieldEffectObjectPicTable_Rayquaza[] = { const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_Rayquaza, gFieldEffectObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable, sub_8155F80}; const struct SpritePalette gFieldEffectObjectPaletteInfoUnused = {gEventObjectPalette2, 0x1011}; - -#endif //GUARD_FIELD_EFFECT_OBJECTS_H diff --git a/src/data/field_event_obj/movement_action_func_tables.h b/src/data/field_event_obj/movement_action_func_tables.h index b24f5dea4..712988f5e 100755 --- a/src/data/field_event_obj/movement_action_func_tables.h +++ b/src/data/field_event_obj/movement_action_func_tables.h @@ -1,6 +1,3 @@ -#ifndef GUARD_MOVEMENT_ACTION_FUNC_TABLES_H -#define GUARD_MOVEMENT_ACTION_FUNC_TABLES_H - u8 MovementAction_FaceDown_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_FaceDown_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_PauseSpriteAnim(struct EventObject *, struct Sprite *); @@ -425,1094 +422,1092 @@ u8 (*const gMovementActionFuncs_FlyUp[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_FlyDown[])(struct EventObject *, struct Sprite *); u8 (*const *const gMovementActionFuncs[])(struct EventObject *, struct Sprite *) = { - gMovementActionFuncs_FaceDown, // MOVEMENT_ACTION_FACE_DOWN - gMovementActionFuncs_FaceUp, // MOVEMENT_ACTION_FACE_UP - gMovementActionFuncs_FaceLeft, // MOVEMENT_ACTION_FACE_LEFT - gMovementActionFuncs_FaceRight, // MOVEMENT_ACTION_FACE_RIGHT - gMovementActionFuncs_WalkSlowDown, // MOVEMENT_ACTION_WALK_SLOW_DOWN - gMovementActionFuncs_WalkSlowUp, // MOVEMENT_ACTION_WALK_SLOW_UP - gMovementActionFuncs_WalkSlowLeft, // MOVEMENT_ACTION_WALK_SLOW_LEFT - gMovementActionFuncs_WalkSlowRight, // MOVEMENT_ACTION_WALK_SLOW_RIGHT - gMovementActionFuncs_WalkNormalDown, // MOVEMENT_ACTION_WALK_NORMAL_DOWN - gMovementActionFuncs_WalkNormalUp, // MOVEMENT_ACTION_WALK_NORMAL_UP - gMovementActionFuncs_WalkNormalLeft, // MOVEMENT_ACTION_WALK_NORMAL_LEFT - gMovementActionFuncs_WalkNormalRight, // MOVEMENT_ACTION_WALK_NORMAL_RIGHT - gMovementActionFuncs_Jump2Down, // MOVEMENT_ACTION_JUMP_2_DOWN - gMovementActionFuncs_Jump2Up, // MOVEMENT_ACTION_JUMP_2_UP - gMovementActionFuncs_Jump2Left, // MOVEMENT_ACTION_JUMP_2_LEFT - gMovementActionFuncs_Jump2Right, // MOVEMENT_ACTION_JUMP_2_RIGHT - gMovementActionFuncs_Delay1, // MOVEMENT_ACTION_DELAY_1 - gMovementActionFuncs_Delay2, // MOVEMENT_ACTION_DELAY_2 - gMovementActionFuncs_Delay4, // MOVEMENT_ACTION_DELAY_4 - gMovementActionFuncs_Delay8, // MOVEMENT_ACTION_DELAY_8 - gMovementActionFuncs_Delay16, // MOVEMENT_ACTION_DELAY_16 - gMovementActionFuncs_WalkFastDown, // MOVEMENT_ACTION_WALK_FAST_DOWN - gMovementActionFuncs_WalkFastUp, // MOVEMENT_ACTION_WALK_FAST_UP - gMovementActionFuncs_WalkFastLeft, // MOVEMENT_ACTION_WALK_FAST_LEFT - gMovementActionFuncs_WalkFastRight, // MOVEMENT_ACTION_WALK_FAST_RIGHT - gMovementActionFuncs_WalkInPlaceSlowDown, // MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN - gMovementActionFuncs_WalkInPlaceSlowUp, // MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP - gMovementActionFuncs_WalkInPlaceSlowLeft, // MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT - gMovementActionFuncs_WalkInPlaceSlowRight, // MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT - gMovementActionFuncs_WalkInPlaceNormalDown, // MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN - gMovementActionFuncs_WalkInPlaceNormalUp, // MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP - gMovementActionFuncs_WalkInPlaceNormalLeft, // MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT - gMovementActionFuncs_WalkInPlaceNormalRight, // MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT - gMovementActionFuncs_WalkInPlaceFastDown, // MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN - gMovementActionFuncs_WalkInPlaceFastUp, // MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP - gMovementActionFuncs_WalkInPlaceFastLeft, // MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT - gMovementActionFuncs_WalkInPlaceFastRight, // MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT - gMovementActionFuncs_WalkInPlaceFastestDown, // MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN - gMovementActionFuncs_WalkInPlaceFastestUp, // MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP - gMovementActionFuncs_WalkInPlaceFastestLeft, // MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT - gMovementActionFuncs_WalkInPlaceFastestRight, // MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT - gMovementActionFuncs_RideWaterCurrentDown, // MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN - gMovementActionFuncs_RideWaterCurrentUp, // MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP - gMovementActionFuncs_RideWaterCurrentLeft, // MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT - gMovementActionFuncs_RideWaterCurrentRight, // MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT - gMovementActionFuncs_WalkFastestDown, // MOVEMENT_ACTION_WALK_FASTEST_DOWN - gMovementActionFuncs_WalkFastestUp, // MOVEMENT_ACTION_WALK_FASTEST_UP - gMovementActionFuncs_WalkFastestLeft, // MOVEMENT_ACTION_WALK_FASTEST_LEFT - gMovementActionFuncs_WalkFastestRight, // MOVEMENT_ACTION_WALK_FASTEST_RIGHT - gMovementActionFuncs_SlideDown, // MOVEMENT_ACTION_SLIDE_DOWN - gMovementActionFuncs_SlideUp, // MOVEMENT_ACTION_SLIDE_UP - gMovementActionFuncs_SlideLeft, // MOVEMENT_ACTION_SLIDE_LEFT - gMovementActionFuncs_SlideRight, // MOVEMENT_ACTION_SLIDE_RIGHT - gMovementActionFuncs_PlayerRunDown, // MOVEMENT_ACTION_PLAYER_RUN_DOWN - gMovementActionFuncs_PlayerRunUp, // MOVEMENT_ACTION_PLAYER_RUN_UP - gMovementActionFuncs_PlayerRunLeft, // MOVEMENT_ACTION_PLAYER_RUN_LEFT - gMovementActionFuncs_PlayerRunRight, // MOVEMENT_ACTION_PLAYER_RUN_RIGHT - gMovementActionFuncs_StartAnimInDirection, // MOVEMENT_ACTION_START_ANIM_IN_DIRECTION - gMovementActionFuncs_JumpSpecialDown, // MOVEMENT_ACTION_JUMP_SPECIAL_DOWN - gMovementActionFuncs_JumpSpecialUp, // MOVEMENT_ACTION_JUMP_SPECIAL_UP - gMovementActionFuncs_JumpSpecialLeft, // MOVEMENT_ACTION_JUMP_SPECIAL_LEFT - gMovementActionFuncs_JumpSpecialRight, // MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT - gMovementActionFuncs_FacePlayer, // MOVEMENT_ACTION_FACE_PLAYER - gMovementActionFuncs_FaceAwayPlayer, // MOVEMENT_ACTION_FACE_AWAY_PLAYER - gMovementActionFuncs_LockFacingDirection, // MOVEMENT_ACTION_LOCK_FACING_DIRECTION - gMovementActionFuncs_UnlockFacingDirection, // MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION - gMovementActionFuncs_JumpDown, // MOVEMENT_ACTION_JUMP_DOWN - gMovementActionFuncs_JumpUp, // MOVEMENT_ACTION_JUMP_UP - gMovementActionFuncs_JumpLeft, // MOVEMENT_ACTION_JUMP_LEFT - gMovementActionFuncs_JumpRight, // MOVEMENT_ACTION_JUMP_RIGHT - gMovementActionFuncs_JumpInPlaceDown, // MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN - gMovementActionFuncs_JumpInPlaceUp, // MOVEMENT_ACTION_JUMP_IN_PLACE_UP - gMovementActionFuncs_JumpInPlaceLeft, // MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT - gMovementActionFuncs_JumpInPlaceRight, // MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT - gMovementActionFuncs_JumpInPlaceDownUp, // MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP - gMovementActionFuncs_JumpInPlaceUpDown, // MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN - gMovementActionFuncs_JumpInPlaceLeftRight, // MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT - gMovementActionFuncs_JumpInPlaceRightLeft, // MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT - gMovementActionFuncs_FaceOriginalDirection, // MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION - gMovementActionFuncs_NurseJoyBowDown, // MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN - gMovementActionFuncs_EnableJumpLandingGroundEffect, // MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT - gMovementActionFuncs_DisableJumpLandingGroundEffect, // MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT - gMovementActionFuncs_DisableAnimation, // MOVEMENT_ACTION_DISABLE_ANIMATION - gMovementActionFuncs_RestoreAnimation, // MOVEMENT_ACTION_RESTORE_ANIMATION - gMovementActionFuncs_SetInvisible, // MOVEMENT_ACTION_SET_INVISIBLE - gMovementActionFuncs_SetVisible, // MOVEMENT_ACTION_SET_VISIBLE - gMovementActionFuncs_EmoteExclamationMark, // MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK - gMovementActionFuncs_EmoteQuestionMark, // MOVEMENT_ACTION_EMOTE_QUESTION_MARK - gMovementActionFuncs_EmoteHeart, // MOVEMENT_ACTION_EMOTE_HEART - gMovementActionFuncs_RevealTrainer, // MOVEMENT_ACTION_REVEAL_TRAINER - gMovementActionFuncs_RockSmashBreak, // MOVEMENT_ACTION_ROCK_SMASH_BREAK - gMovementActionFuncs_CutTree, // MOVEMENT_ACTION_CUT_TREE - gMovementActionFuncs_SetFixedPriority, // MOVEMENT_ACTION_SET_FIXED_PRIORITY - gMovementActionFuncs_ClearFixedPriority, // MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY - gMovementActionFuncs_InitAffineAnim, // MOVEMENT_ACTION_INIT_AFFINE_ANIM - gMovementActionFuncs_ClearAffineAnim, // MOVEMENT_ACTION_CLEAR_AFFINE_ANIM - gMovementActionFuncs_Unknown1, // MOVEMENT_ACTION_UNKNOWN1 - gMovementActionFuncs_Unknown2, // MOVEMENT_ACTION_UNKNOWN2 - gMovementActionFuncs_WalkDownStartAffine, // MOVEMENT_ACTION_WALK_DOWN_START_AFFINE - gMovementActionFuncs_WalkDownAffine, // MOVEMENT_ACTION_WALK_DOWN_AFFINE - gMovementActionFuncs_AcroWheelieFaceDown, // MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN - gMovementActionFuncs_AcroWheelieFaceUp, // MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP - gMovementActionFuncs_AcroWheelieFaceLeft, // MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT - gMovementActionFuncs_AcroWheelieFaceRight, // MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT - gMovementActionFuncs_AcroPopWheelieDown, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN - gMovementActionFuncs_AcroPopWheelieUp, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP - gMovementActionFuncs_AcroPopWheelieLeft, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT - gMovementActionFuncs_AcroPopWheelieRight, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT - gMovementActionFuncs_AcroEndWheelieFaceDown, // MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN - gMovementActionFuncs_AcroEndWheelieFaceUp, // MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP - gMovementActionFuncs_AcroEndWheelieFaceLeft, // MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT - gMovementActionFuncs_AcroEndWheelieFaceRight, // MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT - gMovementActionFuncs_AcroWheelieHopFaceDown, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN - gMovementActionFuncs_AcroWheelieHopFaceUp, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP - gMovementActionFuncs_AcroWheelieHopFaceLeft, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT - gMovementActionFuncs_AcroWheelieHopFaceRight, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT - gMovementActionFuncs_AcroWheelieHopDown, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN - gMovementActionFuncs_AcroWheelieHopUp, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP - gMovementActionFuncs_AcroWheelieHopLeft, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT - gMovementActionFuncs_AcroWheelieHopRight, // MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT - gMovementActionFuncs_AcroWheelieJumpDown, // MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN - gMovementActionFuncs_AcroWheelieJumpUp, // MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP - gMovementActionFuncs_AcroWheelieJumpLeft, // MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT - gMovementActionFuncs_AcroWheelieJumpRight, // MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT - gMovementActionFuncs_AcroWheelieInPlaceDown, // MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN - gMovementActionFuncs_AcroWheelieInPlaceUp, // MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP - gMovementActionFuncs_AcroWheelieInPlaceLeft, // MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT - gMovementActionFuncs_AcroWheelieInPlaceRight, // MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT - gMovementActionFuncs_AcroPopWheelieMoveDown, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN - gMovementActionFuncs_AcroPopWheelieMoveUp, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP - gMovementActionFuncs_AcroPopWheelieMoveLeft, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT - gMovementActionFuncs_AcroPopWheelieMoveRight, // MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT - gMovementActionFuncs_AcroWheelieMoveDown, // MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN - gMovementActionFuncs_AcroWheelieMoveUp, // MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP - gMovementActionFuncs_AcroWheelieMoveLeft, // MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT - gMovementActionFuncs_AcroWheelieMoveRight, // MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT - gMovementActionFuncs_AcroEndWheelieMoveDown, // MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN - gMovementActionFuncs_AcroEndWheelieMoveUp, // MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP - gMovementActionFuncs_AcroEndWheelieMoveLeft, // MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT - gMovementActionFuncs_AcroEndWheelieMoveRight, // MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT - gMovementActionFuncs_WalkNormalDiagonalUpLeft, // MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_LEFT - gMovementActionFuncs_WalkNormalDiagonalUpRight, // MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_RIGHT - gMovementActionFuncs_WalkNormalDiagonalDownLeft, // MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_LEFT - gMovementActionFuncs_WalkNormalDiagonalDownRight, // MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_RIGHT - gMovementActionFuncs_WalkSlowDiagonalUpLeft, // MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_LEFT - gMovementActionFuncs_WalkSlowDiagonalUpRight, // MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT - gMovementActionFuncs_WalkSlowDiagonalDownLeft, // MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT - gMovementActionFuncs_WalkSlowDiagonalDownRight, // MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT - gMovementActionFuncs_StoreAndLockAnim, // MOVEMENT_ACTION_STORE_AND_LOCK_ANIM - gMovementActionFuncs_FreeAndUnlockAnim, // MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM - gMovementActionFuncs_WalkLeftAffine, // MOVEMENT_ACTION_WALK_LEFT_AFFINE - gMovementActionFuncs_WalkRightAffine, // MOVEMENT_ACTION_WALK_RIGHT_AFFINE - gMovementActionFuncs_Levitate, // MOVEMENT_ACTION_LEVITATE - gMovementActionFuncs_StopLevitate, // MOVEMENT_ACTION_STOP_LEVITATE - gMovementActionFuncs_DestroyExtraTaskIfAtTop, // MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP - gMovementActionFuncs_Figure8, // MOVEMENT_ACTION_FIGURE_8 - gMovementActionFuncs_FlyUp, // MOVEMENT_ACTION_FLY_UP - gMovementActionFuncs_FlyDown, // MOVEMENT_ACTION_FLY_DOWN + [MOVEMENT_ACTION_FACE_DOWN] = gMovementActionFuncs_FaceDown, + [MOVEMENT_ACTION_FACE_UP] = gMovementActionFuncs_FaceUp, + [MOVEMENT_ACTION_FACE_LEFT] = gMovementActionFuncs_FaceLeft, + [MOVEMENT_ACTION_FACE_RIGHT] = gMovementActionFuncs_FaceRight, + [MOVEMENT_ACTION_WALK_SLOW_DOWN] = gMovementActionFuncs_WalkSlowDown, + [MOVEMENT_ACTION_WALK_SLOW_UP] = gMovementActionFuncs_WalkSlowUp, + [MOVEMENT_ACTION_WALK_SLOW_LEFT] = gMovementActionFuncs_WalkSlowLeft, + [MOVEMENT_ACTION_WALK_SLOW_RIGHT] = gMovementActionFuncs_WalkSlowRight, + [MOVEMENT_ACTION_WALK_NORMAL_DOWN] = gMovementActionFuncs_WalkNormalDown, + [MOVEMENT_ACTION_WALK_NORMAL_UP] = gMovementActionFuncs_WalkNormalUp, + [MOVEMENT_ACTION_WALK_NORMAL_LEFT] = gMovementActionFuncs_WalkNormalLeft, + [MOVEMENT_ACTION_WALK_NORMAL_RIGHT] = gMovementActionFuncs_WalkNormalRight, + [MOVEMENT_ACTION_JUMP_2_DOWN] = gMovementActionFuncs_Jump2Down, + [MOVEMENT_ACTION_JUMP_2_UP] = gMovementActionFuncs_Jump2Up, + [MOVEMENT_ACTION_JUMP_2_LEFT] = gMovementActionFuncs_Jump2Left, + [MOVEMENT_ACTION_JUMP_2_RIGHT] = gMovementActionFuncs_Jump2Right, + [MOVEMENT_ACTION_DELAY_1] = gMovementActionFuncs_Delay1, + [MOVEMENT_ACTION_DELAY_2] = gMovementActionFuncs_Delay2, + [MOVEMENT_ACTION_DELAY_4] = gMovementActionFuncs_Delay4, + [MOVEMENT_ACTION_DELAY_8] = gMovementActionFuncs_Delay8, + [MOVEMENT_ACTION_DELAY_16] = gMovementActionFuncs_Delay16, + [MOVEMENT_ACTION_WALK_FAST_DOWN] = gMovementActionFuncs_WalkFastDown, + [MOVEMENT_ACTION_WALK_FAST_UP] = gMovementActionFuncs_WalkFastUp, + [MOVEMENT_ACTION_WALK_FAST_LEFT] = gMovementActionFuncs_WalkFastLeft, + [MOVEMENT_ACTION_WALK_FAST_RIGHT] = gMovementActionFuncs_WalkFastRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN] = gMovementActionFuncs_WalkInPlaceSlowDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP] = gMovementActionFuncs_WalkInPlaceSlowUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT] = gMovementActionFuncs_WalkInPlaceSlowLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT] = gMovementActionFuncs_WalkInPlaceSlowRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN] = gMovementActionFuncs_WalkInPlaceNormalDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP] = gMovementActionFuncs_WalkInPlaceNormalUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT] = gMovementActionFuncs_WalkInPlaceNormalLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT] = gMovementActionFuncs_WalkInPlaceNormalRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN] = gMovementActionFuncs_WalkInPlaceFastDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = gMovementActionFuncs_WalkInPlaceFastUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = gMovementActionFuncs_WalkInPlaceFastLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = gMovementActionFuncs_WalkInPlaceFastRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN] = gMovementActionFuncs_WalkInPlaceFastestDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP] = gMovementActionFuncs_WalkInPlaceFastestUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT] = gMovementActionFuncs_WalkInPlaceFastestLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT] = gMovementActionFuncs_WalkInPlaceFastestRight, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN] = gMovementActionFuncs_RideWaterCurrentDown, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP] = gMovementActionFuncs_RideWaterCurrentUp, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT] = gMovementActionFuncs_RideWaterCurrentLeft, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT] = gMovementActionFuncs_RideWaterCurrentRight, + [MOVEMENT_ACTION_WALK_FASTEST_DOWN] = gMovementActionFuncs_WalkFastestDown, + [MOVEMENT_ACTION_WALK_FASTEST_UP] = gMovementActionFuncs_WalkFastestUp, + [MOVEMENT_ACTION_WALK_FASTEST_LEFT] = gMovementActionFuncs_WalkFastestLeft, + [MOVEMENT_ACTION_WALK_FASTEST_RIGHT] = gMovementActionFuncs_WalkFastestRight, + [MOVEMENT_ACTION_SLIDE_DOWN] = gMovementActionFuncs_SlideDown, + [MOVEMENT_ACTION_SLIDE_UP] = gMovementActionFuncs_SlideUp, + [MOVEMENT_ACTION_SLIDE_LEFT] = gMovementActionFuncs_SlideLeft, + [MOVEMENT_ACTION_SLIDE_RIGHT] = gMovementActionFuncs_SlideRight, + [MOVEMENT_ACTION_PLAYER_RUN_DOWN] = gMovementActionFuncs_PlayerRunDown, + [MOVEMENT_ACTION_PLAYER_RUN_UP] = gMovementActionFuncs_PlayerRunUp, + [MOVEMENT_ACTION_PLAYER_RUN_LEFT] = gMovementActionFuncs_PlayerRunLeft, + [MOVEMENT_ACTION_PLAYER_RUN_RIGHT] = gMovementActionFuncs_PlayerRunRight, + [MOVEMENT_ACTION_START_ANIM_IN_DIRECTION] = gMovementActionFuncs_StartAnimInDirection, + [MOVEMENT_ACTION_JUMP_SPECIAL_DOWN] = gMovementActionFuncs_JumpSpecialDown, + [MOVEMENT_ACTION_JUMP_SPECIAL_UP] = gMovementActionFuncs_JumpSpecialUp, + [MOVEMENT_ACTION_JUMP_SPECIAL_LEFT] = gMovementActionFuncs_JumpSpecialLeft, + [MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT] = gMovementActionFuncs_JumpSpecialRight, + [MOVEMENT_ACTION_FACE_PLAYER] = gMovementActionFuncs_FacePlayer, + [MOVEMENT_ACTION_FACE_AWAY_PLAYER] = gMovementActionFuncs_FaceAwayPlayer, + [MOVEMENT_ACTION_LOCK_FACING_DIRECTION] = gMovementActionFuncs_LockFacingDirection, + [MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION] = gMovementActionFuncs_UnlockFacingDirection, + [MOVEMENT_ACTION_JUMP_DOWN] = gMovementActionFuncs_JumpDown, + [MOVEMENT_ACTION_JUMP_UP] = gMovementActionFuncs_JumpUp, + [MOVEMENT_ACTION_JUMP_LEFT] = gMovementActionFuncs_JumpLeft, + [MOVEMENT_ACTION_JUMP_RIGHT] = gMovementActionFuncs_JumpRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN] = gMovementActionFuncs_JumpInPlaceDown, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP] = gMovementActionFuncs_JumpInPlaceUp, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT] = gMovementActionFuncs_JumpInPlaceLeft, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT] = gMovementActionFuncs_JumpInPlaceRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP] = gMovementActionFuncs_JumpInPlaceDownUp, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN] = gMovementActionFuncs_JumpInPlaceUpDown, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT] = gMovementActionFuncs_JumpInPlaceLeftRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT] = gMovementActionFuncs_JumpInPlaceRightLeft, + [MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION] = gMovementActionFuncs_FaceOriginalDirection, + [MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN] = gMovementActionFuncs_NurseJoyBowDown, + [MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT] = gMovementActionFuncs_EnableJumpLandingGroundEffect, + [MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT] = gMovementActionFuncs_DisableJumpLandingGroundEffect, + [MOVEMENT_ACTION_DISABLE_ANIMATION] = gMovementActionFuncs_DisableAnimation, + [MOVEMENT_ACTION_RESTORE_ANIMATION] = gMovementActionFuncs_RestoreAnimation, + [MOVEMENT_ACTION_SET_INVISIBLE] = gMovementActionFuncs_SetInvisible, + [MOVEMENT_ACTION_SET_VISIBLE] = gMovementActionFuncs_SetVisible, + [MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK] = gMovementActionFuncs_EmoteExclamationMark, + [MOVEMENT_ACTION_EMOTE_QUESTION_MARK] = gMovementActionFuncs_EmoteQuestionMark, + [MOVEMENT_ACTION_EMOTE_HEART] = gMovementActionFuncs_EmoteHeart, + [MOVEMENT_ACTION_REVEAL_TRAINER] = gMovementActionFuncs_RevealTrainer, + [MOVEMENT_ACTION_ROCK_SMASH_BREAK] = gMovementActionFuncs_RockSmashBreak, + [MOVEMENT_ACTION_CUT_TREE] = gMovementActionFuncs_CutTree, + [MOVEMENT_ACTION_SET_FIXED_PRIORITY] = gMovementActionFuncs_SetFixedPriority, + [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = gMovementActionFuncs_ClearFixedPriority, + [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = gMovementActionFuncs_InitAffineAnim, + [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = gMovementActionFuncs_ClearAffineAnim, + [MOVEMENT_ACTION_UNKNOWN1] = gMovementActionFuncs_Unknown1, + [MOVEMENT_ACTION_UNKNOWN2] = gMovementActionFuncs_Unknown2, + [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = gMovementActionFuncs_WalkDownStartAffine, + [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = gMovementActionFuncs_WalkDownAffine, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = gMovementActionFuncs_AcroWheelieFaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP] = gMovementActionFuncs_AcroWheelieFaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT] = gMovementActionFuncs_AcroWheelieFaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT] = gMovementActionFuncs_AcroWheelieFaceRight, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN] = gMovementActionFuncs_AcroPopWheelieDown, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP] = gMovementActionFuncs_AcroPopWheelieUp, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT] = gMovementActionFuncs_AcroPopWheelieLeft, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT] = gMovementActionFuncs_AcroPopWheelieRight, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN] = gMovementActionFuncs_AcroEndWheelieFaceDown, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP] = gMovementActionFuncs_AcroEndWheelieFaceUp, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT] = gMovementActionFuncs_AcroEndWheelieFaceLeft, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT] = gMovementActionFuncs_AcroEndWheelieFaceRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN] = gMovementActionFuncs_AcroWheelieHopFaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP] = gMovementActionFuncs_AcroWheelieHopFaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT] = gMovementActionFuncs_AcroWheelieHopFaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT] = gMovementActionFuncs_AcroWheelieHopFaceRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN] = gMovementActionFuncs_AcroWheelieHopDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP] = gMovementActionFuncs_AcroWheelieHopUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT] = gMovementActionFuncs_AcroWheelieHopLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT] = gMovementActionFuncs_AcroWheelieHopRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN] = gMovementActionFuncs_AcroWheelieJumpDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP] = gMovementActionFuncs_AcroWheelieJumpUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT] = gMovementActionFuncs_AcroWheelieJumpLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT] = gMovementActionFuncs_AcroWheelieJumpRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN] = gMovementActionFuncs_AcroWheelieInPlaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP] = gMovementActionFuncs_AcroWheelieInPlaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT] = gMovementActionFuncs_AcroWheelieInPlaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT] = gMovementActionFuncs_AcroWheelieInPlaceRight, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN] = gMovementActionFuncs_AcroPopWheelieMoveDown, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP] = gMovementActionFuncs_AcroPopWheelieMoveUp, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT] = gMovementActionFuncs_AcroPopWheelieMoveLeft, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT] = gMovementActionFuncs_AcroPopWheelieMoveRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN] = gMovementActionFuncs_AcroWheelieMoveDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = gMovementActionFuncs_AcroWheelieMoveUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = gMovementActionFuncs_AcroWheelieMoveLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = gMovementActionFuncs_AcroWheelieMoveRight, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN] = gMovementActionFuncs_AcroEndWheelieMoveDown, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP] = gMovementActionFuncs_AcroEndWheelieMoveUp, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT] = gMovementActionFuncs_AcroEndWheelieMoveLeft, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT] = gMovementActionFuncs_AcroEndWheelieMoveRight, + [MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_LEFT] = gMovementActionFuncs_WalkNormalDiagonalUpLeft, + [MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_RIGHT] = gMovementActionFuncs_WalkNormalDiagonalUpRight, + [MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_LEFT] = gMovementActionFuncs_WalkNormalDiagonalDownLeft, + [MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_RIGHT] = gMovementActionFuncs_WalkNormalDiagonalDownRight, + [MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_LEFT] = gMovementActionFuncs_WalkSlowDiagonalUpLeft, + [MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT] = gMovementActionFuncs_WalkSlowDiagonalUpRight, + [MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT] = gMovementActionFuncs_WalkSlowDiagonalDownLeft, + [MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT] = gMovementActionFuncs_WalkSlowDiagonalDownRight, + [MOVEMENT_ACTION_STORE_AND_LOCK_ANIM] = gMovementActionFuncs_StoreAndLockAnim, + [MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM] = gMovementActionFuncs_FreeAndUnlockAnim, + [MOVEMENT_ACTION_WALK_LEFT_AFFINE] = gMovementActionFuncs_WalkLeftAffine, + [MOVEMENT_ACTION_WALK_RIGHT_AFFINE] = gMovementActionFuncs_WalkRightAffine, + [MOVEMENT_ACTION_LEVITATE] = gMovementActionFuncs_Levitate, + [MOVEMENT_ACTION_STOP_LEVITATE] = gMovementActionFuncs_StopLevitate, + [MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP] = gMovementActionFuncs_DestroyExtraTaskIfAtTop, + [MOVEMENT_ACTION_FIGURE_8] = gMovementActionFuncs_Figure8, + [MOVEMENT_ACTION_FLY_UP] = gMovementActionFuncs_FlyUp, + [MOVEMENT_ACTION_FLY_DOWN] = gMovementActionFuncs_FlyDown, }; u8 (*const gMovementActionFuncs_FaceDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_FaceDown_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_FaceDown_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_FaceUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_FaceUp_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_FaceUp_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_FaceLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_FaceLeft_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_FaceLeft_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_FaceRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_FaceRight_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_FaceRight_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gUnknown_0850DEE8[])(u8) = { - GetMoveDirectionAnimNum, - GetMoveDirectionFastAnimNum, - GetMoveDirectionFastAnimNum, - GetMoveDirectionFasterAnimNum, - GetMoveDirectionFastestAnimNum, + GetMoveDirectionAnimNum, + GetMoveDirectionFastAnimNum, + GetMoveDirectionFastAnimNum, + GetMoveDirectionFasterAnimNum, + GetMoveDirectionFastestAnimNum, }; u8 (*const gMovementActionFuncs_WalkSlowDiagonalUpLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowDiagonalUpLeft_Step0, - MovementAction_WalkSlowDiagonalUpLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowDiagonalUpLeft_Step0, + MovementAction_WalkSlowDiagonalUpLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkSlowDiagonalUpRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowDiagonalUpRight_Step0, - MovementAction_WalkSlowDiagonalUpRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowDiagonalUpRight_Step0, + MovementAction_WalkSlowDiagonalUpRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkSlowDiagonalDownLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowDiagonalDownLeft_Step0, - MovementAction_WalkSlowDiagonalDownLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowDiagonalDownLeft_Step0, + MovementAction_WalkSlowDiagonalDownLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkSlowDiagonalDownRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowDiagonalDownRight_Step0, - MovementAction_WalkSlowDiagonalDownRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowDiagonalDownRight_Step0, + MovementAction_WalkSlowDiagonalDownRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkSlowDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowDown_Step0, - MovementAction_WalkSlowDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowDown_Step0, + MovementAction_WalkSlowDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkSlowUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowUp_Step0, - MovementAction_WalkSlowUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowUp_Step0, + MovementAction_WalkSlowUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkSlowLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowLeft_Step0, - MovementAction_WalkSlowLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowLeft_Step0, + MovementAction_WalkSlowLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkSlowRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkSlowRight_Step0, - MovementAction_WalkSlowRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkSlowRight_Step0, + MovementAction_WalkSlowRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalDiagonalUpLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalDiagonalUpLeft_Step0, - MovementAction_WalkNormalDiagonalUpLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalDiagonalUpLeft_Step0, + MovementAction_WalkNormalDiagonalUpLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalDiagonalUpRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalDiagonalUpRight_Step0, - MovementAction_WalkNormalDiagonalUpRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalDiagonalUpRight_Step0, + MovementAction_WalkNormalDiagonalUpRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalDiagonalDownLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalDiagonalDownLeft_Step0, - MovementAction_WalkNormalDiagonalDownLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalDiagonalDownLeft_Step0, + MovementAction_WalkNormalDiagonalDownLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalDiagonalDownRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalDiagonalDownRight_Step0, - MovementAction_WalkNormalDiagonalDownRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalDiagonalDownRight_Step0, + MovementAction_WalkNormalDiagonalDownRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalDown_Step0, - MovementAction_WalkNormalDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalDown_Step0, + MovementAction_WalkNormalDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalUp_Step0, - MovementAction_WalkNormalUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalUp_Step0, + MovementAction_WalkNormalUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalLeft_Step0, - MovementAction_WalkNormalLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalLeft_Step0, + MovementAction_WalkNormalLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkNormalRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkNormalRight_Step0, - MovementAction_WalkNormalRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkNormalRight_Step0, + MovementAction_WalkNormalRight_Step1, + MovementAction_PauseSpriteAnim, }; const s16 gUnknown_0850DFBC[] = {0, 1, 1}; const s16 gUnknown_0850DFC2[] = {0, 0, 1}; u8 (*const gMovementActionFuncs_Jump2Down[])(struct EventObject *, struct Sprite *) = { - MovementAction_Jump2Down_Step0, - MovementAction_Jump2Down_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_Jump2Down_Step0, + MovementAction_Jump2Down_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_Jump2Up[])(struct EventObject *, struct Sprite *) = { - MovementAction_Jump2Up_Step0, - MovementAction_Jump2Up_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_Jump2Up_Step0, + MovementAction_Jump2Up_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_Jump2Left[])(struct EventObject *, struct Sprite *) = { - MovementAction_Jump2Left_Step0, - MovementAction_Jump2Left_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_Jump2Left_Step0, + MovementAction_Jump2Left_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_Jump2Right[])(struct EventObject *, struct Sprite *) = { - MovementAction_Jump2Right_Step0, - MovementAction_Jump2Right_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_Jump2Right_Step0, + MovementAction_Jump2Right_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_Delay1[])(struct EventObject *, struct Sprite *) = { - MovementAction_Delay1_Step0, - MovementAction_Delay_Step1, - MovementAction_Finish, + MovementAction_Delay1_Step0, + MovementAction_Delay_Step1, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_Delay2[])(struct EventObject *, struct Sprite *) = { - MovementAction_Delay2_Step0, - MovementAction_Delay_Step1, - MovementAction_Finish, + MovementAction_Delay2_Step0, + MovementAction_Delay_Step1, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_Delay4[])(struct EventObject *, struct Sprite *) = { - MovementAction_Delay4_Step0, - MovementAction_Delay_Step1, - MovementAction_Finish, + MovementAction_Delay4_Step0, + MovementAction_Delay_Step1, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_Delay8[])(struct EventObject *, struct Sprite *) = { - MovementAction_Delay8_Step0, - MovementAction_Delay_Step1, - MovementAction_Finish, + MovementAction_Delay8_Step0, + MovementAction_Delay_Step1, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_Delay16[])(struct EventObject *, struct Sprite *) = { - MovementAction_Delay16_Step0, - MovementAction_Delay_Step1, - MovementAction_Finish, + MovementAction_Delay16_Step0, + MovementAction_Delay_Step1, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_WalkFastDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastDown_Step0, - MovementAction_WalkFastDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastDown_Step0, + MovementAction_WalkFastDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkFastUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastUp_Step0, - MovementAction_WalkFastUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastUp_Step0, + MovementAction_WalkFastUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkFastLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastLeft_Step0, - MovementAction_WalkFastLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastLeft_Step0, + MovementAction_WalkFastLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkFastRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastRight_Step0, - MovementAction_WalkFastRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastRight_Step0, + MovementAction_WalkFastRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceSlowDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceSlowDown_Step0, - MovementAction_WalkInPlaceSlow_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceSlowDown_Step0, + MovementAction_WalkInPlaceSlow_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceSlowUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceSlowUp_Step0, - MovementAction_WalkInPlaceSlow_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceSlowUp_Step0, + MovementAction_WalkInPlaceSlow_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceSlowLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceSlowLeft_Step0, - MovementAction_WalkInPlaceSlow_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceSlowLeft_Step0, + MovementAction_WalkInPlaceSlow_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceSlowRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceSlowRight_Step0, - MovementAction_WalkInPlaceSlow_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceSlowRight_Step0, + MovementAction_WalkInPlaceSlow_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceNormalDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceNormalDown_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceNormalDown_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceNormalUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceNormalUp_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceNormalUp_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceNormalLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceNormalLeft_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceNormalLeft_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceNormalRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceNormalRight_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceNormalRight_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastDown_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastDown_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastUp_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastUp_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastLeft_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastLeft_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastRight_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastRight_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastestDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestDown_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastestDown_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastestUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestUp_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastestUp_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastestLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestLeft_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastestLeft_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkInPlaceFastestRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestRight_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkInPlaceFastestRight_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_RideWaterCurrentDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_RideWaterCurrentDown_Step0, - MovementAction_RideWaterCurrentDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_RideWaterCurrentDown_Step0, + MovementAction_RideWaterCurrentDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_RideWaterCurrentUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_RideWaterCurrentUp_Step0, - MovementAction_RideWaterCurrentUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_RideWaterCurrentUp_Step0, + MovementAction_RideWaterCurrentUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_RideWaterCurrentLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_RideWaterCurrentLeft_Step0, - MovementAction_RideWaterCurrentLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_RideWaterCurrentLeft_Step0, + MovementAction_RideWaterCurrentLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_RideWaterCurrentRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_RideWaterCurrentRight_Step0, - MovementAction_RideWaterCurrentRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_RideWaterCurrentRight_Step0, + MovementAction_RideWaterCurrentRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkFastestDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastestDown_Step0, - MovementAction_WalkFastestDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastestDown_Step0, + MovementAction_WalkFastestDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkFastestUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastestUp_Step0, - MovementAction_WalkFastestUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastestUp_Step0, + MovementAction_WalkFastestUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkFastestLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastestLeft_Step0, - MovementAction_WalkFastestLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastestLeft_Step0, + MovementAction_WalkFastestLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkFastestRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkFastestRight_Step0, - MovementAction_WalkFastestRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkFastestRight_Step0, + MovementAction_WalkFastestRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_SlideDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_SlideDown_Step0, - MovementAction_SlideDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_SlideDown_Step0, + MovementAction_SlideDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_SlideUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_SlideUp_Step0, - MovementAction_SlideUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_SlideUp_Step0, + MovementAction_SlideUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_SlideLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_SlideLeft_Step0, - MovementAction_SlideLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_SlideLeft_Step0, + MovementAction_SlideLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_SlideRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_SlideRight_Step0, - MovementAction_SlideRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_SlideRight_Step0, + MovementAction_SlideRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_PlayerRunDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_PlayerRunDown_Step0, - MovementAction_PlayerRunDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_PlayerRunDown_Step0, + MovementAction_PlayerRunDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_PlayerRunUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_PlayerRunUp_Step0, - MovementAction_PlayerRunUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_PlayerRunUp_Step0, + MovementAction_PlayerRunUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_PlayerRunLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_PlayerRunLeft_Step0, - MovementAction_PlayerRunLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_PlayerRunLeft_Step0, + MovementAction_PlayerRunLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_PlayerRunRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_PlayerRunRight_Step0, - MovementAction_PlayerRunRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_PlayerRunRight_Step0, + MovementAction_PlayerRunRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_StartAnimInDirection[])(struct EventObject *, struct Sprite *) = { - MovementAction_StartAnimInDirection_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_StartAnimInDirection_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpSpecialDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpSpecialDown_Step0, - MovementAction_JumpSpecialDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpSpecialDown_Step0, + MovementAction_JumpSpecialDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpSpecialUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpSpecialUp_Step0, - MovementAction_JumpSpecialUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpSpecialUp_Step0, + MovementAction_JumpSpecialUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpSpecialLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpSpecialLeft_Step0, - MovementAction_JumpSpecialLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpSpecialLeft_Step0, + MovementAction_JumpSpecialLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpSpecialRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpSpecialRight_Step0, - MovementAction_JumpSpecialRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpSpecialRight_Step0, + MovementAction_JumpSpecialRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_FacePlayer[])(struct EventObject *, struct Sprite *) = { - MovementAction_FacePlayer_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_FacePlayer_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_FaceAwayPlayer[])(struct EventObject *, struct Sprite *) = { - MovementAction_FaceAwayPlayer_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_FaceAwayPlayer_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_LockFacingDirection[])(struct EventObject *, struct Sprite *) = { - MovementAction_LockFacingDirection_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_LockFacingDirection_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_UnlockFacingDirection[])(struct EventObject *, struct Sprite *) = { - MovementAction_UnlockFacingDirection_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_UnlockFacingDirection_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpDown_Step0, - MovementAction_JumpDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpDown_Step0, + MovementAction_JumpDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpUp_Step0, - MovementAction_JumpUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpUp_Step0, + MovementAction_JumpUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpLeft_Step0, - MovementAction_JumpLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpLeft_Step0, + MovementAction_JumpLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpRight_Step0, - MovementAction_JumpRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpRight_Step0, + MovementAction_JumpRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceDown_Step0, - MovementAction_JumpInPlaceDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceDown_Step0, + MovementAction_JumpInPlaceDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceUp_Step0, - MovementAction_JumpInPlaceUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceUp_Step0, + MovementAction_JumpInPlaceUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceLeft_Step0, - MovementAction_JumpInPlaceLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceLeft_Step0, + MovementAction_JumpInPlaceLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceRight_Step0, - MovementAction_JumpInPlaceRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceRight_Step0, + MovementAction_JumpInPlaceRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceDownUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceDownUp_Step0, - MovementAction_JumpInPlaceDownUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceDownUp_Step0, + MovementAction_JumpInPlaceDownUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceUpDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceUpDown_Step0, - MovementAction_JumpInPlaceUpDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceUpDown_Step0, + MovementAction_JumpInPlaceUpDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceLeftRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceLeftRight_Step0, - MovementAction_JumpInPlaceLeftRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceLeftRight_Step0, + MovementAction_JumpInPlaceLeftRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_JumpInPlaceRightLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_JumpInPlaceRightLeft_Step0, - MovementAction_JumpInPlaceRightLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_JumpInPlaceRightLeft_Step0, + MovementAction_JumpInPlaceRightLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_FaceOriginalDirection[])(struct EventObject *, struct Sprite *) = { - MovementAction_FaceOriginalDirection_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_FaceOriginalDirection_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_NurseJoyBowDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_NurseJoyBowDown_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_NurseJoyBowDown_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_EnableJumpLandingGroundEffect[])(struct EventObject *, struct Sprite *) = { - MovementAction_EnableJumpLandingGroundEffect_Step0, - MovementAction_Finish, + MovementAction_EnableJumpLandingGroundEffect_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_DisableJumpLandingGroundEffect[])(struct EventObject *, struct Sprite *) = { - MovementAction_DisableJumpLandingGroundEffect_Step0, - MovementAction_Finish, + MovementAction_DisableJumpLandingGroundEffect_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_DisableAnimation[])(struct EventObject *, struct Sprite *) = { - MovementAction_DisableAnimation_Step0, - MovementAction_Finish, + MovementAction_DisableAnimation_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_RestoreAnimation[])(struct EventObject *, struct Sprite *) = { - MovementAction_RestoreAnimation_Step0, - MovementAction_Finish, + MovementAction_RestoreAnimation_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_SetInvisible[])(struct EventObject *, struct Sprite *) = { - MovementAction_SetInvisible_Step0, - MovementAction_Finish, + MovementAction_SetInvisible_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_SetVisible[])(struct EventObject *, struct Sprite *) = { - MovementAction_SetVisible_Step0, - MovementAction_Finish, + MovementAction_SetVisible_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_EmoteExclamationMark[])(struct EventObject *, struct Sprite *) = { - MovementAction_EmoteExclamationMark_Step0, - MovementAction_Finish, + MovementAction_EmoteExclamationMark_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_EmoteQuestionMark[])(struct EventObject *, struct Sprite *) = { - MovementAction_EmoteQuestionMark_Step0, - MovementAction_Finish, + MovementAction_EmoteQuestionMark_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_EmoteHeart[])(struct EventObject *, struct Sprite *) = { - MovementAction_EmoteHeart_Step0, - MovementAction_Finish, + MovementAction_EmoteHeart_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_RevealTrainer[])(struct EventObject *, struct Sprite *) = { - MovementAction_RevealTrainer_Step0, - MovementAction_RevealTrainer_Step1, - MovementAction_Finish, + MovementAction_RevealTrainer_Step0, + MovementAction_RevealTrainer_Step1, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_RockSmashBreak[])(struct EventObject *, struct Sprite *) = { - MovementAction_RockSmashBreak_Step0, - MovementAction_RockSmashBreak_Step1, - MovementAction_RockSmashBreak_Step2, - MovementAction_Finish, + MovementAction_RockSmashBreak_Step0, + MovementAction_RockSmashBreak_Step1, + MovementAction_RockSmashBreak_Step2, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_CutTree[])(struct EventObject *, struct Sprite *) = { - MovementAction_CutTree_Step0, - MovementAction_CutTree_Step1, - MovementAction_CutTree_Step2, - MovementAction_Finish, + MovementAction_CutTree_Step0, + MovementAction_CutTree_Step1, + MovementAction_CutTree_Step2, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_SetFixedPriority[])(struct EventObject *, struct Sprite *) = { - MovementAction_SetFixedPriority_Step0, - MovementAction_Finish, + MovementAction_SetFixedPriority_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_ClearFixedPriority[])(struct EventObject *, struct Sprite *) = { - MovementAction_ClearFixedPriority_Step0, - MovementAction_Finish, + MovementAction_ClearFixedPriority_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_InitAffineAnim[])(struct EventObject *, struct Sprite *) = { - MovementAction_InitAffineAnim_Step0, - MovementAction_Finish, + MovementAction_InitAffineAnim_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct EventObject *, struct Sprite *) = { - MovementAction_ClearAffineAnim_Step0, - MovementAction_Finish, + MovementAction_ClearAffineAnim_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_Unknown1[])(struct EventObject *, struct Sprite *) = { - MovementAction_Unknown1_Step0, - MovementAction_Finish, + MovementAction_Unknown1_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_Unknown2[])(struct EventObject *, struct Sprite *) = { - MovementAction_Unknown2_Step0, - MovementAction_Finish, + MovementAction_Unknown2_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_WalkDownStartAffine[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkDownStartAffine_Step0, - MovementAction_WalkDownStartAffine_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkDownStartAffine_Step0, + MovementAction_WalkDownStartAffine_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkDownAffine[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkDownAffine_Step0, - MovementAction_WalkDownAffine_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkDownAffine_Step0, + MovementAction_WalkDownAffine_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkLeftAffine[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkLeftAffine_Step0, - MovementAction_WalkLeftAffine_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkLeftAffine_Step0, + MovementAction_WalkLeftAffine_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_WalkRightAffine[])(struct EventObject *, struct Sprite *) = { - MovementAction_WalkRightAffine_Step0, - MovementAction_WalkRightAffine_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_WalkRightAffine_Step0, + MovementAction_WalkRightAffine_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieFaceDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieFaceDown_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieFaceDown_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieFaceUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieFaceUp_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieFaceUp_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieFaceLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieFaceLeft_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieFaceLeft_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieFaceRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieFaceRight_Step0, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieFaceRight_Step0, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieDown_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieDown_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieUp_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieUp_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieLeft_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieLeft_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieRight_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieRight_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieFaceDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieFaceDown_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieFaceDown_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieFaceUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieFaceUp_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieFaceUp_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieFaceLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieFaceLeft_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieFaceLeft_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieFaceRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieFaceRight_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieFaceRight_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroUnusedAcroActionDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_UnusedAcroActionDown_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_UnusedAcroActionDown_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroUnusedAcroActionUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_UnusedAcroActionUp_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_UnusedAcroActionUp_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroUnusedAcroActionLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_UnusedAcroActionLeft_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_UnusedAcroActionLeft_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroUnusedAcroActionRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_UnusedAcroActionRight_Step0, - MovementAction_WaitSpriteAnim, - MovementAction_PauseSpriteAnim, + MovementAction_UnusedAcroActionRight_Step0, + MovementAction_WaitSpriteAnim, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_Figure8[])(struct EventObject *, struct Sprite *) = { - MovementAction_Figure8_Step0, - MovementAction_Figure8_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_Figure8_Step0, + MovementAction_Figure8_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopFaceDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopFaceDown_Step0, - MovementAction_AcroWheelieHopFaceDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopFaceDown_Step0, + MovementAction_AcroWheelieHopFaceDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopFaceUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopFaceUp_Step0, - MovementAction_AcroWheelieHopFaceUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopFaceUp_Step0, + MovementAction_AcroWheelieHopFaceUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopFaceLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopFaceLeft_Step0, - MovementAction_AcroWheelieHopFaceLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopFaceLeft_Step0, + MovementAction_AcroWheelieHopFaceLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopFaceRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopFaceRight_Step0, - MovementAction_AcroWheelieHopFaceRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopFaceRight_Step0, + MovementAction_AcroWheelieHopFaceRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopDown_Step0, - MovementAction_AcroWheelieHopDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopDown_Step0, + MovementAction_AcroWheelieHopDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopUp_Step0, - MovementAction_AcroWheelieHopUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopUp_Step0, + MovementAction_AcroWheelieHopUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopLeft_Step0, - MovementAction_AcroWheelieHopLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopLeft_Step0, + MovementAction_AcroWheelieHopLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieHopRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieHopRight_Step0, - MovementAction_AcroWheelieHopRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieHopRight_Step0, + MovementAction_AcroWheelieHopRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieJumpDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieJumpDown_Step0, - MovementAction_AcroWheelieJumpDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieJumpDown_Step0, + MovementAction_AcroWheelieJumpDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieJumpUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieJumpUp_Step0, - MovementAction_AcroWheelieJumpUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieJumpUp_Step0, + MovementAction_AcroWheelieJumpUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieJumpLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieJumpLeft_Step0, - MovementAction_AcroWheelieJumpLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieJumpLeft_Step0, + MovementAction_AcroWheelieJumpLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieJumpRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieJumpRight_Step0, - MovementAction_AcroWheelieJumpRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieJumpRight_Step0, + MovementAction_AcroWheelieJumpRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieInPlaceDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieInPlaceDown_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieInPlaceDown_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieInPlaceUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieInPlaceUp_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieInPlaceUp_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieInPlaceLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieInPlaceLeft_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieInPlaceLeft_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieInPlaceRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieInPlaceRight_Step0, - MovementAction_WalkInPlace_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieInPlaceRight_Step0, + MovementAction_WalkInPlace_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieMoveDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieMoveDown_Step0, - MovementAction_AcroPopWheelieMoveDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieMoveDown_Step0, + MovementAction_AcroPopWheelieMoveDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieMoveUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieMoveUp_Step0, - MovementAction_AcroPopWheelieMoveUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieMoveUp_Step0, + MovementAction_AcroPopWheelieMoveUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieMoveLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieMoveLeft_Step0, - MovementAction_AcroPopWheelieMoveLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieMoveLeft_Step0, + MovementAction_AcroPopWheelieMoveLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroPopWheelieMoveRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroPopWheelieMoveRight_Step0, - MovementAction_AcroPopWheelieMoveRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroPopWheelieMoveRight_Step0, + MovementAction_AcroPopWheelieMoveRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieMoveDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieMoveDown_Step0, - MovementAction_AcroWheelieMoveDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieMoveDown_Step0, + MovementAction_AcroWheelieMoveDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieMoveUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieMoveUp_Step0, - MovementAction_AcroWheelieMoveUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieMoveUp_Step0, + MovementAction_AcroWheelieMoveUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieMoveLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieMoveLeft_Step0, - MovementAction_AcroWheelieMoveLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieMoveLeft_Step0, + MovementAction_AcroWheelieMoveLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroWheelieMoveRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroWheelieMoveRight_Step0, - MovementAction_AcroWheelieMoveRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroWheelieMoveRight_Step0, + MovementAction_AcroWheelieMoveRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieMoveDown[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieMoveDown_Step0, - MovementAction_AcroEndWheelieMoveDown_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieMoveDown_Step0, + MovementAction_AcroEndWheelieMoveDown_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieMoveUp[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieMoveUp_Step0, - MovementAction_AcroEndWheelieMoveUp_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieMoveUp_Step0, + MovementAction_AcroEndWheelieMoveUp_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieMoveLeft[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieMoveLeft_Step0, - MovementAction_AcroEndWheelieMoveLeft_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieMoveLeft_Step0, + MovementAction_AcroEndWheelieMoveLeft_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_AcroEndWheelieMoveRight[])(struct EventObject *, struct Sprite *) = { - MovementAction_AcroEndWheelieMoveRight_Step0, - MovementAction_AcroEndWheelieMoveRight_Step1, - MovementAction_PauseSpriteAnim, + MovementAction_AcroEndWheelieMoveRight_Step0, + MovementAction_AcroEndWheelieMoveRight_Step1, + MovementAction_PauseSpriteAnim, }; u8 (*const gMovementActionFuncs_Levitate[])(struct EventObject *, struct Sprite *) = { - MovementAction_Levitate_Step0, - MovementAction_Finish, + MovementAction_Levitate_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_StopLevitate[])(struct EventObject *, struct Sprite *) = { - MovementAction_StopLevitate_Step0, - MovementAction_Finish, + MovementAction_StopLevitate_Step0, + MovementAction_Finish, }; u8 (*const gMovementActionFuncs_DestroyExtraTaskIfAtTop[])(struct EventObject *, struct Sprite *) = { - MovementAction_DestroyExtraTaskIfAtTop_Step0, - MovementAction_Finish, + MovementAction_DestroyExtraTaskIfAtTop_Step0, + MovementAction_Finish, }; - -#endif //GUARD_MOVEMENT_ACTION_FUNC_TABLES_H diff --git a/src/data/field_event_obj/movement_type_func_tables.h b/src/data/field_event_obj/movement_type_func_tables.h index 165e96220..3c490011b 100755 --- a/src/data/field_event_obj/movement_type_func_tables.h +++ b/src/data/field_event_obj/movement_type_func_tables.h @@ -1,6 +1,3 @@ -#ifndef GUARD_MOVEMENT_TYPE_FUNC_TABLES_H -#define GUARD_MOVEMENT_TYPE_FUNC_TABLES_H - u8 (*const gMovementTypeFuncs_WanderAround[])(struct EventObject *, struct Sprite *) = { MovementType_WanderAround_Step0, MovementType_WanderAround_Step1, @@ -439,5 +436,3 @@ u8 (*const gMovementTypeFuncs_Invisible[])(struct EventObject *, struct Sprite * MovementType_Invisible_Step1, MovementType_Invisible_Step2, }; - -#endif //GUARD_MOVEMENT_TYPE_FUNC_TABLES_H diff --git a/src/data/graphics/items.h b/src/data/graphics/items.h index 0f91c2250..26da9061d 100644 --- a/src/data/graphics/items.h +++ b/src/data/graphics/items.h @@ -134,7 +134,7 @@ const u32 gItemIconPalette_GreenShard[] = INCBIN_U32("graphics/items/icon_palett const u32 gItemIcon_HPUp[] = INCBIN_U32("graphics/items/icons/hp_up.4bpp.lz"); const u32 gItemIconPalette_HPUp[] = INCBIN_U32("graphics/items/icon_palettes/hp_up.gbapal.lz"); -const u32 gItemIcon_Vitamin[] = INCBIN_U32("graphics/items/icons/vitamin.4bpp.lz"); +const u32 gItemIcon_Vitamin[] = INCBIN_U32("graphics/items/icons/vitamin.4bpp.lz"); const u32 gItemIconPalette_Protein[] = INCBIN_U32("graphics/items/icon_palettes/protein.gbapal.lz"); const u32 gItemIconPalette_Iron[] = INCBIN_U32("graphics/items/icon_palettes/iron.gbapal.lz"); const u32 gItemIconPalette_Carbos[] = INCBIN_U32("graphics/items/icon_palettes/carbos.gbapal.lz"); diff --git a/src/data/graphics/trainers.h b/src/data/graphics/trainers.h index 79ba703ba..3de77d6ec 100644 --- a/src/data/graphics/trainers.h +++ b/src/data/graphics/trainers.h @@ -151,11 +151,11 @@ const u32 gTrainerPalette_SchoolKidF[] = INCBIN_U32("graphics/trainers/palettes/ const u32 gTrainerFrontPic_SrAndJr[] = INCBIN_U32("graphics/trainers/front_pics/sr_and_jr_front_pic.4bpp.lz"); const u32 gTrainerPalette_SrAndJr[] = INCBIN_U32("graphics/trainers/palettes/sr_and_jr.gbapal.lz"); -const u32 gTrainerFrontPic_WinstrateM[] = INCBIN_U32("graphics/trainers/front_pics/winstrate_m_front_pic.4bpp.lz"); -const u32 gTrainerPalette_WinstrateM[] = INCBIN_U32("graphics/trainers/palettes/winstrate_m.gbapal.lz"); +const u32 gTrainerFrontPic_PokefanM[] = INCBIN_U32("graphics/trainers/front_pics/pokefan_m_front_pic.4bpp.lz"); +const u32 gTrainerPalette_PokefanM[] = INCBIN_U32("graphics/trainers/palettes/pokefan_m.gbapal.lz"); -const u32 gTrainerFrontPic_WinstrateF[] = INCBIN_U32("graphics/trainers/front_pics/winstrate_f_front_pic.4bpp.lz"); -const u32 gTrainerPalette_WinstrateF[] = INCBIN_U32("graphics/trainers/palettes/winstrate_f.gbapal.lz"); +const u32 gTrainerFrontPic_PokefanF[] = INCBIN_U32("graphics/trainers/front_pics/pokefan_f_front_pic.4bpp.lz"); +const u32 gTrainerPalette_PokefanF[] = INCBIN_U32("graphics/trainers/palettes/pokefan_f.gbapal.lz"); const u32 gTrainerFrontPic_Youngster[] = INCBIN_U32("graphics/trainers/front_pics/youngster_front_pic.4bpp.lz"); const u32 gTrainerPalette_Youngster[] = INCBIN_U32("graphics/trainers/palettes/youngster.gbapal.lz"); diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h index a56f297ef..c36969ab5 100644 --- a/src/data/item_icon_table.h +++ b/src/data/item_icon_table.h @@ -1,414 +1,407 @@ -#ifndef GUARD_DATA_ITEM_ICON_TABLE_H -#define GUARD_DATA_ITEM_ICON_TABLE_H - -#include "global.h" -#include "graphics.h" - -const u32 *const gItemIconTable[][2] = +const u32 *const gItemIconTable[][2] = { - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Pokeballs - gItemIcon_MasterBall, gItemIconPalette_MasterBall, - gItemIcon_UltraBall, gItemIconPalette_UltraBall, - gItemIcon_GreatBall, gItemIconPalette_GreatBall, - gItemIcon_PokeBall, gItemIconPalette_PokeBall, - gItemIcon_SafariBall, gItemIconPalette_SafariBall, - gItemIcon_NetBall, gItemIconPalette_NetBall, - gItemIcon_DiveBall, gItemIconPalette_DiveBall, - gItemIcon_NestBall, gItemIconPalette_NestBall, - gItemIcon_RepeatBall, gItemIconPalette_RepeatBall, - gItemIcon_TimerBall, gItemIconPalette_RepeatBall, - gItemIcon_LuxuryBall, gItemIconPalette_LuxuryBall, - gItemIcon_PremierBall, gItemIconPalette_LuxuryBall, -// Medicine - gItemIcon_Potion, gItemIconPalette_Potion, - gItemIcon_Antidote, gItemIconPalette_Antidote, - gItemIcon_StatusHeal, gItemIconPalette_BurnHeal, - gItemIcon_StatusHeal, gItemIconPalette_IceHeal, - gItemIcon_StatusHeal, gItemIconPalette_Awakening, - gItemIcon_StatusHeal, gItemIconPalette_ParalyzeHeal, - gItemIcon_LargePotion, gItemIconPalette_FullRestore, - gItemIcon_LargePotion, gItemIconPalette_MaxPotion, - gItemIcon_Potion, gItemIconPalette_HyperPotion, - gItemIcon_Potion, gItemIconPalette_SuperPotion, - gItemIcon_FullHeal, gItemIconPalette_FullHeal, - gItemIcon_Revive, gItemIconPalette_Revive, - gItemIcon_MaxRevive, gItemIconPalette_Revive, - gItemIcon_FreshWater, gItemIconPalette_FreshWater, - gItemIcon_SodaPop, gItemIconPalette_SodaPop, - gItemIcon_Lemonade, gItemIconPalette_Lemonade, - gItemIcon_MoomooMilk, gItemIconPalette_MoomooMilk, - gItemIcon_Powder, gItemIconPalette_EnergyPowder, - gItemIcon_EnergyRoot, gItemIconPalette_EnergyRoot, - gItemIcon_Powder, gItemIconPalette_HealPowder, - gItemIcon_RevivalHerb, gItemIconPalette_RevivalHerb, - gItemIcon_Ether, gItemIconPalette_Ether, - gItemIcon_Ether, gItemIconPalette_MaxEther, - gItemIcon_Ether, gItemIconPalette_Elixir, - gItemIcon_Ether, gItemIconPalette_MaxElixir, - gItemIcon_LavaCookie, gItemIconPalette_LavaCookieAndLetter, - gItemIcon_Flute, gItemIconPalette_BlueFlute, - gItemIcon_Flute, gItemIconPalette_YellowFlute, - gItemIcon_Flute, gItemIconPalette_RedFlute, - gItemIcon_Flute, gItemIconPalette_BlackFlute, - gItemIcon_Flute, gItemIconPalette_WhiteFlute, - gItemIcon_BerryJuice, gItemIconPalette_BerryJuice, - gItemIcon_SacredAsh, gItemIconPalette_SacredAsh, -// Collectibles - gItemIcon_Powder, gItemIconPalette_ShoalSalt, - gItemIcon_ShoalShell, gItemIconPalette_Shell, - gItemIcon_Shard, gItemIconPalette_RedShard, - gItemIcon_Shard, gItemIconPalette_BlueShard, - gItemIcon_Shard, gItemIconPalette_YellowShard, - gItemIcon_Shard, gItemIconPalette_GreenShard, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Vitamins - gItemIcon_HPUp, gItemIconPalette_HPUp, - gItemIcon_Vitamin, gItemIconPalette_Protein, - gItemIcon_Vitamin, gItemIconPalette_Iron, - gItemIcon_Vitamin, gItemIconPalette_Carbos, - gItemIcon_Vitamin, gItemIconPalette_Calcium, - gItemIcon_RareCandy, gItemIconPalette_RareCandy, - gItemIcon_PPUp, gItemIconPalette_PPUp, - gItemIcon_Vitamin, gItemIconPalette_Zinc, - gItemIcon_PPMax, gItemIconPalette_PPMax, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Battle items - gItemIcon_BattleStatItem, gItemIconPalette_GuardSpec, - gItemIcon_BattleStatItem, gItemIconPalette_DireHit, - gItemIcon_BattleStatItem, gItemIconPalette_XAttack, - gItemIcon_BattleStatItem, gItemIconPalette_XDefend, - gItemIcon_BattleStatItem, gItemIconPalette_XSpeed, - gItemIcon_BattleStatItem, gItemIconPalette_XAccuracy, - gItemIcon_BattleStatItem, gItemIconPalette_XSpecial, - gItemIcon_PokeDoll, gItemIconPalette_PokeDoll, - gItemIcon_FluffyTail, gItemIconPalette_FluffyTail, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Field items - gItemIcon_Repel, gItemIconPalette_SuperRepel, - gItemIcon_Repel, gItemIconPalette_MaxRepel, - gItemIcon_EscapeRope, gItemIconPalette_EscapeRope, - gItemIcon_Repel, gItemIconPalette_Repel, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Evolution stones - gItemIcon_SunStone, gItemIconPalette_SunStone, - gItemIcon_MoonStone, gItemIconPalette_MoonStone, - gItemIcon_FireStone, gItemIconPalette_FireStone, - gItemIcon_ThunderStone, gItemIconPalette_ThunderStone, - gItemIcon_WaterStone, gItemIconPalette_WaterStone, - gItemIcon_LeafStone, gItemIconPalette_LeafStone, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Valuables - gItemIcon_TinyMushroom, gItemIconPalette_Mushroom, - gItemIcon_BigMushroom, gItemIconPalette_Mushroom, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_Pearl, gItemIconPalette_Pearl, - gItemIcon_BigPearl, gItemIconPalette_Pearl, - gItemIcon_Stardust, gItemIconPalette_Star, - gItemIcon_StarPiece, gItemIconPalette_Star, - gItemIcon_Nugget, gItemIconPalette_Nugget, - gItemIcon_HeartScale, gItemIconPalette_HeartScale, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Mail - gItemIcon_OrangeMail, gItemIconPalette_OrangeMail, - gItemIcon_HarborMail, gItemIconPalette_HarborMail, - gItemIcon_GlitterMail, gItemIconPalette_GlitterMail, - gItemIcon_MechMail, gItemIconPalette_MechMail, - gItemIcon_WoodMail, gItemIconPalette_WoodMail, - gItemIcon_WaveMail, gItemIconPalette_WaveMail, - gItemIcon_BeadMail, gItemIconPalette_BeadMail, - gItemIcon_ShadowMail, gItemIconPalette_ShadowMail, - gItemIcon_TropicMail, gItemIconPalette_TropicMail, - gItemIcon_DreamMail, gItemIconPalette_DreamMail, - gItemIcon_FabMail, gItemIconPalette_FabMail, - gItemIcon_RetroMail, gItemIconPalette_RetroMail, -// Berries - gItemIcon_CheriBerry, gItemIconPalette_CheriBerry, - gItemIcon_ChestoBerry, gItemIconPalette_ChestoBerry, - gItemIcon_PechaBerry, gItemIconPalette_PechaBerry, - gItemIcon_RawstBerry, gItemIconPalette_RawstBerry, - gItemIcon_AspearBerry, gItemIconPalette_AspearBerry, - gItemIcon_LeppaBerry, gItemIconPalette_LeppaBerry, - gItemIcon_OranBerry, gItemIconPalette_OranBerry, - gItemIcon_PersimBerry, gItemIconPalette_PersimBerry, - gItemIcon_LumBerry, gItemIconPalette_LumBerry, - gItemIcon_SitrusBerry, gItemIconPalette_SitrusBerry, - gItemIcon_FigyBerry, gItemIconPalette_FigyBerry, - gItemIcon_WikiBerry, gItemIconPalette_WikiBerry, - gItemIcon_MagoBerry, gItemIconPalette_MagoBerry, - gItemIcon_AguavBerry, gItemIconPalette_AguavBerry, - gItemIcon_IapapaBerry, gItemIconPalette_IapapaBerry, - gItemIcon_RazzBerry, gItemIconPalette_RazzBerry, - gItemIcon_BlukBerry, gItemIconPalette_BlukBerry, - gItemIcon_NanabBerry, gItemIconPalette_NanabBerry, - gItemIcon_WepearBerry, gItemIconPalette_WepearBerry, - gItemIcon_PinapBerry, gItemIconPalette_PinapBerry, - gItemIcon_PomegBerry, gItemIconPalette_PomegBerry, - gItemIcon_KelpsyBerry, gItemIconPalette_KelpsyBerry, - gItemIcon_QualotBerry, gItemIconPalette_QualotBerry, - gItemIcon_HondewBerry, gItemIconPalette_HondewBerry, - gItemIcon_GrepaBerry, gItemIconPalette_GrepaBerry, - gItemIcon_TamatoBerry, gItemIconPalette_TamatoBerry, - gItemIcon_CornnBerry, gItemIconPalette_CornnBerry, - gItemIcon_MagostBerry, gItemIconPalette_MagostBerry, - gItemIcon_RabutaBerry, gItemIconPalette_RabutaBerry, - gItemIcon_NomelBerry, gItemIconPalette_NomelBerry, - gItemIcon_SpelonBerry, gItemIconPalette_SpelonBerry, - gItemIcon_PamtreBerry, gItemIconPalette_PamtreBerry, - gItemIcon_WatmelBerry, gItemIconPalette_WatmelBerry, - gItemIcon_DurinBerry, gItemIconPalette_DurinBerry, - gItemIcon_BelueBerry, gItemIconPalette_BelueBerry, - gItemIcon_LiechiBerry, gItemIconPalette_LiechiBerry, - gItemIcon_GanlonBerry, gItemIconPalette_GanlonBerry, - gItemIcon_SalacBerry, gItemIconPalette_SalacBerry, - gItemIcon_PetayaBerry, gItemIconPalette_PetayaBerry, - gItemIcon_ApicotBerry, gItemIconPalette_ApicotBerry, - gItemIcon_LansatBerry, gItemIconPalette_LansatBerry, - gItemIcon_StarfBerry, gItemIconPalette_StarfBerry, - gItemIcon_EnigmaBerry, gItemIconPalette_EnigmaBerry, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Hold items - gItemIcon_BrightPowder, gItemIconPalette_BrightPowder, - gItemIcon_InBattleHerb, gItemIconPalette_WhiteHerb, - gItemIcon_MachoBrace, gItemIconPalette_MachoBrace, - gItemIcon_ExpShare, gItemIconPalette_ExpShare, - gItemIcon_QuickClaw, gItemIconPalette_QuickClaw, - gItemIcon_SootheBell, gItemIconPalette_SootheBell, - gItemIcon_InBattleHerb, gItemIconPalette_MentalHerb, - gItemIcon_ChoiceBand, gItemIconPalette_ChoiceBand, - gItemIcon_KingsRock, gItemIconPalette_KingsRock, - gItemIcon_SilverPowder, gItemIconPalette_SilverPowder, - gItemIcon_AmuletCoin, gItemIconPalette_AmuletCoin, - gItemIcon_CleanseTag, gItemIconPalette_CleanseTag, - gItemIcon_SoulDew, gItemIconPalette_SoulDew, - gItemIcon_DeepSeaTooth, gItemIconPalette_DeepSeaTooth, - gItemIcon_DeepSeaScale, gItemIconPalette_DeepSeaScale, - gItemIcon_SmokeBall, gItemIconPalette_SmokeBall, - gItemIcon_Everstone, gItemIconPalette_Everstone, - gItemIcon_FocusBand, gItemIconPalette_FocusBand, - gItemIcon_LuckyEgg, gItemIconPalette_LuckyEgg, - gItemIcon_ScopeLens, gItemIconPalette_ScopeLens, - gItemIcon_MetalCoat, gItemIconPalette_MetalCoat, - gItemIcon_Leftovers, gItemIconPalette_Leftovers, - gItemIcon_DragonScale, gItemIconPalette_DragonScale, - gItemIcon_LightBall, gItemIconPalette_LightBall, - gItemIcon_SoftSand, gItemIconPalette_SoftSand, - gItemIcon_HardStone, gItemIconPalette_HardStone, - gItemIcon_MiracleSeed, gItemIconPalette_MiracleSeed, - gItemIcon_BlackGlasses, gItemIconPalette_BlackTypeEnhancingItem, - gItemIcon_BlackBelt, gItemIconPalette_BlackTypeEnhancingItem, - gItemIcon_Magnet, gItemIconPalette_Magnet, - gItemIcon_MysticWater, gItemIconPalette_MysticWater, - gItemIcon_SharpBeak, gItemIconPalette_SharpBeak, - gItemIcon_PoisonBarb, gItemIconPalette_PoisonBarb, - gItemIcon_NeverMeltIce, gItemIconPalette_NeverMeltIce, - gItemIcon_SpellTag, gItemIconPalette_SpellTag, - gItemIcon_TwistedSpoon, gItemIconPalette_TwistedSpoon, - gItemIcon_Charcoal, gItemIconPalette_Charcoal, - gItemIcon_DragonFang, gItemIconPalette_DragonFang, - gItemIcon_SilkScarf, gItemIconPalette_SilkScarf, - gItemIcon_UpGrade, gItemIconPalette_UpGrade, - gItemIcon_ShellBell, gItemIconPalette_Shell, - gItemIcon_SeaIncense, gItemIconPalette_SeaIncense, - gItemIcon_LaxIncense, gItemIconPalette_LaxIncense, - gItemIcon_LuckyPunch, gItemIconPalette_LuckyPunch, - gItemIcon_MetalPowder, gItemIconPalette_MetalPowder, - gItemIcon_ThickClub, gItemIconPalette_ThickClub, - gItemIcon_Stick, gItemIconPalette_Stick, -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// Contest hold items - gItemIcon_Scarf, gItemIconPalette_RedScarf, - gItemIcon_Scarf, gItemIconPalette_BlueScarf, - gItemIcon_Scarf, gItemIconPalette_PinkScarf, - gItemIcon_Scarf, gItemIconPalette_GreenScarf, - gItemIcon_Scarf, gItemIconPalette_YellowScarf, -// Key items - gItemIcon_MachBike, gItemIconPalette_MachBike, - gItemIcon_CoinCase, gItemIconPalette_CoinCase, - gItemIcon_Itemfinder, gItemIconPalette_Itemfinder, - gItemIcon_OldRod, gItemIconPalette_OldRod, - gItemIcon_GoodRod, gItemIconPalette_GoodRod, - gItemIcon_SuperRod, gItemIconPalette_SuperRod, - gItemIcon_SSTicket, gItemIconPalette_SSTicket, - gItemIcon_ContestPass, gItemIconPalette_ContestPass, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_WailmerPail, gItemIconPalette_WailmerPail, - gItemIcon_DevonGoods, gItemIconPalette_DevonGoods, - gItemIcon_SootSack, gItemIconPalette_SootSack, - gItemIcon_BasementKey, gItemIconPalette_OldKey, - gItemIcon_AcroBike, gItemIconPalette_AcroBike, - gItemIcon_PokeblockCase, gItemIconPalette_PokeblockCase, - gItemIcon_Letter, gItemIconPalette_LavaCookieAndLetter, - gItemIcon_EonTicket, gItemIconPalette_EonTicket, - gItemIcon_Orb, gItemIconPalette_RedOrb, - gItemIcon_Orb, gItemIconPalette_BlueOrb, - gItemIcon_Scanner, gItemIconPalette_Scanner, - gItemIcon_GoGoggles, gItemIconPalette_GoGoggles, - gItemIcon_Meteorite, gItemIconPalette_Meteorite, - gItemIcon_Room1Key, gItemIconPalette_Key, - gItemIcon_Room2Key, gItemIconPalette_Key, - gItemIcon_Room4Key, gItemIconPalette_Key, - gItemIcon_Room6Key, gItemIconPalette_Key, - gItemIcon_StorageKey, gItemIconPalette_OldKey, - gItemIcon_RootFossil, gItemIconPalette_HoennFossil, - gItemIcon_ClawFossil, gItemIconPalette_HoennFossil, - gItemIcon_DevonScope, gItemIconPalette_DevonScope, -// TMs/HMs - gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM01 - gItemIcon_TM, gItemIconPalette_DragonTMHM, // TM02 - gItemIcon_TM, gItemIconPalette_WaterTMHM, // TM03 - gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM04 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM05 - gItemIcon_TM, gItemIconPalette_PoisonTMHM, // TM06 - gItemIcon_TM, gItemIconPalette_IceTMHM, // TM07 - gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM08 - gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM09 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM10 - gItemIcon_TM, gItemIconPalette_FireTMHM, // TM11 - gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM12 - gItemIcon_TM, gItemIconPalette_IceTMHM, // TM13 - gItemIcon_TM, gItemIconPalette_IceTMHM, // TM14 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM15 - gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM16 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM17 - gItemIcon_TM, gItemIconPalette_WaterTMHM, // TM18 - gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM19 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM20 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM21 - gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM22 - gItemIcon_TM, gItemIconPalette_SteelTMHM, // TM23 - gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM24 - gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM25 - gItemIcon_TM, gItemIconPalette_GroundTMHM, // TM26 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM27 - gItemIcon_TM, gItemIconPalette_GroundTMHM, // TM28 - gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM29 - gItemIcon_TM, gItemIconPalette_GhostTMHM, // TM30 - gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM31 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM32 - gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM33 - gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM34 - gItemIcon_TM, gItemIconPalette_FireTMHM, // TM35 - gItemIcon_TM, gItemIconPalette_PoisonTMHM, // TM36 - gItemIcon_TM, gItemIconPalette_RockTMHM, // TM37 - gItemIcon_TM, gItemIconPalette_FireTMHM, // TM38 - gItemIcon_TM, gItemIconPalette_RockTMHM, // TM39 - gItemIcon_TM, gItemIconPalette_FlyingTMHM, // TM40 - gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM41 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM42 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM43 - gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM44 - gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM45 - gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM46 - gItemIcon_TM, gItemIconPalette_SteelTMHM, // TM47 - gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM48 - gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM49 - gItemIcon_TM, gItemIconPalette_FireTMHM, // TM50 - gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM01 - gItemIcon_HM, gItemIconPalette_FlyingTMHM, // HM02 - gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM03 - gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM04 - gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM05 - gItemIcon_HM, gItemIconPalette_FightingTMHM, // HM06 - gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM07 - gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM08 -// ???????? - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, - gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, -// FireRed/LeafGreen key items - gItemIcon_OaksParcel, gItemIconPalette_OaksParcel, - gItemIcon_PokeFlute, gItemIconPalette_PokeFlute, - gItemIcon_SecretKey, gItemIconPalette_SecretKey, - gItemIcon_BikeVoucher, gItemIconPalette_BikeVoucher, - gItemIcon_GoldTeeth, gItemIconPalette_GoldTeeth, - gItemIcon_OldAmber, gItemIconPalette_OldAmber, - gItemIcon_CardKey, gItemIconPalette_CardKey, - gItemIcon_LiftKey, gItemIconPalette_Key, - gItemIcon_HelixFossil, gItemIconPalette_KantoFossil, - gItemIcon_DomeFossil, gItemIconPalette_KantoFossil, - gItemIcon_SilphScope, gItemIconPalette_SilphScope, - gItemIcon_Bicycle, gItemIconPalette_Bicycle, - gItemIcon_TownMap, gItemIconPalette_TownMap, - gItemIcon_VSSeeker, gItemIconPalette_VSSeeker, - gItemIcon_FameChecker, gItemIconPalette_FameChecker, - gItemIcon_TMCase, gItemIconPalette_TMCase, - gItemIcon_BerryPouch, gItemIconPalette_BerryPouch, - gItemIcon_TeachyTV, gItemIconPalette_TeachyTV, - gItemIcon_TriPass, gItemIconPalette_TriPass, - gItemIcon_RainbowPass, gItemIconPalette_RainbowPass, - gItemIcon_Tea, gItemIconPalette_Tea, - gItemIcon_MysticTicket, gItemIconPalette_MysticTicket, - gItemIcon_AuroraTicket, gItemIconPalette_AuroraTicket, - gItemIcon_PowderJar, gItemIconPalette_PowderJar, - gItemIcon_Gem, gItemIconPalette_Ruby, - gItemIcon_Gem, gItemIconPalette_Sapphire, -// Emerald-only key items - gItemIcon_MagmaEmblem, gItemIconPalette_MagmaEmblem, - gItemIcon_OldSeaMap, gItemIconPalette_OldSeaMap, -// Return to field arrow - gItemIcon_ReturnToFieldArrow, gItemIconPalette_ReturnToFieldArrow, + [ITEM_NONE] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Pokeballs + [ITEM_MASTER_BALL] = {gItemIcon_MasterBall, gItemIconPalette_MasterBall}, + [ITEM_ULTRA_BALL] = {gItemIcon_UltraBall, gItemIconPalette_UltraBall}, + [ITEM_GREAT_BALL] = {gItemIcon_GreatBall, gItemIconPalette_GreatBall}, + [ITEM_POKE_BALL] = {gItemIcon_PokeBall, gItemIconPalette_PokeBall}, + [ITEM_SAFARI_BALL] = {gItemIcon_SafariBall, gItemIconPalette_SafariBall}, + [ITEM_NET_BALL] = {gItemIcon_NetBall, gItemIconPalette_NetBall}, + [ITEM_DIVE_BALL] = {gItemIcon_DiveBall, gItemIconPalette_DiveBall}, + [ITEM_NEST_BALL] = {gItemIcon_NestBall, gItemIconPalette_NestBall}, + [ITEM_REPEAT_BALL] = {gItemIcon_RepeatBall, gItemIconPalette_RepeatBall}, + [ITEM_TIMER_BALL] = {gItemIcon_TimerBall, gItemIconPalette_RepeatBall}, + [ITEM_LUXURY_BALL] = {gItemIcon_LuxuryBall, gItemIconPalette_LuxuryBall}, + [ITEM_PREMIER_BALL] = {gItemIcon_PremierBall, gItemIconPalette_LuxuryBall}, + // Medicine + [ITEM_POTION] = {gItemIcon_Potion, gItemIconPalette_Potion}, + [ITEM_ANTIDOTE] = {gItemIcon_Antidote, gItemIconPalette_Antidote}, + [ITEM_BURN_HEAL] = {gItemIcon_StatusHeal, gItemIconPalette_BurnHeal}, + [ITEM_ICE_HEAL] = {gItemIcon_StatusHeal, gItemIconPalette_IceHeal}, + [ITEM_AWAKENING] = {gItemIcon_StatusHeal, gItemIconPalette_Awakening}, + [ITEM_PARALYZE_HEAL] = {gItemIcon_StatusHeal, gItemIconPalette_ParalyzeHeal}, + [ITEM_FULL_RESTORE] = {gItemIcon_LargePotion, gItemIconPalette_FullRestore}, + [ITEM_MAX_POTION] = {gItemIcon_LargePotion, gItemIconPalette_MaxPotion}, + [ITEM_HYPER_POTION] = {gItemIcon_Potion, gItemIconPalette_HyperPotion}, + [ITEM_SUPER_POTION] = {gItemIcon_Potion, gItemIconPalette_SuperPotion}, + [ITEM_FULL_HEAL] = {gItemIcon_FullHeal, gItemIconPalette_FullHeal}, + [ITEM_REVIVE] = {gItemIcon_Revive, gItemIconPalette_Revive}, + [ITEM_MAX_REVIVE] = {gItemIcon_MaxRevive, gItemIconPalette_Revive}, + [ITEM_FRESH_WATER] = {gItemIcon_FreshWater, gItemIconPalette_FreshWater}, + [ITEM_SODA_POP] = {gItemIcon_SodaPop, gItemIconPalette_SodaPop}, + [ITEM_LEMONADE] = {gItemIcon_Lemonade, gItemIconPalette_Lemonade}, + [ITEM_MOOMOO_MILK] = {gItemIcon_MoomooMilk, gItemIconPalette_MoomooMilk}, + [ITEM_ENERGY_POWDER] = {gItemIcon_Powder, gItemIconPalette_EnergyPowder}, + [ITEM_ENERGY_ROOT] = {gItemIcon_EnergyRoot, gItemIconPalette_EnergyRoot}, + [ITEM_HEAL_POWDER] = {gItemIcon_Powder, gItemIconPalette_HealPowder}, + [ITEM_REVIVAL_HERB] = {gItemIcon_RevivalHerb, gItemIconPalette_RevivalHerb}, + [ITEM_ETHER] = {gItemIcon_Ether, gItemIconPalette_Ether}, + [ITEM_MAX_ETHER] = {gItemIcon_Ether, gItemIconPalette_MaxEther}, + [ITEM_ELIXIR] = {gItemIcon_Ether, gItemIconPalette_Elixir}, + [ITEM_MAX_ELIXIR] = {gItemIcon_Ether, gItemIconPalette_MaxElixir}, + [ITEM_LAVA_COOKIE] = {gItemIcon_LavaCookie, gItemIconPalette_LavaCookieAndLetter}, + [ITEM_BLUE_FLUTE] = {gItemIcon_Flute, gItemIconPalette_BlueFlute}, + [ITEM_YELLOW_FLUTE] = {gItemIcon_Flute, gItemIconPalette_YellowFlute}, + [ITEM_RED_FLUTE] = {gItemIcon_Flute, gItemIconPalette_RedFlute}, + [ITEM_BLACK_FLUTE] = {gItemIcon_Flute, gItemIconPalette_BlackFlute}, + [ITEM_WHITE_FLUTE] = {gItemIcon_Flute, gItemIconPalette_WhiteFlute}, + [ITEM_BERRY_JUICE] = {gItemIcon_BerryJuice, gItemIconPalette_BerryJuice}, + [ITEM_SACRED_ASH] = {gItemIcon_SacredAsh, gItemIconPalette_SacredAsh}, + // Collectibles + [ITEM_SHOAL_SALT] = {gItemIcon_Powder, gItemIconPalette_ShoalSalt}, + [ITEM_SHOAL_SHELL] = {gItemIcon_ShoalShell, gItemIconPalette_Shell}, + [ITEM_RED_SHARD] = {gItemIcon_Shard, gItemIconPalette_RedShard}, + [ITEM_BLUE_SHARD] = {gItemIcon_Shard, gItemIconPalette_BlueShard}, + [ITEM_YELLOW_SHARD] = {gItemIcon_Shard, gItemIconPalette_YellowShard}, + [ITEM_GREEN_SHARD] = {gItemIcon_Shard, gItemIconPalette_GreenShard}, + // ???????? + [ITEM_034] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_035] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_036] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_037] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_038] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_039] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_03A] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_03B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_03C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_03D] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_03E] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Vitamins + [ITEM_HP_UP] = {gItemIcon_HPUp, gItemIconPalette_HPUp}, + [ITEM_PROTEIN] = {gItemIcon_Vitamin, gItemIconPalette_Protein}, + [ITEM_IRON] = {gItemIcon_Vitamin, gItemIconPalette_Iron}, + [ITEM_CARBOS] = {gItemIcon_Vitamin, gItemIconPalette_Carbos}, + [ITEM_CALCIUM] = {gItemIcon_Vitamin, gItemIconPalette_Calcium}, + [ITEM_RARE_CANDY] = {gItemIcon_RareCandy, gItemIconPalette_RareCandy}, + [ITEM_PP_UP] = {gItemIcon_PPUp, gItemIconPalette_PPUp}, + [ITEM_ZINC] = {gItemIcon_Vitamin, gItemIconPalette_Zinc}, + [ITEM_PP_MAX] = {gItemIcon_PPMax, gItemIconPalette_PPMax}, + // ???????? + [ITEM_048] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Battle items + [ITEM_GUARD_SPEC] = {gItemIcon_BattleStatItem, gItemIconPalette_GuardSpec}, + [ITEM_DIRE_HIT] = {gItemIcon_BattleStatItem, gItemIconPalette_DireHit}, + [ITEM_X_ATTACK] = {gItemIcon_BattleStatItem, gItemIconPalette_XAttack}, + [ITEM_X_DEFEND] = {gItemIcon_BattleStatItem, gItemIconPalette_XDefend}, + [ITEM_X_SPEED] = {gItemIcon_BattleStatItem, gItemIconPalette_XSpeed}, + [ITEM_X_ACCURACY] = {gItemIcon_BattleStatItem, gItemIconPalette_XAccuracy}, + [ITEM_X_SPECIAL] = {gItemIcon_BattleStatItem, gItemIconPalette_XSpecial}, + [ITEM_POKE_DOLL] = {gItemIcon_PokeDoll, gItemIconPalette_PokeDoll}, + [ITEM_FLUFFY_TAIL] = {gItemIcon_FluffyTail, gItemIconPalette_FluffyTail}, + // ???????? + [ITEM_052] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Field items + [ITEM_SUPER_REPEL] = {gItemIcon_Repel, gItemIconPalette_SuperRepel}, + [ITEM_MAX_REPEL] = {gItemIcon_Repel, gItemIconPalette_MaxRepel}, + [ITEM_ESCAPE_ROPE] = {gItemIcon_EscapeRope, gItemIconPalette_EscapeRope}, + [ITEM_REPEL] = {gItemIcon_Repel, gItemIconPalette_Repel}, + // ???????? + [ITEM_057] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_058] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_059] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_05A] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_05B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_05C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Evolution stones + [ITEM_SUN_STONE] = {gItemIcon_SunStone, gItemIconPalette_SunStone}, + [ITEM_MOON_STONE] = {gItemIcon_MoonStone, gItemIconPalette_MoonStone}, + [ITEM_FIRE_STONE] = {gItemIcon_FireStone, gItemIconPalette_FireStone}, + [ITEM_THUNDER_STONE] = {gItemIcon_ThunderStone, gItemIconPalette_ThunderStone}, + [ITEM_WATER_STONE] = {gItemIcon_WaterStone, gItemIconPalette_WaterStone}, + [ITEM_LEAF_STONE] = {gItemIcon_LeafStone, gItemIconPalette_LeafStone}, + // ???????? + [ITEM_063] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_064] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_065] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_066] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Valuables + [ITEM_TINY_MUSHROOM] = {gItemIcon_TinyMushroom, gItemIconPalette_Mushroom}, + [ITEM_BIG_MUSHROOM] = {gItemIcon_BigMushroom, gItemIconPalette_Mushroom}, + [ITEM_069] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_PEARL] = {gItemIcon_Pearl, gItemIconPalette_Pearl}, + [ITEM_BIG_PEARL] = {gItemIcon_BigPearl, gItemIconPalette_Pearl}, + [ITEM_STARDUST] = {gItemIcon_Stardust, gItemIconPalette_Star}, + [ITEM_STAR_PIECE] = {gItemIcon_StarPiece, gItemIconPalette_Star}, + [ITEM_NUGGET] = {gItemIcon_Nugget, gItemIconPalette_Nugget}, + [ITEM_HEART_SCALE] = {gItemIcon_HeartScale, gItemIconPalette_HeartScale}, + // ???????? + [ITEM_070] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_071] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_072] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_073] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_074] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_075] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_076] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_077] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_078] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Mail + [ITEM_ORANGE_MAIL] = {gItemIcon_OrangeMail, gItemIconPalette_OrangeMail}, + [ITEM_HARBOR_MAIL] = {gItemIcon_HarborMail, gItemIconPalette_HarborMail}, + [ITEM_GLITTER_MAIL] = {gItemIcon_GlitterMail, gItemIconPalette_GlitterMail}, + [ITEM_MECH_MAIL] = {gItemIcon_MechMail, gItemIconPalette_MechMail}, + [ITEM_WOOD_MAIL] = {gItemIcon_WoodMail, gItemIconPalette_WoodMail}, + [ITEM_WAVE_MAIL] = {gItemIcon_WaveMail, gItemIconPalette_WaveMail}, + [ITEM_BEAD_MAIL] = {gItemIcon_BeadMail, gItemIconPalette_BeadMail}, + [ITEM_SHADOW_MAIL] = {gItemIcon_ShadowMail, gItemIconPalette_ShadowMail}, + [ITEM_TROPIC_MAIL] = {gItemIcon_TropicMail, gItemIconPalette_TropicMail}, + [ITEM_DREAM_MAIL] = {gItemIcon_DreamMail, gItemIconPalette_DreamMail}, + [ITEM_FAB_MAIL] = {gItemIcon_FabMail, gItemIconPalette_FabMail}, + [ITEM_RETRO_MAIL] = {gItemIcon_RetroMail, gItemIconPalette_RetroMail}, + // Berries + [ITEM_CHERI_BERRY] = {gItemIcon_CheriBerry, gItemIconPalette_CheriBerry}, + [ITEM_CHESTO_BERRY] = {gItemIcon_ChestoBerry, gItemIconPalette_ChestoBerry}, + [ITEM_PECHA_BERRY] = {gItemIcon_PechaBerry, gItemIconPalette_PechaBerry}, + [ITEM_RAWST_BERRY] = {gItemIcon_RawstBerry, gItemIconPalette_RawstBerry}, + [ITEM_ASPEAR_BERRY] = {gItemIcon_AspearBerry, gItemIconPalette_AspearBerry}, + [ITEM_LEPPA_BERRY] = {gItemIcon_LeppaBerry, gItemIconPalette_LeppaBerry}, + [ITEM_ORAN_BERRY] = {gItemIcon_OranBerry, gItemIconPalette_OranBerry}, + [ITEM_PERSIM_BERRY] = {gItemIcon_PersimBerry, gItemIconPalette_PersimBerry}, + [ITEM_LUM_BERRY] = {gItemIcon_LumBerry, gItemIconPalette_LumBerry}, + [ITEM_SITRUS_BERRY] = {gItemIcon_SitrusBerry, gItemIconPalette_SitrusBerry}, + [ITEM_FIGY_BERRY] = {gItemIcon_FigyBerry, gItemIconPalette_FigyBerry}, + [ITEM_WIKI_BERRY] = {gItemIcon_WikiBerry, gItemIconPalette_WikiBerry}, + [ITEM_MAGO_BERRY] = {gItemIcon_MagoBerry, gItemIconPalette_MagoBerry}, + [ITEM_AGUAV_BERRY] = {gItemIcon_AguavBerry, gItemIconPalette_AguavBerry}, + [ITEM_IAPAPA_BERRY] = {gItemIcon_IapapaBerry, gItemIconPalette_IapapaBerry}, + [ITEM_RAZZ_BERRY] = {gItemIcon_RazzBerry, gItemIconPalette_RazzBerry}, + [ITEM_BLUK_BERRY] = {gItemIcon_BlukBerry, gItemIconPalette_BlukBerry}, + [ITEM_NANAB_BERRY] = {gItemIcon_NanabBerry, gItemIconPalette_NanabBerry}, + [ITEM_WEPEAR_BERRY] = {gItemIcon_WepearBerry, gItemIconPalette_WepearBerry}, + [ITEM_PINAP_BERRY] = {gItemIcon_PinapBerry, gItemIconPalette_PinapBerry}, + [ITEM_POMEG_BERRY] = {gItemIcon_PomegBerry, gItemIconPalette_PomegBerry}, + [ITEM_KELPSY_BERRY] = {gItemIcon_KelpsyBerry, gItemIconPalette_KelpsyBerry}, + [ITEM_QUALOT_BERRY] = {gItemIcon_QualotBerry, gItemIconPalette_QualotBerry}, + [ITEM_HONDEW_BERRY] = {gItemIcon_HondewBerry, gItemIconPalette_HondewBerry}, + [ITEM_GREPA_BERRY] = {gItemIcon_GrepaBerry, gItemIconPalette_GrepaBerry}, + [ITEM_TAMATO_BERRY] = {gItemIcon_TamatoBerry, gItemIconPalette_TamatoBerry}, + [ITEM_CORNN_BERRY] = {gItemIcon_CornnBerry, gItemIconPalette_CornnBerry}, + [ITEM_MAGOST_BERRY] = {gItemIcon_MagostBerry, gItemIconPalette_MagostBerry}, + [ITEM_RABUTA_BERRY] = {gItemIcon_RabutaBerry, gItemIconPalette_RabutaBerry}, + [ITEM_NOMEL_BERRY] = {gItemIcon_NomelBerry, gItemIconPalette_NomelBerry}, + [ITEM_SPELON_BERRY] = {gItemIcon_SpelonBerry, gItemIconPalette_SpelonBerry}, + [ITEM_PAMTRE_BERRY] = {gItemIcon_PamtreBerry, gItemIconPalette_PamtreBerry}, + [ITEM_WATMEL_BERRY] = {gItemIcon_WatmelBerry, gItemIconPalette_WatmelBerry}, + [ITEM_DURIN_BERRY] = {gItemIcon_DurinBerry, gItemIconPalette_DurinBerry}, + [ITEM_BELUE_BERRY] = {gItemIcon_BelueBerry, gItemIconPalette_BelueBerry}, + [ITEM_LIECHI_BERRY] = {gItemIcon_LiechiBerry, gItemIconPalette_LiechiBerry}, + [ITEM_GANLON_BERRY] = {gItemIcon_GanlonBerry, gItemIconPalette_GanlonBerry}, + [ITEM_SALAC_BERRY] = {gItemIcon_SalacBerry, gItemIconPalette_SalacBerry}, + [ITEM_PETAYA_BERRY] = {gItemIcon_PetayaBerry, gItemIconPalette_PetayaBerry}, + [ITEM_APICOT_BERRY] = {gItemIcon_ApicotBerry, gItemIconPalette_ApicotBerry}, + [ITEM_LANSAT_BERRY] = {gItemIcon_LansatBerry, gItemIconPalette_LansatBerry}, + [ITEM_STARF_BERRY] = {gItemIcon_StarfBerry, gItemIconPalette_StarfBerry}, + [ITEM_ENIGMA_BERRY] = {gItemIcon_EnigmaBerry, gItemIconPalette_EnigmaBerry}, + // ???????? + [ITEM_0B0] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0B1] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0B2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Hold items + [ITEM_BRIGHT_POWDER] = {gItemIcon_BrightPowder, gItemIconPalette_BrightPowder}, + [ITEM_WHITE_HERB] = {gItemIcon_InBattleHerb, gItemIconPalette_WhiteHerb}, + [ITEM_MACHO_BRACE] = {gItemIcon_MachoBrace, gItemIconPalette_MachoBrace}, + [ITEM_EXP_SHARE] = {gItemIcon_ExpShare, gItemIconPalette_ExpShare}, + [ITEM_QUICK_CLAW] = {gItemIcon_QuickClaw, gItemIconPalette_QuickClaw}, + [ITEM_SOOTHE_BELL] = {gItemIcon_SootheBell, gItemIconPalette_SootheBell}, + [ITEM_MENTAL_HERB] = {gItemIcon_InBattleHerb, gItemIconPalette_MentalHerb}, + [ITEM_CHOICE_BAND] = {gItemIcon_ChoiceBand, gItemIconPalette_ChoiceBand}, + [ITEM_KINGS_ROCK] = {gItemIcon_KingsRock, gItemIconPalette_KingsRock}, + [ITEM_SILVER_POWDER] = {gItemIcon_SilverPowder, gItemIconPalette_SilverPowder}, + [ITEM_AMULET_COIN] = {gItemIcon_AmuletCoin, gItemIconPalette_AmuletCoin}, + [ITEM_CLEANSE_TAG] = {gItemIcon_CleanseTag, gItemIconPalette_CleanseTag}, + [ITEM_SOUL_DEW] = {gItemIcon_SoulDew, gItemIconPalette_SoulDew}, + [ITEM_DEEP_SEA_TOOTH] = {gItemIcon_DeepSeaTooth, gItemIconPalette_DeepSeaTooth}, + [ITEM_DEEP_SEA_SCALE] = {gItemIcon_DeepSeaScale, gItemIconPalette_DeepSeaScale}, + [ITEM_SMOKE_BALL] = {gItemIcon_SmokeBall, gItemIconPalette_SmokeBall}, + [ITEM_EVERSTONE] = {gItemIcon_Everstone, gItemIconPalette_Everstone}, + [ITEM_FOCUS_BAND] = {gItemIcon_FocusBand, gItemIconPalette_FocusBand}, + [ITEM_LUCKY_EGG] = {gItemIcon_LuckyEgg, gItemIconPalette_LuckyEgg}, + [ITEM_SCOPE_LENS] = {gItemIcon_ScopeLens, gItemIconPalette_ScopeLens}, + [ITEM_METAL_COAT] = {gItemIcon_MetalCoat, gItemIconPalette_MetalCoat}, + [ITEM_LEFTOVERS] = {gItemIcon_Leftovers, gItemIconPalette_Leftovers}, + [ITEM_DRAGON_SCALE] = {gItemIcon_DragonScale, gItemIconPalette_DragonScale}, + [ITEM_LIGHT_BALL] = {gItemIcon_LightBall, gItemIconPalette_LightBall}, + [ITEM_SOFT_SAND] = {gItemIcon_SoftSand, gItemIconPalette_SoftSand}, + [ITEM_HARD_STONE] = {gItemIcon_HardStone, gItemIconPalette_HardStone}, + [ITEM_MIRACLE_SEED] = {gItemIcon_MiracleSeed, gItemIconPalette_MiracleSeed}, + [ITEM_BLACK_GLASSES] = {gItemIcon_BlackGlasses, gItemIconPalette_BlackTypeEnhancingItem}, + [ITEM_BLACK_BELT] = {gItemIcon_BlackBelt, gItemIconPalette_BlackTypeEnhancingItem}, + [ITEM_MAGNET] = {gItemIcon_Magnet, gItemIconPalette_Magnet}, + [ITEM_MYSTIC_WATER] = {gItemIcon_MysticWater, gItemIconPalette_MysticWater}, + [ITEM_SHARP_BEAK] = {gItemIcon_SharpBeak, gItemIconPalette_SharpBeak}, + [ITEM_POISON_BARB] = {gItemIcon_PoisonBarb, gItemIconPalette_PoisonBarb}, + [ITEM_NEVER_MELT_ICE] = {gItemIcon_NeverMeltIce, gItemIconPalette_NeverMeltIce}, + [ITEM_SPELL_TAG] = {gItemIcon_SpellTag, gItemIconPalette_SpellTag}, + [ITEM_TWISTED_SPOON] = {gItemIcon_TwistedSpoon, gItemIconPalette_TwistedSpoon}, + [ITEM_CHARCOAL] = {gItemIcon_Charcoal, gItemIconPalette_Charcoal}, + [ITEM_DRAGON_FANG] = {gItemIcon_DragonFang, gItemIconPalette_DragonFang}, + [ITEM_SILK_SCARF] = {gItemIcon_SilkScarf, gItemIconPalette_SilkScarf}, + [ITEM_UP_GRADE] = {gItemIcon_UpGrade, gItemIconPalette_UpGrade}, + [ITEM_SHELL_BELL] = {gItemIcon_ShellBell, gItemIconPalette_Shell}, + [ITEM_SEA_INCENSE] = {gItemIcon_SeaIncense, gItemIconPalette_SeaIncense}, + [ITEM_LAX_INCENSE] = {gItemIcon_LaxIncense, gItemIconPalette_LaxIncense}, + [ITEM_LUCKY_PUNCH] = {gItemIcon_LuckyPunch, gItemIconPalette_LuckyPunch}, + [ITEM_METAL_POWDER] = {gItemIcon_MetalPowder, gItemIconPalette_MetalPowder}, + [ITEM_THICK_CLUB] = {gItemIcon_ThickClub, gItemIconPalette_ThickClub}, + [ITEM_STICK] = {gItemIcon_Stick, gItemIconPalette_Stick}, + // ???????? + [ITEM_0E2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0E3] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0E4] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0E5] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0E6] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0E7] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0E8] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0E9] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0EA] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0EB] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0EC] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0ED] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0EE] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0EF] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F0] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F1] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F3] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F4] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F5] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F6] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F7] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F8] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0F9] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0FA] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0FB] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0FC] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_0FD] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // Contest hold items + [ITEM_RED_SCARF] = {gItemIcon_Scarf, gItemIconPalette_RedScarf}, + [ITEM_BLUE_SCARF] = {gItemIcon_Scarf, gItemIconPalette_BlueScarf}, + [ITEM_PINK_SCARF] = {gItemIcon_Scarf, gItemIconPalette_PinkScarf}, + [ITEM_GREEN_SCARF] = {gItemIcon_Scarf, gItemIconPalette_GreenScarf}, + [ITEM_YELLOW_SCARF] = {gItemIcon_Scarf, gItemIconPalette_YellowScarf}, + // Key items + [ITEM_MACH_BIKE] = {gItemIcon_MachBike, gItemIconPalette_MachBike}, + [ITEM_COIN_CASE] = {gItemIcon_CoinCase, gItemIconPalette_CoinCase}, + [ITEM_ITEMFINDER] = {gItemIcon_Itemfinder, gItemIconPalette_Itemfinder}, + [ITEM_OLD_ROD] = {gItemIcon_OldRod, gItemIconPalette_OldRod}, + [ITEM_GOOD_ROD] = {gItemIcon_GoodRod, gItemIconPalette_GoodRod}, + [ITEM_SUPER_ROD] = {gItemIcon_SuperRod, gItemIconPalette_SuperRod}, + [ITEM_SS_TICKET] = {gItemIcon_SSTicket, gItemIconPalette_SSTicket}, + [ITEM_CONTEST_PASS] = {gItemIcon_ContestPass, gItemIconPalette_ContestPass}, + [ITEM_10B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_WAILMER_PAIL] = {gItemIcon_WailmerPail, gItemIconPalette_WailmerPail}, + [ITEM_DEVON_GOODS] = {gItemIcon_DevonGoods, gItemIconPalette_DevonGoods}, + [ITEM_SOOT_SACK] = {gItemIcon_SootSack, gItemIconPalette_SootSack}, + [ITEM_BASEMENT_KEY] = {gItemIcon_BasementKey, gItemIconPalette_OldKey}, + [ITEM_ACRO_BIKE] = {gItemIcon_AcroBike, gItemIconPalette_AcroBike}, + [ITEM_POKEBLOCK_CASE] = {gItemIcon_PokeblockCase, gItemIconPalette_PokeblockCase}, + [ITEM_LETTER] = {gItemIcon_Letter, gItemIconPalette_LavaCookieAndLetter}, + [ITEM_EON_TICKET] = {gItemIcon_EonTicket, gItemIconPalette_EonTicket}, + [ITEM_RED_ORB] = {gItemIcon_Orb, gItemIconPalette_RedOrb}, + [ITEM_BLUE_ORB] = {gItemIcon_Orb, gItemIconPalette_BlueOrb}, + [ITEM_SCANNER] = {gItemIcon_Scanner, gItemIconPalette_Scanner}, + [ITEM_GO_GOGGLES] = {gItemIcon_GoGoggles, gItemIconPalette_GoGoggles}, + [ITEM_METEORITE] = {gItemIcon_Meteorite, gItemIconPalette_Meteorite}, + [ITEM_ROOM_1_KEY] = {gItemIcon_Room1Key, gItemIconPalette_Key}, + [ITEM_ROOM_2_KEY] = {gItemIcon_Room2Key, gItemIconPalette_Key}, + [ITEM_ROOM_4_KEY] = {gItemIcon_Room4Key, gItemIconPalette_Key}, + [ITEM_ROOM_6_KEY] = {gItemIcon_Room6Key, gItemIconPalette_Key}, + [ITEM_STORAGE_KEY] = {gItemIcon_StorageKey, gItemIconPalette_OldKey}, + [ITEM_ROOT_FOSSIL] = {gItemIcon_RootFossil, gItemIconPalette_HoennFossil}, + [ITEM_CLAW_FOSSIL] = {gItemIcon_ClawFossil, gItemIconPalette_HoennFossil}, + [ITEM_DEVON_SCOPE] = {gItemIcon_DevonScope, gItemIconPalette_DevonScope}, + // TMs / HMs + [ITEM_TM01] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, + [ITEM_TM02] = {gItemIcon_TM, gItemIconPalette_DragonTMHM}, + [ITEM_TM03] = {gItemIcon_TM, gItemIconPalette_WaterTMHM}, + [ITEM_TM04] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, + [ITEM_TM05] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM06] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM}, + [ITEM_TM07] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, + [ITEM_TM08] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, + [ITEM_TM09] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, + [ITEM_TM10] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM11] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, + [ITEM_TM12] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, + [ITEM_TM13] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, + [ITEM_TM14] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, + [ITEM_TM15] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM16] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, + [ITEM_TM17] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM18] = {gItemIcon_TM, gItemIconPalette_WaterTMHM}, + [ITEM_TM19] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, + [ITEM_TM20] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM21] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM22] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, + [ITEM_TM23] = {gItemIcon_TM, gItemIconPalette_SteelTMHM}, + [ITEM_TM24] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, + [ITEM_TM25] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, + [ITEM_TM26] = {gItemIcon_TM, gItemIconPalette_GroundTMHM}, + [ITEM_TM27] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM28] = {gItemIcon_TM, gItemIconPalette_GroundTMHM}, + [ITEM_TM29] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, + [ITEM_TM30] = {gItemIcon_TM, gItemIconPalette_GhostTMHM}, + [ITEM_TM31] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, + [ITEM_TM32] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM33] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, + [ITEM_TM34] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, + [ITEM_TM35] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, + [ITEM_TM36] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM}, + [ITEM_TM37] = {gItemIcon_TM, gItemIconPalette_RockTMHM}, + [ITEM_TM38] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, + [ITEM_TM39] = {gItemIcon_TM, gItemIconPalette_RockTMHM}, + [ITEM_TM40] = {gItemIcon_TM, gItemIconPalette_FlyingTMHM}, + [ITEM_TM41] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, + [ITEM_TM42] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM43] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM44] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, + [ITEM_TM45] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, + [ITEM_TM46] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, + [ITEM_TM47] = {gItemIcon_TM, gItemIconPalette_SteelTMHM}, + [ITEM_TM48] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, + [ITEM_TM49] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, + [ITEM_TM50] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, + [ITEM_HM01] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, + [ITEM_HM02] = {gItemIcon_HM, gItemIconPalette_FlyingTMHM}, + [ITEM_HM03] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, + [ITEM_HM04] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, + [ITEM_HM05] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, + [ITEM_HM06] = {gItemIcon_HM, gItemIconPalette_FightingTMHM}, + [ITEM_HM07] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, + [ITEM_HM08] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, + // ???????? + [ITEM_15B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + [ITEM_15C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + // FireRed/LeafGreen key items + [ITEM_OAKS_PARCEL] = {gItemIcon_OaksParcel, gItemIconPalette_OaksParcel}, + [ITEM_POKE_FLUTE] = {gItemIcon_PokeFlute, gItemIconPalette_PokeFlute}, + [ITEM_SECRET_KEY] = {gItemIcon_SecretKey, gItemIconPalette_SecretKey}, + [ITEM_BIKE_VOUCHER] = {gItemIcon_BikeVoucher, gItemIconPalette_BikeVoucher}, + [ITEM_GOLD_TEETH] = {gItemIcon_GoldTeeth, gItemIconPalette_GoldTeeth}, + [ITEM_OLD_AMBER] = {gItemIcon_OldAmber, gItemIconPalette_OldAmber}, + [ITEM_CARD_KEY] = {gItemIcon_CardKey, gItemIconPalette_CardKey}, + [ITEM_LIFT_KEY] = {gItemIcon_LiftKey, gItemIconPalette_Key}, + [ITEM_HELIX_FOSSIL] = {gItemIcon_HelixFossil, gItemIconPalette_KantoFossil}, + [ITEM_DOME_FOSSIL] = {gItemIcon_DomeFossil, gItemIconPalette_KantoFossil}, + [ITEM_SILPH_SCOPE] = {gItemIcon_SilphScope, gItemIconPalette_SilphScope}, + [ITEM_BICYCLE] = {gItemIcon_Bicycle, gItemIconPalette_Bicycle}, + [ITEM_TOWN_MAP] = {gItemIcon_TownMap, gItemIconPalette_TownMap}, + [ITEM_VS_SEEKER] = {gItemIcon_VSSeeker, gItemIconPalette_VSSeeker}, + [ITEM_FAME_CHECKER] = {gItemIcon_FameChecker, gItemIconPalette_FameChecker}, + [ITEM_TM_CASE] = {gItemIcon_TMCase, gItemIconPalette_TMCase}, + [ITEM_BERRY_POUCH] = {gItemIcon_BerryPouch, gItemIconPalette_BerryPouch}, + [ITEM_TEACHY_TV] = {gItemIcon_TeachyTV, gItemIconPalette_TeachyTV}, + [ITEM_TRI_PASS] = {gItemIcon_TriPass, gItemIconPalette_TriPass}, + [ITEM_RAINBOW_PASS] = {gItemIcon_RainbowPass, gItemIconPalette_RainbowPass}, + [ITEM_TEA] = {gItemIcon_Tea, gItemIconPalette_Tea}, + [ITEM_MYSTIC_TICKET] = {gItemIcon_MysticTicket, gItemIconPalette_MysticTicket}, + [ITEM_AURORA_TICKET] = {gItemIcon_AuroraTicket, gItemIconPalette_AuroraTicket}, + [ITEM_POWDER_JAR] = {gItemIcon_PowderJar, gItemIconPalette_PowderJar}, + [ITEM_RUBY] = {gItemIcon_Gem, gItemIconPalette_Ruby}, + [ITEM_SAPPHIRE] = {gItemIcon_Gem, gItemIconPalette_Sapphire}, + // Emerald-only key items + [ITEM_MAGMA_EMBLEM] = {gItemIcon_MagmaEmblem, gItemIconPalette_MagmaEmblem}, + [ITEM_OLD_SEA_MAP] = {gItemIcon_OldSeaMap, gItemIconPalette_OldSeaMap}, + // Return to field arrow + [ITEM_FIELD_ARROW] = {gItemIcon_ReturnToFieldArrow, gItemIconPalette_ReturnToFieldArrow}, }; -#endif // GUARD_DATA_ITEM_ICON_TABLE_H diff --git a/src/data/items.h b/src/data/items.h index 49f981faf..7d7caa289 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -1,5 +1,6 @@ const struct Item gItems[] = { + [ITEM_NONE] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -17,8 +18,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Pokeballs +// Pokeballs + [ITEM_MASTER_BALL] = { .name = _("MASTER BALL"), .itemId = ITEM_MASTER_BALL, @@ -35,6 +37,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 0, }, + + [ITEM_ULTRA_BALL] = { .name = _("ULTRA BALL"), .itemId = ITEM_ULTRA_BALL, @@ -51,6 +55,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 1, }, + + [ITEM_GREAT_BALL] = { .name = _("GREAT BALL"), .itemId = ITEM_GREAT_BALL, @@ -67,6 +73,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 2, }, + + [ITEM_POKE_BALL] = { .name = _("POKé BALL"), .itemId = ITEM_POKE_BALL, @@ -83,6 +91,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 3, }, + + [ITEM_SAFARI_BALL] = { .name = _("SAFARI BALL"), .itemId = ITEM_SAFARI_BALL, @@ -99,6 +109,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 4, }, + + [ITEM_NET_BALL] = { .name = _("NET BALL"), .itemId = ITEM_NET_BALL, @@ -115,6 +127,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 5, }, + + [ITEM_DIVE_BALL] = { .name = _("DIVE BALL"), .itemId = ITEM_DIVE_BALL, @@ -131,6 +145,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 6, }, + + [ITEM_NEST_BALL] = { .name = _("NEST BALL"), .itemId = ITEM_NEST_BALL, @@ -147,6 +163,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 7, }, + + [ITEM_REPEAT_BALL] = { .name = _("REPEAT BALL"), .itemId = ITEM_REPEAT_BALL, @@ -163,6 +181,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 8, }, + + [ITEM_TIMER_BALL] = { .name = _("TIMER BALL"), .itemId = ITEM_TIMER_BALL, @@ -179,6 +199,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 9, }, + + [ITEM_LUXURY_BALL] = { .name = _("LUXURY BALL"), .itemId = ITEM_LUXURY_BALL, @@ -195,6 +217,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PokeBall, .secondaryId = 10, }, + + [ITEM_PREMIER_BALL] = { .name = _("PREMIER BALL"), .itemId = ITEM_PREMIER_BALL, @@ -212,8 +236,9 @@ const struct Item gItems[] = .secondaryId = 11, }, -//Medicine +// Medicine + [ITEM_POTION] = { .name = _("POTION"), .itemId = ITEM_POTION, @@ -230,6 +255,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_ANTIDOTE] = { .name = _("ANTIDOTE"), .itemId = ITEM_ANTIDOTE, @@ -246,6 +273,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_BURN_HEAL] = { .name = _("BURN HEAL"), .itemId = ITEM_BURN_HEAL, @@ -262,6 +291,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_ICE_HEAL] = { .name = _("ICE HEAL"), .itemId = ITEM_ICE_HEAL, @@ -278,6 +309,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_AWAKENING] = { .name = _("AWAKENING"), .itemId = ITEM_AWAKENING, @@ -294,6 +327,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_PARALYZE_HEAL] = { .name = _("PARLYZ HEAL"), .itemId = ITEM_PARALYZE_HEAL, @@ -310,6 +345,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_FULL_RESTORE] = { .name = _("FULL RESTORE"), .itemId = ITEM_FULL_RESTORE, @@ -326,6 +363,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_MAX_POTION] = { .name = _("MAX POTION"), .itemId = ITEM_MAX_POTION, @@ -342,6 +381,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_HYPER_POTION] = { .name = _("HYPER POTION"), .itemId = ITEM_HYPER_POTION, @@ -358,6 +399,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_SUPER_POTION] = { .name = _("SUPER POTION"), .itemId = ITEM_SUPER_POTION, @@ -374,6 +417,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_FULL_HEAL] = { .name = _("FULL HEAL"), .itemId = ITEM_FULL_HEAL, @@ -390,6 +435,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_REVIVE] = { .name = _("REVIVE"), .itemId = ITEM_REVIVE, @@ -406,6 +453,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_MAX_REVIVE] = { .name = _("MAX REVIVE"), .itemId = ITEM_MAX_REVIVE, @@ -422,6 +471,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_FRESH_WATER] = { .name = _("FRESH WATER"), .itemId = ITEM_FRESH_WATER, @@ -438,6 +489,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_SODA_POP] = { .name = _("SODA POP"), .itemId = ITEM_SODA_POP, @@ -454,6 +507,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_LEMONADE] = { .name = _("LEMONADE"), .itemId = ITEM_LEMONADE, @@ -470,6 +525,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_MOOMOO_MILK] = { .name = _("MOOMOO MILK"), .itemId = ITEM_MOOMOO_MILK, @@ -486,6 +543,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_ENERGY_POWDER] = { .name = _("ENERGYPOWDER"), .itemId = ITEM_ENERGY_POWDER, @@ -502,6 +561,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_ENERGY_ROOT] = { .name = _("ENERGY ROOT"), .itemId = ITEM_ENERGY_ROOT, @@ -518,6 +579,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_HEAL_POWDER] = { .name = _("HEAL POWDER"), .itemId = ITEM_HEAL_POWDER, @@ -534,6 +597,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_REVIVAL_HERB] = { .name = _("REVIVAL HERB"), .itemId = ITEM_REVIVAL_HERB, @@ -550,6 +615,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_ETHER] = { .name = _("ETHER"), .itemId = ITEM_ETHER, @@ -566,6 +633,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PPRecovery, .secondaryId = 0, }, + + [ITEM_MAX_ETHER] = { .name = _("MAX ETHER"), .itemId = ITEM_MAX_ETHER, @@ -582,6 +651,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PPRecovery, .secondaryId = 0, }, + + [ITEM_ELIXIR] = { .name = _("ELIXIR"), .itemId = ITEM_ELIXIR, @@ -598,6 +669,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PPRecovery, .secondaryId = 0, }, + + [ITEM_MAX_ELIXIR] = { .name = _("MAX ELIXIR"), .itemId = ITEM_MAX_ELIXIR, @@ -614,6 +687,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PPRecovery, .secondaryId = 0, }, + + [ITEM_LAVA_COOKIE] = { .name = _("LAVA COOKIE"), .itemId = ITEM_LAVA_COOKIE, @@ -630,6 +705,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_BLUE_FLUTE] = { .name = _("BLUE FLUTE"), .itemId = ITEM_BLUE_FLUTE, @@ -646,6 +723,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_YELLOW_FLUTE] = { .name = _("YELLOW FLUTE"), .itemId = ITEM_YELLOW_FLUTE, @@ -662,6 +741,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_RED_FLUTE] = { .name = _("RED FLUTE"), .itemId = ITEM_RED_FLUTE, @@ -678,6 +759,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_BLACK_FLUTE] = { .name = _("BLACK FLUTE"), .itemId = ITEM_BLACK_FLUTE, @@ -694,6 +777,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_WHITE_FLUTE] = { .name = _("WHITE FLUTE"), .itemId = ITEM_WHITE_FLUTE, @@ -710,6 +795,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BERRY_JUICE] = { .name = _("BERRY JUICE"), .itemId = ITEM_BERRY_JUICE, @@ -726,6 +813,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_SACRED_ASH] = { .name = _("SACRED ASH"), .itemId = ITEM_SACRED_ASH, @@ -743,8 +832,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Collectibles +// Collectibles + [ITEM_SHOAL_SALT] = { .name = _("SHOAL SALT"), .itemId = ITEM_SHOAL_SALT, @@ -761,6 +851,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SHOAL_SHELL] = { .name = _("SHOAL SHELL"), .itemId = ITEM_SHOAL_SHELL, @@ -777,6 +869,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_RED_SHARD] = { .name = _("RED SHARD"), .itemId = ITEM_RED_SHARD, @@ -793,6 +887,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BLUE_SHARD] = { .name = _("BLUE SHARD"), .itemId = ITEM_BLUE_SHARD, @@ -809,6 +905,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_YELLOW_SHARD] = { .name = _("YELLOW SHARD"), .itemId = ITEM_YELLOW_SHARD, @@ -825,6 +923,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_GREEN_SHARD] = { .name = _("GREEN SHARD"), .itemId = ITEM_GREEN_SHARD, @@ -841,6 +941,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_034] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -857,6 +959,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_035] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -873,6 +977,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_036] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -889,6 +995,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_037] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -905,6 +1013,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_038] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -921,6 +1031,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_039] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -937,6 +1049,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_03A] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -953,6 +1067,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_03B] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -969,6 +1085,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_03C] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -985,6 +1103,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_03D] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1001,6 +1121,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_03E] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1018,8 +1140,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Vitamins +// Vitamins + [ITEM_HP_UP] = { .name = _("HP UP"), .itemId = ITEM_HP_UP, @@ -1036,6 +1159,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PROTEIN] = { .name = _("PROTEIN"), .itemId = ITEM_PROTEIN, @@ -1052,6 +1177,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_IRON] = { .name = _("IRON"), .itemId = ITEM_IRON, @@ -1068,6 +1195,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CARBOS] = { .name = _("CARBOS"), .itemId = ITEM_CARBOS, @@ -1084,6 +1213,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CALCIUM] = { .name = _("CALCIUM"), .itemId = ITEM_CALCIUM, @@ -1100,6 +1231,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_RARE_CANDY] = { .name = _("RARE CANDY"), .itemId = ITEM_RARE_CANDY, @@ -1116,6 +1249,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PP_UP] = { .name = _("PP UP"), .itemId = ITEM_PP_UP, @@ -1132,6 +1267,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ZINC] = { .name = _("ZINC"), .itemId = ITEM_ZINC, @@ -1148,6 +1285,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PP_MAX] = { .name = _("PP MAX"), .itemId = ITEM_PP_MAX, @@ -1164,6 +1303,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_048] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1181,8 +1322,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Battle items +// Battle items + [ITEM_GUARD_SPEC] = { .name = _("GUARD SPEC."), .itemId = ITEM_GUARD_SPEC, @@ -1199,6 +1341,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_StatIncrease, .secondaryId = 0, }, + + [ITEM_DIRE_HIT] = { .name = _("DIRE HIT"), .itemId = ITEM_DIRE_HIT, @@ -1215,6 +1359,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_StatIncrease, .secondaryId = 0, }, + + [ITEM_X_ATTACK] = { .name = _("X ATTACK"), .itemId = ITEM_X_ATTACK, @@ -1231,6 +1377,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_StatIncrease, .secondaryId = 0, }, + + [ITEM_X_DEFEND] = { .name = _("X DEFEND"), .itemId = ITEM_X_DEFEND, @@ -1247,6 +1395,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_StatIncrease, .secondaryId = 0, }, + + [ITEM_X_SPEED] = { .name = _("X SPEED"), .itemId = ITEM_X_SPEED, @@ -1263,6 +1413,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_StatIncrease, .secondaryId = 0, }, + + [ITEM_X_ACCURACY] = { .name = _("X ACCURACY"), .itemId = ITEM_X_ACCURACY, @@ -1279,6 +1431,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_StatIncrease, .secondaryId = 0, }, + + [ITEM_X_SPECIAL] = { .name = _("X SPECIAL"), .itemId = ITEM_X_SPECIAL, @@ -1295,6 +1449,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_StatIncrease, .secondaryId = 0, }, + + [ITEM_POKE_DOLL] = { .name = _("POKé DOLL"), .itemId = ITEM_POKE_DOLL, @@ -1311,6 +1467,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Escape, .secondaryId = 0, }, + + [ITEM_FLUFFY_TAIL] = { .name = _("FLUFFY TAIL"), .itemId = ITEM_FLUFFY_TAIL, @@ -1327,6 +1485,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Escape, .secondaryId = 0, }, + + [ITEM_052] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1344,8 +1504,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Field items +// Field items + [ITEM_SUPER_REPEL] = { .name = _("SUPER REPEL"), .itemId = ITEM_SUPER_REPEL, @@ -1362,6 +1523,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MAX_REPEL] = { .name = _("MAX REPEL"), .itemId = ITEM_MAX_REPEL, @@ -1378,6 +1541,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ESCAPE_ROPE] = { .name = _("ESCAPE ROPE"), .itemId = ITEM_ESCAPE_ROPE, @@ -1394,6 +1559,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_REPEL] = { .name = _("REPEL"), .itemId = ITEM_REPEL, @@ -1410,6 +1577,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_057] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1426,6 +1595,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_058] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1442,6 +1613,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_059] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1458,6 +1631,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_05A] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1474,6 +1649,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_05B] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1490,6 +1667,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_05C] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1507,8 +1686,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Evolution stones +// Evolution stones + [ITEM_SUN_STONE] = { .name = _("SUN STONE"), .itemId = ITEM_SUN_STONE, @@ -1525,6 +1705,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MOON_STONE] = { .name = _("MOON STONE"), .itemId = ITEM_MOON_STONE, @@ -1541,6 +1723,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_FIRE_STONE] = { .name = _("FIRE STONE"), .itemId = ITEM_FIRE_STONE, @@ -1557,6 +1741,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_THUNDER_STONE] = { .name = _("THUNDERSTONE"), .itemId = ITEM_THUNDER_STONE, @@ -1573,6 +1759,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_WATER_STONE] = { .name = _("WATER STONE"), .itemId = ITEM_WATER_STONE, @@ -1589,6 +1777,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LEAF_STONE] = { .name = _("LEAF STONE"), .itemId = ITEM_LEAF_STONE, @@ -1605,6 +1795,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_063] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1621,6 +1813,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_064] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1637,6 +1831,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_065] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1653,6 +1849,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_066] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1670,8 +1868,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Valuable items +// Valuable items + [ITEM_TINY_MUSHROOM] = { .name = _("TINYMUSHROOM"), .itemId = ITEM_TINY_MUSHROOM, @@ -1688,6 +1887,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BIG_MUSHROOM] = { .name = _("BIG MUSHROOM"), .itemId = ITEM_BIG_MUSHROOM, @@ -1704,6 +1905,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_069] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1720,6 +1923,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PEARL] = { .name = _("PEARL"), .itemId = ITEM_PEARL, @@ -1736,6 +1941,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BIG_PEARL] = { .name = _("BIG PEARL"), .itemId = ITEM_BIG_PEARL, @@ -1752,6 +1959,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_STARDUST] = { .name = _("STARDUST"), .itemId = ITEM_STARDUST, @@ -1768,6 +1977,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_STAR_PIECE] = { .name = _("STAR PIECE"), .itemId = ITEM_STAR_PIECE, @@ -1784,6 +1995,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_NUGGET] = { .name = _("NUGGET"), .itemId = ITEM_NUGGET, @@ -1800,6 +2013,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HEART_SCALE] = { .name = _("HEART SCALE"), .itemId = ITEM_HEART_SCALE, @@ -1816,6 +2031,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_070] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1832,6 +2049,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_071] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1848,6 +2067,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_072] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1864,6 +2085,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_073] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1880,6 +2103,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_074] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1896,6 +2121,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_075] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1912,6 +2139,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_076] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1928,6 +2157,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_077] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1944,6 +2175,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_078] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -1961,7 +2194,8 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Mail +// Mail + [ITEM_ORANGE_MAIL] = { .name = _("ORANGE MAIL"), .itemId = ITEM_ORANGE_MAIL, @@ -1978,6 +2212,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HARBOR_MAIL] = { .name = _("HARBOR MAIL"), .itemId = ITEM_HARBOR_MAIL, @@ -1994,6 +2230,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 1, }, + + [ITEM_GLITTER_MAIL] = { .name = _("GLITTER MAIL"), .itemId = ITEM_GLITTER_MAIL, @@ -2010,6 +2248,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 2, }, + + [ITEM_MECH_MAIL] = { .name = _("MECH MAIL"), .itemId = ITEM_MECH_MAIL, @@ -2026,6 +2266,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 3, }, + + [ITEM_WOOD_MAIL] = { .name = _("WOOD MAIL"), .itemId = ITEM_WOOD_MAIL, @@ -2042,6 +2284,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 4, }, + + [ITEM_WAVE_MAIL] = { .name = _("WAVE MAIL"), .itemId = ITEM_WAVE_MAIL, @@ -2058,6 +2302,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 5, }, + + [ITEM_BEAD_MAIL] = { .name = _("BEAD MAIL"), .itemId = ITEM_BEAD_MAIL, @@ -2074,6 +2320,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 6, }, + + [ITEM_SHADOW_MAIL] = { .name = _("SHADOW MAIL"), .itemId = ITEM_SHADOW_MAIL, @@ -2090,6 +2338,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 7, }, + + [ITEM_TROPIC_MAIL] = { .name = _("TROPIC MAIL"), .itemId = ITEM_TROPIC_MAIL, @@ -2106,6 +2356,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 8, }, + + [ITEM_DREAM_MAIL] = { .name = _("DREAM MAIL"), .itemId = ITEM_DREAM_MAIL, @@ -2122,6 +2374,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 9, }, + + [ITEM_FAB_MAIL] = { .name = _("FAB MAIL"), .itemId = ITEM_FAB_MAIL, @@ -2138,6 +2392,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 10, }, + + [ITEM_RETRO_MAIL] = { .name = _("RETRO MAIL"), .itemId = ITEM_RETRO_MAIL, @@ -2155,8 +2411,9 @@ const struct Item gItems[] = .secondaryId = 11, }, -//Berries +// Berries + [ITEM_CHERI_BERRY] = { .name = _("CHERI BERRY"), .itemId = ITEM_CHERI_BERRY, @@ -2173,6 +2430,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_CHESTO_BERRY] = { .name = _("CHESTO BERRY"), .itemId = ITEM_CHESTO_BERRY, @@ -2189,6 +2448,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_PECHA_BERRY] = { .name = _("PECHA BERRY"), .itemId = ITEM_PECHA_BERRY, @@ -2205,6 +2466,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_RAWST_BERRY] = { .name = _("RAWST BERRY"), .itemId = ITEM_RAWST_BERRY, @@ -2221,6 +2484,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_ASPEAR_BERRY] = { .name = _("ASPEAR BERRY"), .itemId = ITEM_ASPEAR_BERRY, @@ -2237,6 +2502,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_LEPPA_BERRY] = { .name = _("LEPPA BERRY"), .itemId = ITEM_LEPPA_BERRY, @@ -2253,6 +2520,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_PPRecovery, .secondaryId = 0, }, + + [ITEM_ORAN_BERRY] = { .name = _("ORAN BERRY"), .itemId = ITEM_ORAN_BERRY, @@ -2269,6 +2538,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_PERSIM_BERRY] = { .name = _("PERSIM BERRY"), .itemId = ITEM_PERSIM_BERRY, @@ -2285,6 +2556,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_LUM_BERRY] = { .name = _("LUM BERRY"), .itemId = ITEM_LUM_BERRY, @@ -2301,6 +2574,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_SITRUS_BERRY] = { .name = _("SITRUS BERRY"), .itemId = ITEM_SITRUS_BERRY, @@ -2317,6 +2592,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_Medicine, .secondaryId = 0, }, + + [ITEM_FIGY_BERRY] = { .name = _("FIGY BERRY"), .itemId = ITEM_FIGY_BERRY, @@ -2333,6 +2610,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_WIKI_BERRY] = { .name = _("WIKI BERRY"), .itemId = ITEM_WIKI_BERRY, @@ -2349,6 +2628,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MAGO_BERRY] = { .name = _("MAGO BERRY"), .itemId = ITEM_MAGO_BERRY, @@ -2365,6 +2646,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_AGUAV_BERRY] = { .name = _("AGUAV BERRY"), .itemId = ITEM_AGUAV_BERRY, @@ -2381,6 +2664,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_IAPAPA_BERRY] = { .name = _("IAPAPA BERRY"), .itemId = ITEM_IAPAPA_BERRY, @@ -2397,6 +2682,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_RAZZ_BERRY] = { .name = _("RAZZ BERRY"), .itemId = ITEM_RAZZ_BERRY, @@ -2413,6 +2700,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BLUK_BERRY] = { .name = _("BLUK BERRY"), .itemId = ITEM_BLUK_BERRY, @@ -2429,6 +2718,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_NANAB_BERRY] = { .name = _("NANAB BERRY"), .itemId = ITEM_NANAB_BERRY, @@ -2445,6 +2736,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_WEPEAR_BERRY] = { .name = _("WEPEAR BERRY"), .itemId = ITEM_WEPEAR_BERRY, @@ -2461,6 +2754,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PINAP_BERRY] = { .name = _("PINAP BERRY"), .itemId = ITEM_PINAP_BERRY, @@ -2477,6 +2772,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_POMEG_BERRY] = { .name = _("POMEG BERRY"), .itemId = ITEM_POMEG_BERRY, @@ -2493,6 +2790,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_KELPSY_BERRY] = { .name = _("KELPSY BERRY"), .itemId = ITEM_KELPSY_BERRY, @@ -2509,6 +2808,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_QUALOT_BERRY] = { .name = _("QUALOT BERRY"), .itemId = ITEM_QUALOT_BERRY, @@ -2525,6 +2826,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HONDEW_BERRY] = { .name = _("HONDEW BERRY"), .itemId = ITEM_HONDEW_BERRY, @@ -2541,6 +2844,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_GREPA_BERRY] = { .name = _("GREPA BERRY"), .itemId = ITEM_GREPA_BERRY, @@ -2557,6 +2862,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TAMATO_BERRY] = { .name = _("TAMATO BERRY"), .itemId = ITEM_TAMATO_BERRY, @@ -2573,6 +2880,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CORNN_BERRY] = { .name = _("CORNN BERRY"), .itemId = ITEM_CORNN_BERRY, @@ -2589,6 +2898,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MAGOST_BERRY] = { .name = _("MAGOST BERRY"), .itemId = ITEM_MAGOST_BERRY, @@ -2605,6 +2916,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_RABUTA_BERRY] = { .name = _("RABUTA BERRY"), .itemId = ITEM_RABUTA_BERRY, @@ -2621,6 +2934,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_NOMEL_BERRY] = { .name = _("NOMEL BERRY"), .itemId = ITEM_NOMEL_BERRY, @@ -2637,6 +2952,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SPELON_BERRY] = { .name = _("SPELON BERRY"), .itemId = ITEM_SPELON_BERRY, @@ -2653,6 +2970,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PAMTRE_BERRY] = { .name = _("PAMTRE BERRY"), .itemId = ITEM_PAMTRE_BERRY, @@ -2669,6 +2988,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_WATMEL_BERRY] = { .name = _("WATMEL BERRY"), .itemId = ITEM_WATMEL_BERRY, @@ -2685,6 +3006,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DURIN_BERRY] = { .name = _("DURIN BERRY"), .itemId = ITEM_DURIN_BERRY, @@ -2701,6 +3024,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BELUE_BERRY] = { .name = _("BELUE BERRY"), .itemId = ITEM_BELUE_BERRY, @@ -2717,6 +3042,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LIECHI_BERRY] = { .name = _("LIECHI BERRY"), .itemId = ITEM_LIECHI_BERRY, @@ -2733,6 +3060,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_GANLON_BERRY] = { .name = _("GANLON BERRY"), .itemId = ITEM_GANLON_BERRY, @@ -2749,6 +3078,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SALAC_BERRY] = { .name = _("SALAC BERRY"), .itemId = ITEM_SALAC_BERRY, @@ -2765,6 +3096,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PETAYA_BERRY] = { .name = _("PETAYA BERRY"), .itemId = ITEM_PETAYA_BERRY, @@ -2781,6 +3114,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_APICOT_BERRY] = { .name = _("APICOT BERRY"), .itemId = ITEM_APICOT_BERRY, @@ -2797,6 +3132,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LANSAT_BERRY] = { .name = _("LANSAT BERRY"), .itemId = ITEM_LANSAT_BERRY, @@ -2813,6 +3150,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_STARF_BERRY] = { .name = _("STARF BERRY"), .itemId = ITEM_STARF_BERRY, @@ -2829,6 +3168,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ENIGMA_BERRY] = { .name = _("ENIGMA BERRY"), .itemId = ITEM_ENIGMA_BERRY, @@ -2845,6 +3186,8 @@ const struct Item gItems[] = .battleUseFunc = ItemUseInBattle_EnigmaBerry, .secondaryId = 0, }, + + [ITEM_0B0] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -2861,6 +3204,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0B1] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -2877,6 +3222,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0B2] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -2894,8 +3241,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Hold items +// Hold items + [ITEM_BRIGHT_POWDER] = { .name = _("BRIGHTPOWDER"), .itemId = ITEM_BRIGHT_POWDER, @@ -2912,6 +3260,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_WHITE_HERB] = { .name = _("WHITE HERB"), .itemId = ITEM_WHITE_HERB, @@ -2928,6 +3278,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MACHO_BRACE] = { .name = _("MACHO BRACE"), .itemId = ITEM_MACHO_BRACE, @@ -2944,6 +3296,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_EXP_SHARE] = { .name = _("EXP. SHARE"), .itemId = ITEM_EXP_SHARE, @@ -2960,6 +3314,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_QUICK_CLAW] = { .name = _("QUICK CLAW"), .itemId = ITEM_QUICK_CLAW, @@ -2976,6 +3332,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SOOTHE_BELL] = { .name = _("SOOTHE BELL"), .itemId = ITEM_SOOTHE_BELL, @@ -2992,6 +3350,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MENTAL_HERB] = { .name = _("MENTAL HERB"), .itemId = ITEM_MENTAL_HERB, @@ -3008,6 +3368,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CHOICE_BAND] = { .name = _("CHOICE BAND"), .itemId = ITEM_CHOICE_BAND, @@ -3024,8 +3386,10 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_KINGS_ROCK] = { - .name = _("KING’S ROCK"), + .name = _("KING'S ROCK"), .itemId = ITEM_KINGS_ROCK, .price = 100, .holdEffect = HOLD_EFFECT_FLINCH, @@ -3040,6 +3404,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SILVER_POWDER] = { .name = _("SILVERPOWDER"), .itemId = ITEM_SILVER_POWDER, @@ -3056,6 +3422,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_AMULET_COIN] = { .name = _("AMULET COIN"), .itemId = ITEM_AMULET_COIN, @@ -3072,6 +3440,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CLEANSE_TAG] = { .name = _("CLEANSE TAG"), .itemId = ITEM_CLEANSE_TAG, @@ -3088,6 +3458,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SOUL_DEW] = { .name = _("SOUL DEW"), .itemId = ITEM_SOUL_DEW, @@ -3104,6 +3476,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DEEP_SEA_TOOTH] = { .name = _("DEEPSEATOOTH"), .itemId = ITEM_DEEP_SEA_TOOTH, @@ -3120,6 +3494,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DEEP_SEA_SCALE] = { .name = _("DEEPSEASCALE"), .itemId = ITEM_DEEP_SEA_SCALE, @@ -3136,6 +3512,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SMOKE_BALL] = { .name = _("SMOKE BALL"), .itemId = ITEM_SMOKE_BALL, @@ -3152,6 +3530,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_EVERSTONE] = { .name = _("EVERSTONE"), .itemId = ITEM_EVERSTONE, @@ -3168,6 +3548,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_FOCUS_BAND] = { .name = _("FOCUS BAND"), .itemId = ITEM_FOCUS_BAND, @@ -3184,6 +3566,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LUCKY_EGG] = { .name = _("LUCKY EGG"), .itemId = ITEM_LUCKY_EGG, @@ -3200,6 +3584,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SCOPE_LENS] = { .name = _("SCOPE LENS"), .itemId = ITEM_SCOPE_LENS, @@ -3216,6 +3602,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_METAL_COAT] = { .name = _("METAL COAT"), .itemId = ITEM_METAL_COAT, @@ -3232,6 +3620,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LEFTOVERS] = { .name = _("LEFTOVERS"), .itemId = ITEM_LEFTOVERS, @@ -3248,6 +3638,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DRAGON_SCALE] = { .name = _("DRAGON SCALE"), .itemId = ITEM_DRAGON_SCALE, @@ -3264,6 +3656,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LIGHT_BALL] = { .name = _("LIGHT BALL"), .itemId = ITEM_LIGHT_BALL, @@ -3280,6 +3674,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SOFT_SAND] = { .name = _("SOFT SAND"), .itemId = ITEM_SOFT_SAND, @@ -3296,6 +3692,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HARD_STONE] = { .name = _("HARD STONE"), .itemId = ITEM_HARD_STONE, @@ -3312,6 +3710,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MIRACLE_SEED] = { .name = _("MIRACLE SEED"), .itemId = ITEM_MIRACLE_SEED, @@ -3328,6 +3728,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BLACK_GLASSES] = { .name = _("BLACKGLASSES"), .itemId = ITEM_BLACK_GLASSES, @@ -3344,6 +3746,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BLACK_BELT] = { .name = _("BLACK BELT"), .itemId = ITEM_BLACK_BELT, @@ -3360,6 +3764,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MAGNET] = { .name = _("MAGNET"), .itemId = ITEM_MAGNET, @@ -3376,6 +3782,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_MYSTIC_WATER] = { .name = _("MYSTIC WATER"), .itemId = ITEM_MYSTIC_WATER, @@ -3392,6 +3800,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SHARP_BEAK] = { .name = _("SHARP BEAK"), .itemId = ITEM_SHARP_BEAK, @@ -3408,6 +3818,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_POISON_BARB] = { .name = _("POISON BARB"), .itemId = ITEM_POISON_BARB, @@ -3424,6 +3836,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_NEVER_MELT_ICE] = { .name = _("NEVERMELTICE"), .itemId = ITEM_NEVER_MELT_ICE, @@ -3440,6 +3854,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SPELL_TAG] = { .name = _("SPELL TAG"), .itemId = ITEM_SPELL_TAG, @@ -3456,6 +3872,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TWISTED_SPOON] = { .name = _("TWISTEDSPOON"), .itemId = ITEM_TWISTED_SPOON, @@ -3472,6 +3890,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CHARCOAL] = { .name = _("CHARCOAL"), .itemId = ITEM_CHARCOAL, @@ -3488,6 +3908,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DRAGON_FANG] = { .name = _("DRAGON FANG"), .itemId = ITEM_DRAGON_FANG, @@ -3504,6 +3926,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SILK_SCARF] = { .name = _("SILK SCARF"), .itemId = ITEM_SILK_SCARF, @@ -3520,6 +3944,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_UP_GRADE] = { .name = _("UP-GRADE"), .itemId = ITEM_UP_GRADE, @@ -3536,6 +3962,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SHELL_BELL] = { .name = _("SHELL BELL"), .itemId = ITEM_SHELL_BELL, @@ -3552,6 +3980,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SEA_INCENSE] = { .name = _("SEA INCENSE"), .itemId = ITEM_SEA_INCENSE, @@ -3568,6 +3998,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LAX_INCENSE] = { .name = _("LAX INCENSE"), .itemId = ITEM_LAX_INCENSE, @@ -3584,6 +4016,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LUCKY_PUNCH] = { .name = _("LUCKY PUNCH"), .itemId = ITEM_LUCKY_PUNCH, @@ -3600,6 +4034,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_METAL_POWDER] = { .name = _("METAL POWDER"), .itemId = ITEM_METAL_POWDER, @@ -3616,6 +4052,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_THICK_CLUB] = { .name = _("THICK CLUB"), .itemId = ITEM_THICK_CLUB, @@ -3632,6 +4070,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_STICK] = { .name = _("STICK"), .itemId = ITEM_STICK, @@ -3648,6 +4088,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E2] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3664,6 +4106,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E3] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3680,6 +4124,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E4] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3696,6 +4142,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E5] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3712,6 +4160,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E6] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3728,6 +4178,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E7] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3744,6 +4196,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E8] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3760,6 +4214,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0E9] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3776,6 +4232,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0EA] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3792,6 +4250,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0EB] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3808,6 +4268,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0EC] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3824,6 +4286,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0ED] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3840,6 +4304,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0EE] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3856,6 +4322,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0EF] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3872,6 +4340,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F0] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3888,6 +4358,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F1] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3904,6 +4376,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F2] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3920,6 +4394,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F3] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3936,6 +4412,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F4] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3952,6 +4430,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F5] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3968,6 +4448,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F6] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -3984,6 +4466,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F7] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4000,6 +4484,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F8] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4016,6 +4502,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0F9] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4032,6 +4520,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0FA] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4048,6 +4538,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0FB] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4064,6 +4556,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0FC] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4080,6 +4574,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_0FD] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4096,6 +4592,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_RED_SCARF] = { .name = _("RED SCARF"), .itemId = ITEM_RED_SCARF, @@ -4112,6 +4610,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BLUE_SCARF] = { .name = _("BLUE SCARF"), .itemId = ITEM_BLUE_SCARF, @@ -4128,6 +4628,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_PINK_SCARF] = { .name = _("PINK SCARF"), .itemId = ITEM_PINK_SCARF, @@ -4144,6 +4646,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_GREEN_SCARF] = { .name = _("GREEN SCARF"), .itemId = ITEM_GREEN_SCARF, @@ -4160,6 +4664,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_YELLOW_SCARF] = { .name = _("YELLOW SCARF"), .itemId = ITEM_YELLOW_SCARF, @@ -4177,8 +4683,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Key items +// Key items + [ITEM_MACH_BIKE] = { .name = _("MACH BIKE"), .itemId = ITEM_MACH_BIKE, @@ -4195,6 +4702,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_COIN_CASE] = { .name = _("COIN CASE"), .itemId = ITEM_COIN_CASE, @@ -4211,6 +4720,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ITEMFINDER] = { .name = _("ITEMFINDER"), .itemId = ITEM_ITEMFINDER, @@ -4227,6 +4738,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_OLD_ROD] = { .name = _("OLD ROD"), .itemId = ITEM_OLD_ROD, @@ -4243,6 +4756,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_GOOD_ROD] = { .name = _("GOOD ROD"), .itemId = ITEM_GOOD_ROD, @@ -4259,6 +4774,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 1, }, + + [ITEM_SUPER_ROD] = { .name = _("SUPER ROD"), .itemId = ITEM_SUPER_ROD, @@ -4275,6 +4792,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 2, }, + + [ITEM_SS_TICKET] = { .name = _("S.S. TICKET"), .itemId = ITEM_SS_TICKET, @@ -4291,6 +4810,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CONTEST_PASS] = { .name = _("CONTEST PASS"), .itemId = ITEM_CONTEST_PASS, @@ -4307,6 +4828,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_10B] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -4323,6 +4846,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_WAILMER_PAIL] = { .name = _("WAILMER PAIL"), .itemId = ITEM_WAILMER_PAIL, @@ -4339,6 +4864,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DEVON_GOODS] = { .name = _("DEVON GOODS"), .itemId = ITEM_DEVON_GOODS, @@ -4355,6 +4882,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SOOT_SACK] = { .name = _("SOOT SACK"), .itemId = ITEM_SOOT_SACK, @@ -4371,6 +4900,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BASEMENT_KEY] = { .name = _("BASEMENT KEY"), .itemId = ITEM_BASEMENT_KEY, @@ -4387,6 +4918,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ACRO_BIKE] = { .name = _("ACRO BIKE"), .itemId = ITEM_ACRO_BIKE, @@ -4403,6 +4936,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 1, }, + + [ITEM_POKEBLOCK_CASE] = { .name = _("{POKEBLOCK} CASE"), .itemId = ITEM_POKEBLOCK_CASE, @@ -4419,6 +4954,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LETTER] = { .name = _("LETTER"), .itemId = ITEM_LETTER, @@ -4435,6 +4972,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_EON_TICKET] = { .name = _("EON TICKET"), .itemId = ITEM_EON_TICKET, @@ -4451,6 +4990,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 1, }, + + [ITEM_RED_ORB] = { .name = _("RED ORB"), .itemId = ITEM_RED_ORB, @@ -4467,6 +5008,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BLUE_ORB] = { .name = _("BLUE ORB"), .itemId = ITEM_BLUE_ORB, @@ -4483,6 +5026,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SCANNER] = { .name = _("SCANNER"), .itemId = ITEM_SCANNER, @@ -4499,6 +5044,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_GO_GOGGLES] = { .name = _("GO-GOGGLES"), .itemId = ITEM_GO_GOGGLES, @@ -4515,6 +5062,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_METEORITE] = { .name = _("METEORITE"), .itemId = ITEM_METEORITE, @@ -4531,6 +5080,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ROOM_1_KEY] = { .name = _("RM. 1 KEY"), .itemId = ITEM_ROOM_1_KEY, @@ -4547,6 +5098,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ROOM_2_KEY] = { .name = _("RM. 2 KEY"), .itemId = ITEM_ROOM_2_KEY, @@ -4563,6 +5116,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ROOM_4_KEY] = { .name = _("RM. 4 KEY"), .itemId = ITEM_ROOM_4_KEY, @@ -4579,6 +5134,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ROOM_6_KEY] = { .name = _("RM. 6 KEY"), .itemId = ITEM_ROOM_6_KEY, @@ -4595,6 +5152,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_STORAGE_KEY] = { .name = _("STORAGE KEY"), .itemId = ITEM_STORAGE_KEY, @@ -4611,6 +5170,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_ROOT_FOSSIL] = { .name = _("ROOT FOSSIL"), .itemId = ITEM_ROOT_FOSSIL, @@ -4627,6 +5188,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CLAW_FOSSIL] = { .name = _("CLAW FOSSIL"), .itemId = ITEM_CLAW_FOSSIL, @@ -4643,6 +5206,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DEVON_SCOPE] = { .name = _("DEVON SCOPE"), .itemId = ITEM_DEVON_SCOPE, @@ -4660,8 +5225,9 @@ const struct Item gItems[] = .secondaryId = 0, }, -//TMs/HMs +// TMs/HMs + [ITEM_TM01_FOCUS_PUNCH] = { .name = _("TM01"), .itemId = ITEM_TM01_FOCUS_PUNCH, @@ -4678,6 +5244,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM02_DRAGON_CLAW] = { .name = _("TM02"), .itemId = ITEM_TM02_DRAGON_CLAW, @@ -4694,6 +5262,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM03_WATER_PULSE] = { .name = _("TM03"), .itemId = ITEM_TM03_WATER_PULSE, @@ -4710,6 +5280,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM04_CALM_MIND] = { .name = _("TM04"), .itemId = ITEM_TM04_CALM_MIND, @@ -4726,6 +5298,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM05_ROAR] = { .name = _("TM05"), .itemId = ITEM_TM05_ROAR, @@ -4742,6 +5316,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM06_TOXIC] = { .name = _("TM06"), .itemId = ITEM_TM06_TOXIC, @@ -4758,6 +5334,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM07_HAIL] = { .name = _("TM07"), .itemId = ITEM_TM07_HAIL, @@ -4774,6 +5352,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM08_BULK_UP] = { .name = _("TM08"), .itemId = ITEM_TM08_BULK_UP, @@ -4790,6 +5370,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM09_BULLET_SEED] = { .name = _("TM09"), .itemId = ITEM_TM09_BULLET_SEED, @@ -4806,6 +5388,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM10_HIDDEN_POWER] = { .name = _("TM10"), .itemId = ITEM_TM10_HIDDEN_POWER, @@ -4822,6 +5406,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM11_SUNNY_DAY] = { .name = _("TM11"), .itemId = ITEM_TM11_SUNNY_DAY, @@ -4838,6 +5424,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM12_TAUNT] = { .name = _("TM12"), .itemId = ITEM_TM12_TAUNT, @@ -4854,6 +5442,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM13_ICE_BEAM] = { .name = _("TM13"), .itemId = ITEM_TM13_ICE_BEAM, @@ -4870,6 +5460,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM14_BLIZZARD] = { .name = _("TM14"), .itemId = ITEM_TM14_BLIZZARD, @@ -4886,6 +5478,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM15_HYPER_BEAM] = { .name = _("TM15"), .itemId = ITEM_TM15_HYPER_BEAM, @@ -4902,6 +5496,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM16_LIGHT_SCREEN] = { .name = _("TM16"), .itemId = ITEM_TM16_LIGHT_SCREEN, @@ -4918,6 +5514,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM17_PROTECT] = { .name = _("TM17"), .itemId = ITEM_TM17_PROTECT, @@ -4934,6 +5532,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM18_RAIN_DANCE] = { .name = _("TM18"), .itemId = ITEM_TM18_RAIN_DANCE, @@ -4950,6 +5550,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM19_GIGA_DRAIN] = { .name = _("TM19"), .itemId = ITEM_TM19_GIGA_DRAIN, @@ -4966,6 +5568,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM20_SAFEGUARD] = { .name = _("TM20"), .itemId = ITEM_TM20_SAFEGUARD, @@ -4982,6 +5586,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM21_FRUSTRATION] = { .name = _("TM21"), .itemId = ITEM_TM21_FRUSTRATION, @@ -4998,6 +5604,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM22_SOLARBEAM] = { .name = _("TM22"), .itemId = ITEM_TM22_SOLARBEAM, @@ -5014,6 +5622,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM23_IRON_TAIL] = { .name = _("TM23"), .itemId = ITEM_TM23_IRON_TAIL, @@ -5030,6 +5640,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM24_THUNDERBOLT] = { .name = _("TM24"), .itemId = ITEM_TM24_THUNDERBOLT, @@ -5046,6 +5658,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM25_THUNDER] = { .name = _("TM25"), .itemId = ITEM_TM25_THUNDER, @@ -5062,6 +5676,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM26_EARTHQUAKE] = { .name = _("TM26"), .itemId = ITEM_TM26_EARTHQUAKE, @@ -5078,6 +5694,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM27_RETURN] = { .name = _("TM27"), .itemId = ITEM_TM27_RETURN, @@ -5094,6 +5712,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM28_DIG] = { .name = _("TM28"), .itemId = ITEM_TM28_DIG, @@ -5110,6 +5730,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM29_PSYCHIC] = { .name = _("TM29"), .itemId = ITEM_TM29_PSYCHIC, @@ -5126,6 +5748,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM30_SHADOW_BALL] = { .name = _("TM30"), .itemId = ITEM_TM30_SHADOW_BALL, @@ -5142,6 +5766,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM31_BRICK_BREAK] = { .name = _("TM31"), .itemId = ITEM_TM31_BRICK_BREAK, @@ -5158,6 +5784,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM32_DOUBLE_TEAM] = { .name = _("TM32"), .itemId = ITEM_TM32_DOUBLE_TEAM, @@ -5174,6 +5802,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM33_REFLECT] = { .name = _("TM33"), .itemId = ITEM_TM33_REFLECT, @@ -5190,6 +5820,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM34_SHOCK_WAVE] = { .name = _("TM34"), .itemId = ITEM_TM34_SHOCK_WAVE, @@ -5206,6 +5838,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM35_FLAMETHROWER] = { .name = _("TM35"), .itemId = ITEM_TM35_FLAMETHROWER, @@ -5222,6 +5856,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM36_SLUDGE_BOMB] = { .name = _("TM36"), .itemId = ITEM_TM36_SLUDGE_BOMB, @@ -5238,6 +5874,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM37_SANDSTORM] = { .name = _("TM37"), .itemId = ITEM_TM37_SANDSTORM, @@ -5254,6 +5892,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM38_FIRE_BLAST] = { .name = _("TM38"), .itemId = ITEM_TM38_FIRE_BLAST, @@ -5270,6 +5910,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM39_ROCK_TOMB] = { .name = _("TM39"), .itemId = ITEM_TM39_ROCK_TOMB, @@ -5286,6 +5928,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM40_AERIAL_ACE] = { .name = _("TM40"), .itemId = ITEM_TM40_AERIAL_ACE, @@ -5302,6 +5946,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM41_TORMENT] = { .name = _("TM41"), .itemId = ITEM_TM41_TORMENT, @@ -5318,6 +5964,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM42_FACADE] = { .name = _("TM42"), .itemId = ITEM_TM42_FACADE, @@ -5334,6 +5982,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM43_SECRET_POWER] = { .name = _("TM43"), .itemId = ITEM_TM43_SECRET_POWER, @@ -5350,6 +6000,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM44_REST] = { .name = _("TM44"), .itemId = ITEM_TM44_REST, @@ -5366,6 +6018,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM45_ATTRACT] = { .name = _("TM45"), .itemId = ITEM_TM45_ATTRACT, @@ -5382,6 +6036,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM46_THIEF] = { .name = _("TM46"), .itemId = ITEM_TM46_THIEF, @@ -5398,6 +6054,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM47_STEEL_WING] = { .name = _("TM47"), .itemId = ITEM_TM47_STEEL_WING, @@ -5414,6 +6072,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM48_SKILL_SWAP] = { .name = _("TM48"), .itemId = ITEM_TM48_SKILL_SWAP, @@ -5430,6 +6090,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM49_SNATCH] = { .name = _("TM49"), .itemId = ITEM_TM49_SNATCH, @@ -5446,6 +6108,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM50_OVERHEAT] = { .name = _("TM50"), .itemId = ITEM_TM50_OVERHEAT, @@ -5462,6 +6126,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM01_CUT] = { .name = _("HM01"), .itemId = ITEM_HM01_CUT, @@ -5478,6 +6144,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM02_FLY] = { .name = _("HM02"), .itemId = ITEM_HM02_FLY, @@ -5494,6 +6162,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM03_SURF] = { .name = _("HM03"), .itemId = ITEM_HM03_SURF, @@ -5510,6 +6180,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM04_STRENGTH] = { .name = _("HM04"), .itemId = ITEM_HM04_STRENGTH, @@ -5526,6 +6198,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM05_FLASH] = { .name = _("HM05"), .itemId = ITEM_HM05_FLASH, @@ -5542,6 +6216,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM06_ROCK_SMASH] = { .name = _("HM06"), .itemId = ITEM_HM06_ROCK_SMASH, @@ -5558,6 +6234,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM07_WATERFALL] = { .name = _("HM07"), .itemId = ITEM_HM07_WATERFALL, @@ -5574,6 +6252,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HM08_DIVE] = { .name = _("HM08"), .itemId = ITEM_HM08_DIVE, @@ -5590,6 +6270,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_15B] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -5606,6 +6288,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_15C] = { .name = _("????????"), .itemId = ITEM_NONE, @@ -5623,10 +6307,11 @@ const struct Item gItems[] = .secondaryId = 0, }, -//FireRed/LeafGreen key items +// FireRed/LeafGreen key items + [ITEM_OAKS_PARCEL] = { - .name = _("OAK’S PARCEL"), + .name = _("OAK'S PARCEL"), .itemId = ITEM_OAKS_PARCEL, .price = 0, .holdEffect = HOLD_EFFECT_NONE, @@ -5641,6 +6326,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_POKE_FLUTE] = { .name = _("POKé FLUTE"), .itemId = ITEM_POKE_FLUTE, @@ -5657,6 +6344,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SECRET_KEY] = { .name = _("SECRET KEY"), .itemId = ITEM_SECRET_KEY, @@ -5673,6 +6362,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BIKE_VOUCHER] = { .name = _("BIKE VOUCHER"), .itemId = ITEM_BIKE_VOUCHER, @@ -5689,6 +6380,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_GOLD_TEETH] = { .name = _("GOLD TEETH"), .itemId = ITEM_GOLD_TEETH, @@ -5705,6 +6398,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_OLD_AMBER] = { .name = _("OLD AMBER"), .itemId = ITEM_OLD_AMBER, @@ -5721,6 +6416,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_CARD_KEY] = { .name = _("CARD KEY"), .itemId = ITEM_CARD_KEY, @@ -5737,6 +6434,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_LIFT_KEY] = { .name = _("LIFT KEY"), .itemId = ITEM_LIFT_KEY, @@ -5753,6 +6452,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_HELIX_FOSSIL] = { .name = _("HELIX FOSSIL"), .itemId = ITEM_HELIX_FOSSIL, @@ -5769,6 +6470,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_DOME_FOSSIL] = { .name = _("DOME FOSSIL"), .itemId = ITEM_DOME_FOSSIL, @@ -5785,6 +6488,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_SILPH_SCOPE] = { .name = _("SILPH SCOPE"), .itemId = ITEM_SILPH_SCOPE, @@ -5801,6 +6506,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BICYCLE] = { .name = _("BICYCLE"), .itemId = ITEM_BICYCLE, @@ -5817,6 +6524,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TOWN_MAP] = { .name = _("TOWN MAP"), .itemId = ITEM_TOWN_MAP, @@ -5833,6 +6542,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_VS_SEEKER] = { .name = _("VS SEEKER"), .itemId = ITEM_VS_SEEKER, @@ -5849,6 +6560,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_FAME_CHECKER] = { .name = _("FAME CHECKER"), .itemId = ITEM_FAME_CHECKER, @@ -5865,6 +6578,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TM_CASE] = { .name = _("TM CASE"), .itemId = ITEM_TM_CASE, @@ -5881,6 +6596,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_BERRY_POUCH] = { .name = _("BERRY POUCH"), .itemId = ITEM_BERRY_POUCH, @@ -5897,6 +6614,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TEACHY_TV] = { .name = _("TEACHY TV"), .itemId = ITEM_TEACHY_TV, @@ -5913,6 +6632,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TRI_PASS] = { .name = _("TRI-PASS"), .itemId = ITEM_TRI_PASS, @@ -5929,6 +6650,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_RAINBOW_PASS] = { .name = _("RAINBOW PASS"), .itemId = ITEM_RAINBOW_PASS, @@ -5945,6 +6668,8 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, + + [ITEM_TEA] = { .name = _("TEA"), .itemId = ITEM_TEA, @@ -5961,7 +6686,9 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, - { + + [ITEM_MYSTIC_TICKET] = + { .name = _("MYSTICTICKET"), .itemId = ITEM_MYSTIC_TICKET, .price = 0, @@ -5977,7 +6704,9 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, - { + + [ITEM_AURORA_TICKET] = + { .name = _("AURORATICKET"), .itemId = ITEM_AURORA_TICKET, .price = 0, @@ -5993,7 +6722,9 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, - { + + [ITEM_POWDER_JAR] = + { .name = _("POWDER JAR"), .itemId = ITEM_POWDER_JAR, .price = 0, @@ -6009,7 +6740,9 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, - { + + [ITEM_RUBY] = + { .name = _("RUBY"), .itemId = ITEM_RUBY, .price = 0, @@ -6025,7 +6758,9 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, - { + + [ITEM_SAPPHIRE] = + { .name = _("SAPPHIRE"), .itemId = ITEM_SAPPHIRE, .price = 0, @@ -6042,9 +6777,10 @@ const struct Item gItems[] = .secondaryId = 0, }, -//Emerald-specific key items +// Emerald-specific key items - { + [ITEM_MAGMA_EMBLEM] = + { .name = _("MAGMA EMBLEM"), .itemId = ITEM_MAGMA_EMBLEM, .price = 0, @@ -6060,7 +6796,9 @@ const struct Item gItems[] = .battleUseFunc = NULL, .secondaryId = 0, }, - { + + [ITEM_OLD_SEA_MAP] = + { .name = _("OLD SEA MAP"), .itemId = ITEM_OLD_SEA_MAP, .price = 0, diff --git a/src/data/pokedex_orders.h b/src/data/pokedex_orders.h deleted file mode 100644 index 61fbd289c..000000000 --- a/src/data/pokedex_orders.h +++ /dev/null @@ -1,1199 +0,0 @@ -#ifndef GUARD_DATA_POKEDEX_ORDERS -#define GUARD_DATA_POKEDEX_ORDERS - -const u16 gPokedexOrder_Alphabetical[] = -{ - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 63, // Abra - 359, // Absol - 142, // Aerodactyl - 306, // Aggron - 190, // Aipom - 65, // Alakazam - 334, // Altaria - 181, // Ampharos - 347, // Anorith - 24, // Arbok - 59, // Arcanine - 168, // Ariados - 348, // Armaldo - 304, // Aron - 144, // Articuno - 184, // Azumarill - 298, // Azurill - 371, // Bagon - 343, // Baltoy - 354, // Banette - 339, // Barboach - 153, // Bayleef - 267, // Beautifly - 15, // Beedrill - 374, // Beldum - 182, // Bellossom - 69, // Bellsprout - 9, // Blastoise - 257, // Blaziken - 242, // Blissey - 286, // Breloom - 1, // Bulbasaur - 12, // Butterfree - 331, // Cacnea - 332, // Cacturne - 323, // Camerupt - 318, // Carvanha - 268, // Cascoon - 351, // Castform - 10, // Caterpie - 251, // Celebi - 113, // Chansey - 6, // Charizard - 4, // Charmander - 5, // Charmeleon - 152, // Chikorita - 358, // Chimecho - 170, // Chinchou - 366, // Clamperl - 344, // Claydol - 36, // Clefable - 35, // Clefairy - 173, // Cleffa - 91, // Cloyster - 256, // Combusken - 341, // Corphish - 222, // Corsola - 346, // Cradily - 342, // Crawdaunt - 169, // Crobat - 159, // Croconaw - 104, // Cubone - 155, // Cyndaquil - 301, // Delcatty - 225, // Delibird - 386, // Deoxys - 87, // Dewgong - 50, // Diglett - 132, // Ditto - 85, // Dodrio - 84, // Doduo - 232, // Donphan - 148, // Dragonair - 149, // Dragonite - 147, // Dratini - 96, // Drowzee - 51, // Dugtrio - 206, // Dunsparce - 356, // Dusclops - 355, // Duskull - 269, // Dustox - 133, // Eevee - 23, // Ekans - 125, // Electabuzz - 309, // Electrike - 101, // Electrode - 239, // Elekid - 244, // Entei - 196, // Espeon - 102, // Exeggcute - 103, // Exeggutor - 295, // Exploud - 83, // Farfetch'd - 22, // Fearow - 349, // Feebas - 160, // Feraligatr - 180, // Flaaffy - 136, // Flareon - 330, // Flygon - 205, // Forretress - 162, // Furret - 282, // Gardevoir - 92, // Gastly - 94, // Gengar - 74, // Geodude - 203, // Girafarig - 362, // Glalie - 207, // Gligar - 44, // Gloom - 42, // Golbat - 118, // Goldeen - 55, // Golduck - 76, // Golem - 368, // Gorebyss - 210, // Granbull - 75, // Graveler - 88, // Grimer - 383, // Groudon - 253, // Grovyle - 58, // Growlithe - 326, // Grumpig - 316, // Gulpin - 130, // Gyarados - 297, // Hariyama - 93, // Haunter - 214, // Heracross - 107, // Hitmonchan - 106, // Hitmonlee - 237, // Hitmontop - 250, // Ho-Oh - 163, // Hoothoot - 187, // Hoppip - 116, // Horsea - 229, // Houndoom - 228, // Houndour - 367, // Huntail - 97, // Hypno - 174, // Igglybuff - 314, // Illumise - 2, // Ivysaur - 39, // Jigglypuff - 385, // Jirachi - 135, // Jolteon - 189, // Jumpluff - 124, // Jynx - 140, // Kabuto - 141, // Kabutops - 64, // Kadabra - 14, // Kakuna - 115, // Kangaskhan - 352, // Kecleon - 230, // Kingdra - 99, // Kingler - 281, // Kirlia - 109, // Koffing - 98, // Krabby - 382, // Kyogre - 305, // Lairon - 171, // Lanturn - 131, // Lapras - 246, // Larvitar - 380, // Latias - 381, // Latios - 166, // Ledian - 165, // Ledyba - 108, // Lickitung - 345, // Lileep - 264, // Linoone - 271, // Lombre - 270, // Lotad - 294, // Loudred - 272, // Ludicolo - 249, // Lugia - 337, // Lunatone - 370, // Luvdisc - 68, // Machamp - 67, // Machoke - 66, // Machop - 240, // Magby - 219, // Magcargo - 129, // Magikarp - 126, // Magmar - 81, // Magnemite - 82, // Magneton - 296, // Makuhita - 310, // Manectric - 56, // Mankey - 226, // Mantine - 179, // Mareep - 183, // Marill - 105, // Marowak - 259, // Marshtomp - 284, // Masquerain - 303, // Mawile - 308, // Medicham - 307, // Meditite - 154, // Meganium - 52, // Meowth - 376, // Metagross - 375, // Metang - 11, // Metapod - 151, // Mew - 150, // Mewtwo - 262, // Mightyena - 350, // Milotic - 241, // Miltank - 312, // Minun - 200, // Misdreavus - 146, // Moltres - 122, // Mr. mime - 258, // Mudkip - 89, // Muk - 198, // Murkrow - 177, // Natu - 34, // Nidoking - 31, // Nidoqueen - 29, // Nidoran? - 32, // Nidoran? - 30, // Nidorina - 33, // Nidorino - 290, // Nincada - 38, // Ninetales - 291, // Ninjask - 164, // Noctowl - 299, // Nosepass - 322, // Numel - 274, // Nuzleaf - 224, // Octillery - 43, // Oddish - 138, // Omanyte - 139, // Omastar - 95, // Onix - 46, // Paras - 47, // Parasect - 279, // Pelipper - 53, // Persian - 231, // Phanpy - 172, // Pichu - 18, // Pidgeot - 17, // Pidgeotto - 16, // Pidgey - 25, // Pikachu - 221, // Piloswine - 204, // Pineco - 127, // Pinsir - 311, // Plusle - 186, // Politoed - 60, // Poliwag - 61, // Poliwhirl - 62, // Poliwrath - 77, // Ponyta - 261, // Poochyena - 137, // Porygon - 233, // Porygon2 - 57, // Primeape - 54, // Psyduck - 247, // Pupitar - 195, // Quagsire - 156, // Quilava - 211, // Qwilfish - 26, // Raichu - 243, // Raikou - 280, // Ralts - 78, // Rapidash - 20, // Raticate - 19, // Rattata - 384, // Rayquaza - 378, // Regice - 377, // Regirock - 379, // Registeel - 369, // Relicanth - 223, // Remoraid - 112, // Rhydon - 111, // Rhyhorn - 315, // Roselia - 302, // Sableye - 373, // Salamence - 27, // Sandshrew - 28, // Sandslash - 254, // Sceptile - 212, // Scizor - 123, // Scyther - 117, // Seadra - 119, // Seaking - 364, // Sealeo - 273, // Seedot - 86, // Seel - 161, // Sentret - 336, // Seviper - 319, // Sharpedo - 292, // Shedinja - 372, // Shelgon - 90, // Shellder - 275, // Shiftry - 285, // Shroomish - 213, // Shuckle - 353, // Shuppet - 266, // Silcoon - 227, // Skarmory - 188, // Skiploom - 300, // Skitty - 289, // Slaking - 287, // Slakoth - 80, // Slowbro - 199, // Slowking - 79, // Slowpoke - 218, // Slugma - 235, // Smeargle - 238, // Smoochum - 215, // Sneasel - 143, // Snorlax - 361, // Snorunt - 209, // Snubbull - 338, // Solrock - 21, // Spearow - 363, // Spheal - 167, // Spinarak - 327, // Spinda - 325, // Spoink - 7, // Squirtle - 234, // Stantler - 121, // Starmie - 120, // Staryu - 208, // Steelix - 185, // Sudowoodo - 245, // Suicune - 192, // Sunflora - 191, // Sunkern - 283, // Surskit - 333, // Swablu - 317, // Swalot - 260, // Swampert - 277, // Swellow - 220, // Swinub - 276, // Taillow - 114, // Tangela - 128, // Tauros - 216, // Teddiursa - 72, // Tentacool - 73, // Tentacruel - 175, // Togepi - 176, // Togetic - 255, // Torchic - 324, // Torkoal - 158, // Totodile - 328, // Trapinch - 252, // Treecko - 357, // Tropius - 157, // Typhlosion - 248, // Tyranitar - 236, // Tyrogue - 197, // Umbreon - 201, // Unown - 217, // Ursaring - 134, // Vaporeon - 49, // Venomoth - 48, // Venonat - 3, // Venusaur - 329, // Vibrava - 71, // Victreebel - 288, // Vigoroth - 45, // Vileplume - 313, // Volbeat - 100, // Voltorb - 37, // Vulpix - 320, // Wailmer - 321, // Wailord - 365, // Walrein - 8, // Wartortle - 13, // Weedle - 70, // Weepinbell - 110, // Weezing - 340, // Whiscash - 293, // Whismur - 40, // Wigglytuff - 278, // Wingull - 202, // Wobbuffet - 194, // Wooper - 265, // Wurmple - 360, // Wynaut - 178, // Xatu - 193, // Yanma - 335, // Zangoose - 145, // Zapdos - 263, // Zigzagoon - 41, // Zubat -}; - -const u16 gPokedexOrder_Weight[] = -{ - 92, // Gastly - 93, // Haunter - 187, // Hoppip - 50, // Diglett - 351, // Castform - 109, // Koffing - 174, // Igglybuff - 200, // Misdreavus - 358, // Chimecho - 188, // Skiploom - 385, // Jirachi - 333, // Swablu - 292, // Shedinja - 175, // Togepi - 283, // Surskit - 16, // Pidgey - 191, // Sunkern - 339, // Barboach - 172, // Pichu - 298, // Azurill - 315, // Roselia - 177, // Natu - 21, // Spearow - 198, // Murkrow - 353, // Shuppet - 276, // Taillow - 102, // Exeggcute - 255, // Torchic - 270, // Lotad - 10, // Caterpie - 189, // Jumpluff - 173, // Cleffa - 13, // Weedle - 176, // Togetic - 147, // Dratini - 19, // Rattata - 284, // Masquerain - 265, // Wurmple - 211, // Qwilfish - 151, // Mew - 90, // Shellder - 273, // Seedot - 132, // Ditto - 69, // Bellsprout - 311, // Plusle - 52, // Meowth - 312, // Minun - 285, // Shroomish - 251, // Celebi - 222, // Corsola - 252, // Treecko - 327, // Spinda - 201, // Unown - 46, // Paras - 43, // Oddish - 39, // Jigglypuff - 290, // Nincada - 182, // Bellossom - 81, // Magnemite - 25, // Pikachu - 238, // Smoochum - 161, // Sentret - 70, // Weepinbell - 152, // Chikorita - 220, // Swinub - 133, // Eevee - 98, // Krabby - 104, // Cubone - 280, // Ralts - 1, // Bulbasaur - 23, // Ekans - 29, // Nidoran? - 204, // Pineco - 349, // Feebas - 138, // Omanyte - 41, // Zubat - 35, // Clefairy - 258, // Mudkip - 209, // Snubbull - 179, // Mareep - 155, // Cyndaquil - 116, // Horsea - 4, // Charmander - 192, // Sunflora - 183, // Marill - 194, // Wooper - 167, // Spinarak - 44, // Gloom - 370, // Luvdisc - 216, // Teddiursa - 32, // Nidoran? - 7, // Squirtle - 278, // Wingull - 158, // Totodile - 110, // Weezing - 37, // Vulpix - 11, // Metapod - 266, // Silcoon - 129, // Magikarp - 14, // Kakuna - 316, // Gulpin - 100, // Voltorb - 165, // Ledyba - 228, // Houndour - 300, // Skitty - 302, // Sableye - 307, // Meditite - 341, // Corphish - 190, // Aipom - 268, // Cascoon - 303, // Mawile - 140, // Kabuto - 40, // Wigglytuff - 27, // Sandshrew - 223, // Remoraid - 291, // Ninjask - 170, // Chinchou - 60, // Poliwag - 347, // Anorith - 49, // Venomoth - 354, // Banette - 2, // Ivysaur - 180, // Flaaffy - 261, // Poochyena - 360, // Wynaut - 206, // Dunsparce - 178, // Xatu - 355, // Duskull - 83, // Farfetch'd - 328, // Trapinch - 118, // Goldeen - 309, // Electrike - 329, // Vibrava - 71, // Victreebel - 153, // Bayleef - 225, // Delibird - 293, // Whismur - 148, // Dragonair - 361, // Snorunt - 263, // Zigzagoon - 314, // Illumise - 313, // Volbeat - 20, // Raticate - 45, // Vileplume - 156, // Quilava - 5, // Charmeleon - 58, // Growlithe - 256, // Combusken - 66, // Machop - 63, // Abra - 33, // Nidorino - 54, // Psyduck - 277, // Swellow - 38, // Ninetales - 30, // Nidorina - 61, // Poliwhirl - 74, // Geodude - 281, // Kirlia - 213, // Shuckle - 334, // Altaria - 318, // Carvanha - 236, // Tyrogue - 163, // Hoothoot - 240, // Magby - 343, // Baltoy - 253, // Grovyle - 352, // Kecleon - 171, // Lanturn - 8, // Wartortle - 368, // Gorebyss - 369, // Relicanth - 239, // Elekid - 340, // Whiscash - 345, // Lileep - 322, // Numel - 287, // Slakoth - 135, // Jolteon - 159, // Croconaw - 136, // Flareon - 117, // Seadra - 196, // Espeon - 367, // Huntail - 197, // Umbreon - 259, // Marshtomp - 274, // Nuzleaf - 215, // Sneasel - 56, // Mankey - 279, // Pelipper - 267, // Beautifly - 224, // Octillery - 184, // Azumarill - 202, // Wobbuffet - 134, // Vaporeon - 28, // Sandslash - 47, // Parasect - 15, // Beedrill - 89, // Muk - 17, // Pidgeotto - 88, // Grimer - 26, // Raichu - 77, // Ponyta - 125, // Electabuzz - 48, // Venonat - 325, // Spoink - 356, // Dusclops - 308, // Medicham - 269, // Dustox - 53, // Persian - 12, // Butterfree - 57, // Primeape - 96, // Drowzee - 162, // Furret - 233, // Porygon2 - 271, // Lombre - 264, // Linoone - 301, // Delcatty - 342, // Crawdaunt - 51, // Dugtrio - 168, // Ariados - 231, // Phanpy - 186, // Politoed - 120, // Staryu - 113, // Chansey - 139, // Omastar - 114, // Tangela - 218, // Slugma - 229, // Houndoom - 166, // Ledian - 79, // Slowpoke - 137, // Porygon - 262, // Mightyena - 193, // Yanma - 22, // Fearow - 185, // Sudowoodo - 119, // Seaking - 286, // Breloom - 84, // Doduo - 18, // Pidgeot - 363, // Spheal - 36, // Clefable - 380, // Latias - 310, // Manectric - 335, // Zangoose - 141, // Kabutops - 94, // Gengar - 294, // Loudred - 124, // Jynx - 164, // Noctowl - 203, // Girafarig - 371, // Bagon - 126, // Magmar - 105, // Marowak - 72, // Tentacool - 288, // Vigoroth - 242, // Blissey - 359, // Absol - 65, // Alakazam - 237, // Hitmontop - 282, // Gardevoir - 210, // Granbull - 106, // Hitmonlee - 107, // Hitmonchan - 227, // Skarmory - 331, // Cacnea - 257, // Blaziken - 254, // Sceptile - 336, // Seviper - 366, // Clamperl - 145, // Zapdos - 214, // Heracross - 62, // Poliwrath - 122, // Mr. mime - 127, // Pinsir - 272, // Ludicolo - 73, // Tentacruel - 42, // Golbat - 219, // Magcargo - 144, // Articuno - 221, // Piloswine - 123, // Scyther - 64, // Kadabra - 235, // Smeargle - 142, // Aerodactyl - 275, // Shiftry - 99, // Kingler - 31, // Nidoqueen - 82, // Magneton - 304, // Aron - 381, // Latios - 146, // Moltres - 346, // Cradily - 386, // Deoxys - 181, // Ampharos - 34, // Nidoking - 207, // Gligar - 24, // Arbok - 108, // Lickitung - 101, // Electrode - 348, // Armaldo - 67, // Machoke - 234, // Stantler - 326, // Grumpig - 246, // Larvitar - 169, // Crobat - 195, // Quagsire - 241, // Miltank - 97, // Hypno - 55, // Golduck - 332, // Cacturne - 80, // Slowbro - 157, // Typhlosion - 199, // Slowking - 115, // Kangaskhan - 121, // Starmie - 317, // Swalot - 324, // Torkoal - 260, // Swampert - 330, // Flygon - 295, // Exploud - 85, // Dodrio - 9, // Blastoise - 296, // Makuhita - 364, // Sealeo - 128, // Tauros - 319, // Sharpedo - 160, // Feraligatr - 86, // Seel - 6, // Charizard - 78, // Rapidash - 374, // Beldum - 299, // Nosepass - 3, // Venusaur - 357, // Tropius - 154, // Meganium - 373, // Salamence - 75, // Graveler - 344, // Claydol - 372, // Shelgon - 111, // Rhyhorn - 212, // Scizor - 87, // Dewgong - 112, // Rhydon - 232, // Donphan - 103, // Exeggutor - 305, // Lairon - 150, // Mewtwo - 217, // Ursaring - 205, // Forretress - 68, // Machamp - 320, // Wailmer - 289, // Slaking - 91, // Cloyster - 365, // Walrein - 247, // Pupitar - 230, // Kingdra - 338, // Solrock - 59, // Arcanine - 350, // Milotic - 337, // Lunatone - 378, // Regice - 243, // Raikou - 245, // Suicune - 244, // Entei - 250, // Ho-Oh - 248, // Tyranitar - 375, // Metang - 379, // Registeel - 384, // Rayquaza - 95, // Onix - 149, // Dragonite - 249, // Lugia - 131, // Lapras - 323, // Camerupt - 226, // Mantine - 377, // Regirock - 130, // Gyarados - 297, // Hariyama - 362, // Glalie - 76, // Golem - 382, // Kyogre - 306, // Aggron - 321, // Wailord - 208, // Steelix - 143, // Snorlax - 376, // Metagross - 383, // Groudon -}; - -const u16 gPokedexOrder_Height[] = -{ - 50, // Diglett - 298, // Azurill - 177, // Natu - 13, // Weedle - 172, // Pichu - 173, // Cleffa - 175, // Togepi - 351, // Castform - 174, // Igglybuff - 10, // Caterpie - 276, // Taillow - 132, // Ditto - 133, // Eevee - 315, // Roselia - 21, // Spearow - 16, // Pidgey - 191, // Sunkern - 90, // Shellder - 19, // Rattata - 81, // Magnemite - 46, // Paras - 265, // Wurmple - 385, // Jirachi - 104, // Cubone - 258, // Mudkip - 194, // Wooper - 116, // Horsea - 52, // Meowth - 29, // Nidoran? - 220, // Swinub - 151, // Mew - 333, // Swablu - 304, // Aron - 311, // Plusle - 312, // Minun - 102, // Exeggcute - 25, // Pikachu - 182, // Bellossom - 316, // Gulpin - 263, // Zigzagoon - 285, // Shroomish - 138, // Omanyte - 331, // Cacnea - 98, // Krabby - 280, // Ralts - 187, // Hoppip - 255, // Torchic - 366, // Clamperl - 74, // Geodude - 183, // Marill - 339, // Barboach - 238, // Smoochum - 100, // Voltorb - 290, // Nincada - 302, // Sableye - 198, // Murkrow - 211, // Qwilfish - 7, // Squirtle - 252, // Treecko - 343, // Baltoy - 43, // Oddish - 270, // Lotad - 39, // Jigglypuff - 283, // Surskit - 155, // Cyndaquil - 140, // Kabuto - 264, // Linoone - 324, // Torkoal - 32, // Nidoran? - 167, // Spinarak - 56, // Mankey - 273, // Seedot - 261, // Poochyena - 231, // Phanpy - 201, // Unown - 170, // Chinchou - 233, // Porygon2 - 60, // Poliwag - 371, // Bagon - 349, // Feebas - 353, // Shuppet - 158, // Totodile - 251, // Celebi - 360, // Wynaut - 27, // Sandshrew - 358, // Chimecho - 370, // Luvdisc - 228, // Houndour - 266, // Silcoon - 309, // Electrike - 4, // Charmander - 307, // Meditite - 278, // Wingull - 223, // Remoraid - 341, // Corphish - 222, // Corsola - 314, // Illumise - 209, // Snubbull - 37, // Vulpix - 246, // Larvitar - 374, // Beldum - 293, // Whismur - 204, // Pineco - 239, // Elekid - 35, // Clefairy - 213, // Shuckle - 216, // Teddiursa - 14, // Kakuna - 300, // Skitty - 176, // Togetic - 118, // Goldeen - 303, // Mawile - 179, // Mareep - 188, // Skiploom - 109, // Koffing - 51, // Dugtrio - 268, // Cascoon - 322, // Numel - 347, // Anorith - 313, // Volbeat - 163, // Hoothoot - 328, // Trapinch - 325, // Spoink - 11, // Metapod - 69, // Bellsprout - 361, // Snorunt - 20, // Raticate - 259, // Marshtomp - 277, // Swellow - 240, // Magby - 58, // Growlithe - 200, // Misdreavus - 1, // Bulbasaur - 236, // Tyrogue - 218, // Slugma - 287, // Slakoth - 281, // Kirlia - 190, // Aipom - 135, // Jolteon - 30, // Nidorina - 184, // Azumarill - 292, // Shedinja - 66, // Machop - 291, // Ninjask - 284, // Masquerain - 355, // Duskull - 192, // Sunflora - 189, // Jumpluff - 120, // Staryu - 180, // Flaaffy - 363, // Spheal - 54, // Psyduck - 219, // Magcargo - 83, // Farfetch'd - 41, // Zubat - 137, // Porygon - 161, // Sentret - 318, // Carvanha - 44, // Gloom - 26, // Raichu - 129, // Magikarp - 215, // Sneasel - 305, // Lairon - 256, // Combusken - 224, // Octillery - 33, // Nidorino - 136, // Flareon - 225, // Delibird - 72, // Tentacool - 63, // Abra - 253, // Grovyle - 340, // Whiscash - 156, // Quilava - 196, // Espeon - 88, // Grimer - 152, // Chikorita - 326, // Grumpig - 299, // Nosepass - 53, // Persian - 262, // Mightyena - 48, // Venonat - 82, // Magneton - 77, // Ponyta - 296, // Makuhita - 337, // Lunatone - 28, // Sandslash - 96, // Drowzee - 114, // Tangela - 57, // Primeape - 165, // Ledyba - 40, // Wigglytuff - 47, // Parasect - 139, // Omastar - 294, // Loudred - 8, // Wartortle - 75, // Graveler - 197, // Umbreon - 345, // Lileep - 61, // Poliwhirl - 134, // Vaporeon - 15, // Beedrill - 105, // Marowak - 70, // Weepinbell - 369, // Relicanth - 111, // Rhyhorn - 2, // Ivysaur - 352, // Kecleon - 274, // Nuzleaf - 267, // Beautifly - 17, // Pidgeotto - 168, // Ariados - 86, // Seel - 186, // Politoed - 159, // Croconaw - 113, // Chansey - 354, // Banette - 232, // Donphan - 121, // Starmie - 5, // Charmeleon - 221, // Piloswine - 12, // Butterfree - 329, // Vibrava - 125, // Electabuzz - 342, // Crawdaunt - 301, // Delcatty - 334, // Altaria - 372, // Shelgon - 38, // Ninetales - 207, // Gligar - 364, // Sealeo - 327, // Spinda - 247, // Pupitar - 79, // Slowpoke - 338, // Solrock - 241, // Miltank - 22, // Fearow - 45, // Vileplume - 89, // Muk - 205, // Forretress - 185, // Sudowoodo - 359, // Absol - 193, // Yanma - 269, // Dustox - 108, // Lickitung - 235, // Smeargle - 171, // Lanturn - 101, // Electrode - 271, // Lombre - 286, // Breloom - 153, // Bayleef - 117, // Seadra - 110, // Weezing - 279, // Pelipper - 375, // Metang - 31, // Nidoqueen - 332, // Cacturne - 275, // Shiftry - 308, // Medicham - 335, // Zangoose - 141, // Kabutops - 99, // Kingler - 64, // Kadabra - 119, // Seaking - 36, // Clefable - 126, // Magmar - 202, // Wobbuffet - 92, // Gastly - 122, // Mr. mime - 62, // Poliwrath - 128, // Tauros - 380, // Latias - 181, // Ampharos - 288, // Vigoroth - 166, // Ledian - 76, // Golem - 365, // Walrein - 84, // Doduo - 229, // Houndoom - 34, // Nidoking - 124, // Jynx - 107, // Hitmonchan - 234, // Stantler - 210, // Granbull - 237, // Hitmontop - 195, // Quagsire - 344, // Claydol - 260, // Swampert - 242, // Blissey - 272, // Ludicolo - 295, // Exploud - 206, // Dunsparce - 127, // Pinsir - 91, // Cloyster - 67, // Machoke - 203, // Girafarig - 18, // Pidgeot - 178, // Xatu - 346, // Cradily - 106, // Hitmonlee - 49, // Venomoth - 94, // Gengar - 214, // Heracross - 362, // Glalie - 123, // Scyther - 373, // Salamence - 310, // Manectric - 348, // Armaldo - 65, // Alakazam - 97, // Hypno - 164, // Noctowl - 73, // Tentacruel - 356, // Dusclops - 145, // Zapdos - 42, // Golbat - 376, // Metagross - 282, // Gardevoir - 9, // Blastoise - 80, // Slowbro - 93, // Haunter - 68, // Machamp - 377, // Regirock - 317, // Swalot - 254, // Sceptile - 227, // Skarmory - 55, // Golduck - 386, // Deoxys - 71, // Victreebel - 78, // Rapidash - 6, // Charizard - 367, // Huntail - 87, // Dewgong - 144, // Articuno - 157, // Typhlosion - 142, // Aerodactyl - 368, // Gorebyss - 217, // Ursaring - 154, // Meganium - 378, // Regice - 212, // Scizor - 230, // Kingdra - 147, // Dratini - 85, // Dodrio - 319, // Sharpedo - 169, // Crobat - 162, // Furret - 59, // Arcanine - 243, // Raikou - 257, // Blaziken - 323, // Camerupt - 112, // Rhydon - 379, // Registeel - 23, // Ekans - 330, // Flygon - 357, // Tropius - 381, // Latios - 245, // Suicune - 146, // Moltres - 3, // Venusaur - 103, // Exeggutor - 199, // Slowking - 248, // Tyranitar - 289, // Slaking - 320, // Wailmer - 150, // Mewtwo - 306, // Aggron - 143, // Snorlax - 226, // Mantine - 244, // Entei - 149, // Dragonite - 115, // Kangaskhan - 297, // Hariyama - 160, // Feraligatr - 131, // Lapras - 336, // Seviper - 24, // Arbok - 383, // Groudon - 250, // Ho-Oh - 148, // Dragonair - 382, // Kyogre - 249, // Lugia - 350, // Milotic - 130, // Gyarados - 384, // Rayquaza - 95, // Onix - 208, // Steelix - 321, // Wailord -}; - -#endif // GUARD_DATA_POKEDEX_ORDERS diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h index bc6572b46..078304888 100644 --- a/src/data/pokemon/base_stats.h +++ b/src/data/pokemon/base_stats.h @@ -1,6 +1,3 @@ -#ifndef GUARD_BASE_STATS_H -#define GUARD_BASE_STATS_H - // Maximum value for a female pokemon is 254 (MON_FEMALE) which is 100% female. // 255 (MON_GENDERLESS) is reserved for genderless pokemon. #define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100)) @@ -13572,5 +13569,3 @@ const struct BaseStats gBaseStats[] = .noFlip = FALSE, } }; - -#endif //GUARD_BASE_STATS_H diff --git a/src/data/pokemon/cry_ids.h b/src/data/pokemon/cry_ids.h index 1c1c32dde..e53ffd2a8 100644 --- a/src/data/pokemon/cry_ids.h +++ b/src/data/pokemon/cry_ids.h @@ -1,143 +1,138 @@ -#ifndef POKEEMERALD_CRY_IDS_H -#define POKEEMERALD_CRY_IDS_H - const u16 gSpeciesIdToCryId[] = { - 273, // TREECKO - 274, // GROVYLE - 275, // SCEPTILE - 270, // TORCHIC - 271, // COMBUSKEN - 272, // BLAZIKEN - 276, // MUDKIP - 277, // MARSHTOMP - 278, // SWAMPERT - 359, // POOCHYENA - 360, // MIGHTYENA - 378, // ZIGZAGOON - 375, // LINOONE - 290, // WURMPLE - 291, // SILCOON - 292, // BEAUTIFLY - 293, // CASCOON - 294, // DUSTOX - 283, // LOTAD - 284, // LOMBRE - 285, // LUDICOLO - 286, // SEEDOT - 287, // NUZLEAF - 288, // SHIFTRY - 301, // NINCADA - 302, // NINJASK - 303, // SHEDINJA - 266, // TAILLOW - 267, // SWELLOW - 374, // SHROOMISH - 373, // BRELOOM - 269, // SPINDA - 280, // WINGULL - 279, // PELIPPER - 310, // SURSKIT - 311, // MASQUERAIN - 377, // WAILMER - 381, // WAILORD - 312, // SKITTY - 313, // DELCATTY - 251, // KECLEON - 329, // BALTOY - 330, // CLAYDOL - 306, // NOSEPASS - 253, // TORKOAL - 362, // SABLEYE - 318, // BARBOACH - 319, // WHISCASH - 368, // LUVDISC - 320, // CORPHISH - 321, // CRAWDAUNT - 333, // FEEBAS - 334, // MILOTIC - 289, // CARVANHA - 260, // SHARPEDO - 324, // TRAPINCH - 325, // VIBRAVA - 326, // FLYGON - 304, // MAKUHITA - 305, // HARIYAMA - 254, // ELECTRIKE - 255, // MANECTRIC - 316, // NUMEL - 317, // CAMERUPT - 338, // SPHEAL - 339, // SEALEO - 340, // WALREIN - 327, // CACNEA - 328, // CACTURNE - 383, // SNORUNT - 307, // GLALIE - 331, // LUNATONE - 332, // SOLROCK - 262, // AZURILL - 322, // SPOINK - 323, // GRUMPIG - 308, // PLUSLE - 309, // MINUN - 363, // MAWILE - 336, // MEDITITE - 337, // MEDICHAM - 263, // SWABLU - 264, // ALTARIA - 258, // WYNAUT - 256, // DUSKULL - 361, // DUSCLOPS - 252, // ROSELIA - 298, // SLAKOTH - 299, // VIGOROTH - 300, // SLAKING - 314, // GULPIN - 315, // SWALOT - 376, // TROPIUS - 382, // WHISMUR - 380, // LOUDRED - 379, // EXPLOUD - 341, // CLAMPERL - 342, // HUNTAIL - 343, // GOREBYSS - 335, // ABSOL - 282, // SHUPPET - 281, // BANETTE - 259, // SEVIPER - 261, // ZANGOOSE - 367, // RELICANTH - 364, // ARON - 365, // LAIRON - 366, // AGGRON - 356, // CASTFORM - 357, // VOLBEAT - 358, // ILLUMISE - 344, // LILEEP - 345, // CRADILY - 346, // ANORITH - 347, // ARMALDO - 295, // RALTS - 296, // KIRLIA - 297, // GARDEVOIR - 351, // BAGON - 352, // SHELGON - 372, // SALAMENCE - 348, // BELDUM - 349, // METANG - 350, // METAGROSS - 353, // REGIROCK - 354, // REGICE - 355, // REGISTEEL - 370, // KYOGRE - 369, // GROUDON - 371, // RAYQUAZA - 257, // LATIAS - 384, // LATIOS - 385, // JIRACHI - 386, // DEOXYS - 387 // CHIMECHO + [SPECIES_TREECKO - 277] = 273, + [SPECIES_GROVYLE - 277] = 274, + [SPECIES_SCEPTILE - 277] = 275, + [SPECIES_TORCHIC - 277] = 270, + [SPECIES_COMBUSKEN - 277] = 271, + [SPECIES_BLAZIKEN - 277] = 272, + [SPECIES_MUDKIP - 277] = 276, + [SPECIES_MARSHTOMP - 277] = 277, + [SPECIES_SWAMPERT - 277] = 278, + [SPECIES_POOCHYENA - 277] = 359, + [SPECIES_MIGHTYENA - 277] = 360, + [SPECIES_ZIGZAGOON - 277] = 378, + [SPECIES_LINOONE - 277] = 375, + [SPECIES_WURMPLE - 277] = 290, + [SPECIES_SILCOON - 277] = 291, + [SPECIES_BEAUTIFLY - 277] = 292, + [SPECIES_CASCOON - 277] = 293, + [SPECIES_DUSTOX - 277] = 294, + [SPECIES_LOTAD - 277] = 283, + [SPECIES_LOMBRE - 277] = 284, + [SPECIES_LUDICOLO - 277] = 285, + [SPECIES_SEEDOT - 277] = 286, + [SPECIES_NUZLEAF - 277] = 287, + [SPECIES_SHIFTRY - 277] = 288, + [SPECIES_NINCADA - 277] = 301, + [SPECIES_NINJASK - 277] = 302, + [SPECIES_SHEDINJA - 277] = 303, + [SPECIES_TAILLOW - 277] = 266, + [SPECIES_SWELLOW - 277] = 267, + [SPECIES_SHROOMISH - 277] = 374, + [SPECIES_BRELOOM - 277] = 373, + [SPECIES_SPINDA - 277] = 269, + [SPECIES_WINGULL - 277] = 280, + [SPECIES_PELIPPER - 277] = 279, + [SPECIES_SURSKIT - 277] = 310, + [SPECIES_MASQUERAIN - 277] = 311, + [SPECIES_WAILMER - 277] = 377, + [SPECIES_WAILORD - 277] = 381, + [SPECIES_SKITTY - 277] = 312, + [SPECIES_DELCATTY - 277] = 313, + [SPECIES_KECLEON - 277] = 251, + [SPECIES_BALTOY - 277] = 329, + [SPECIES_CLAYDOL - 277] = 330, + [SPECIES_NOSEPASS - 277] = 306, + [SPECIES_TORKOAL - 277] = 253, + [SPECIES_SABLEYE - 277] = 362, + [SPECIES_BARBOACH - 277] = 318, + [SPECIES_WHISCASH - 277] = 319, + [SPECIES_LUVDISC - 277] = 368, + [SPECIES_CORPHISH - 277] = 320, + [SPECIES_CRAWDAUNT - 277] = 321, + [SPECIES_FEEBAS - 277] = 333, + [SPECIES_MILOTIC - 277] = 334, + [SPECIES_CARVANHA - 277] = 289, + [SPECIES_SHARPEDO - 277] = 260, + [SPECIES_TRAPINCH - 277] = 324, + [SPECIES_VIBRAVA - 277] = 325, + [SPECIES_FLYGON - 277] = 326, + [SPECIES_MAKUHITA - 277] = 304, + [SPECIES_HARIYAMA - 277] = 305, + [SPECIES_ELECTRIKE - 277] = 254, + [SPECIES_MANECTRIC - 277] = 255, + [SPECIES_NUMEL - 277] = 316, + [SPECIES_CAMERUPT - 277] = 317, + [SPECIES_SPHEAL - 277] = 338, + [SPECIES_SEALEO - 277] = 339, + [SPECIES_WALREIN - 277] = 340, + [SPECIES_CACNEA - 277] = 327, + [SPECIES_CACTURNE - 277] = 328, + [SPECIES_SNORUNT - 277] = 383, + [SPECIES_GLALIE - 277] = 307, + [SPECIES_LUNATONE - 277] = 331, + [SPECIES_SOLROCK - 277] = 332, + [SPECIES_AZURILL - 277] = 262, + [SPECIES_SPOINK - 277] = 322, + [SPECIES_GRUMPIG - 277] = 323, + [SPECIES_PLUSLE - 277] = 308, + [SPECIES_MINUN - 277] = 309, + [SPECIES_MAWILE - 277] = 363, + [SPECIES_MEDITITE - 277] = 336, + [SPECIES_MEDICHAM - 277] = 337, + [SPECIES_SWABLU - 277] = 263, + [SPECIES_ALTARIA - 277] = 264, + [SPECIES_WYNAUT - 277] = 258, + [SPECIES_DUSKULL - 277] = 256, + [SPECIES_DUSCLOPS - 277] = 361, + [SPECIES_ROSELIA - 277] = 252, + [SPECIES_SLAKOTH - 277] = 298, + [SPECIES_VIGOROTH - 277] = 299, + [SPECIES_SLAKING - 277] = 300, + [SPECIES_GULPIN - 277] = 314, + [SPECIES_SWALOT - 277] = 315, + [SPECIES_TROPIUS - 277] = 376, + [SPECIES_WHISMUR - 277] = 382, + [SPECIES_LOUDRED - 277] = 380, + [SPECIES_EXPLOUD - 277] = 379, + [SPECIES_CLAMPERL - 277] = 341, + [SPECIES_HUNTAIL - 277] = 342, + [SPECIES_GOREBYSS - 277] = 343, + [SPECIES_ABSOL - 277] = 335, + [SPECIES_SHUPPET - 277] = 282, + [SPECIES_BANETTE - 277] = 281, + [SPECIES_SEVIPER - 277] = 259, + [SPECIES_ZANGOOSE - 277] = 261, + [SPECIES_RELICANTH - 277] = 367, + [SPECIES_ARON - 277] = 364, + [SPECIES_LAIRON - 277] = 365, + [SPECIES_AGGRON - 277] = 366, + [SPECIES_CASTFORM - 277] = 356, + [SPECIES_VOLBEAT - 277] = 357, + [SPECIES_ILLUMISE - 277] = 358, + [SPECIES_LILEEP - 277] = 344, + [SPECIES_CRADILY - 277] = 345, + [SPECIES_ANORITH - 277] = 346, + [SPECIES_ARMALDO - 277] = 347, + [SPECIES_RALTS - 277] = 295, + [SPECIES_KIRLIA - 277] = 296, + [SPECIES_GARDEVOIR - 277] = 297, + [SPECIES_BAGON - 277] = 351, + [SPECIES_SHELGON - 277] = 352, + [SPECIES_SALAMENCE - 277] = 372, + [SPECIES_BELDUM - 277] = 348, + [SPECIES_METANG - 277] = 349, + [SPECIES_METAGROSS - 277] = 350, + [SPECIES_REGIROCK - 277] = 353, + [SPECIES_REGICE - 277] = 354, + [SPECIES_REGISTEEL - 277] = 355, + [SPECIES_KYOGRE - 277] = 370, + [SPECIES_GROUDON - 277] = 369, + [SPECIES_RAYQUAZA - 277] = 371, + [SPECIES_LATIAS - 277] = 257, + [SPECIES_LATIOS - 277] = 384, + [SPECIES_JIRACHI - 277] = 385, + [SPECIES_DEOXYS - 277] = 386, + [SPECIES_CHIMECHO - 277] = 387, }; - -#endif //POKEEMERALD_CRY_IDS_H diff --git a/src/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h index 3d74868b4..f8c250c6d 100644 --- a/src/data/pokemon/egg_moves.h +++ b/src/data/pokemon/egg_moves.h @@ -1,12 +1,7 @@ -#ifndef POKEEMERALD_DAYCARE_H -#define POKEEMERALD_DAYCARE_H - #define EGG_MOVES_SPECIES_OFFSET 20000 #define EGG_MOVES_TERMINATOR 0xFFFF #define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves -#endif // POKEEMERALD_DAYCARE_H - const u16 gEggMoves[] = { egg_moves(BULBASAUR, MOVE_LIGHT_SCREEN, diff --git a/src/data/pokemon/evolution.h b/src/data/pokemon/evolution.h index 8629ac9b1..c9b0cf716 100644 --- a/src/data/pokemon/evolution.h +++ b/src/data/pokemon/evolution.h @@ -1,6 +1,3 @@ -#ifndef POKEEMERALD_EVOLUTION_H -#define POKEEMERALD_EVOLUTION_H - const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] = { [SPECIES_BULBASAUR] = {{EVO_LEVEL, 16, SPECIES_IVYSAUR}}, @@ -188,5 +185,3 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] = [SPECIES_BELDUM] = {{EVO_LEVEL, 20, SPECIES_METANG}}, [SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}}, }; - -#endif //POKEEMERALD_EVOLUTION_H diff --git a/src/data/pokemon/experience_tables.h b/src/data/pokemon/experience_tables.h index 9fd5a2fae..15bcadeb2 100644 --- a/src/data/pokemon/experience_tables.h +++ b/src/data/pokemon/experience_tables.h @@ -1,6 +1,3 @@ -#ifndef POKEEMERALD_EXPERIENCE_TABLES_H -#define POKEEMERALD_EXPERIENCE_TABLES_H - #define SQUARE(n)(n * n) #define CUBE(n)(n * n * n) @@ -845,5 +842,3 @@ const u32 gExperienceTables[][MAX_LEVEL + 1] = EXP_MEDIUM_FAST(100), } }; - -#endif //POKEEMERALD_EXPERIENCE_TABLES_H diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index 6ba0d694e..9f5720a66 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -1,6 +1,3 @@ -#ifndef GUARD_ITEM_EFFECTS_H -#define GUARD_ITEM_EFFECTS_H - const u8 gItemEffect_Potion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20}; const u8 gItemEffect_Antidote[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00}; const u8 gItemEffect_BurnHeal[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00}; @@ -237,5 +234,3 @@ const u8 *const gItemEffectTable[] = NULL, NULL }; - -#endif //GUARD_ITEM_EFFECTS_H diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h index 0f648526c..5ac7b3bd7 100644 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -1,6 +1,3 @@ -#ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H -#define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H - const u16 *const gLevelUpLearnsets[NUM_SPECIES] = { [SPECIES_NONE] = sBulbasaurLevelUpLearnset, @@ -416,5 +413,3 @@ const u16 *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_DEOXYS] = sDeoxysLevelUpLearnset, [SPECIES_CHIMECHO] = sChimechoLevelUpLearnset, }; - -#endif //POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index 062873aee..727cc0959 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -1,6 +1,3 @@ -#ifndef POKEEMERALD_LEVEL_UP_LEARNSETS_H -#define POKEEMERALD_LEVEL_UP_LEARNSETS_H - #define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move) #define LEVEL_UP_END 0xffff @@ -5619,5 +5616,3 @@ static const u16 sChimechoLevelUpLearnset[] = { LEVEL_UP_MOVE(46, MOVE_PSYCHIC), LEVEL_UP_END }; - -#endif //POKEEMERALD_LEVEL_UP_LEARNSETS_H diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h index acf6506bd..007c73248 100644 --- a/src/data/pokemon/pokedex_entries.h +++ b/src/data/pokemon/pokedex_entries.h @@ -1,6 +1,7 @@ const struct PokedexEntry gPokedexEntries[] = { - { //Dummy + [NATIONAL_DEX_NONE] = + { .categoryName = _("UNKNOWN"), .height = 0, .weight = 0, @@ -10,7 +11,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Bulbasaur + + [NATIONAL_DEX_BULBASAUR] = + { .categoryName = _("SEED"), .height = 7, .weight = 69, @@ -20,7 +23,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ivysaur + + [NATIONAL_DEX_IVYSAUR] = + { .categoryName = _("SEED"), .height = 10, .weight = 130, @@ -30,7 +35,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Venusaur + + [NATIONAL_DEX_VENUSAUR] = + { .categoryName = _("SEED"), .height = 20, .weight = 1000, @@ -40,7 +47,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 388, .trainerOffset = 6, }, - { //Charmander + + [NATIONAL_DEX_CHARMANDER] = + { .categoryName = _("LIZARD"), .height = 6, .weight = 85, @@ -50,7 +59,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Charmeleon + + [NATIONAL_DEX_CHARMELEON] = + { .categoryName = _("FLAME"), .height = 11, .weight = 190, @@ -60,7 +71,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Charizard + + [NATIONAL_DEX_CHARIZARD] = + { .categoryName = _("FLAME"), .height = 17, .weight = 905, @@ -70,7 +83,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 302, .trainerOffset = 3, }, - { //Squirtle + + [NATIONAL_DEX_SQUIRTLE] = + { .categoryName = _("TINY TURTLE"), .height = 5, .weight = 90, @@ -80,7 +95,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Wartortle + + [NATIONAL_DEX_WARTORTLE] = + { .categoryName = _("TURTLE"), .height = 10, .weight = 225, @@ -90,7 +107,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Blastoise + + [NATIONAL_DEX_BLASTOISE] = + { .categoryName = _("SHELLFISH"), .height = 16, .weight = 855, @@ -100,7 +119,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 293, .trainerOffset = 2, }, - { //Caterpie + + [NATIONAL_DEX_CATERPIE] = + { .categoryName = _("WORM"), .height = 3, .weight = 29, @@ -110,7 +131,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Metapod + + [NATIONAL_DEX_METAPOD] = + { .categoryName = _("COCOON"), .height = 7, .weight = 99, @@ -120,7 +143,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Butterfree + + [NATIONAL_DEX_BUTTERFREE] = + { .categoryName = _("BUTTERFLY"), .height = 11, .weight = 320, @@ -130,7 +155,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Weedle + + [NATIONAL_DEX_WEEDLE] = + { .categoryName = _("HAIRY BUG"), .height = 3, .weight = 32, @@ -140,7 +167,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kakuna + + [NATIONAL_DEX_KAKUNA] = + { .categoryName = _("COCOON"), .height = 6, .weight = 100, @@ -150,7 +179,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Beedrill + + [NATIONAL_DEX_BEEDRILL] = + { .categoryName = _("POISON BEE"), .height = 10, .weight = 295, @@ -160,7 +191,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pidgey + + [NATIONAL_DEX_PIDGEY] = + { .categoryName = _("TINY BIRD"), .height = 3, .weight = 18, @@ -170,7 +203,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pidgeotto + + [NATIONAL_DEX_PIDGEOTTO] = + { .categoryName = _("BIRD"), .height = 11, .weight = 300, @@ -180,7 +215,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pidgeot + + [NATIONAL_DEX_PIDGEOT] = + { .categoryName = _("BIRD"), .height = 15, .weight = 395, @@ -190,7 +227,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Rattata + + [NATIONAL_DEX_RATTATA] = + { .categoryName = _("MOUSE"), .height = 3, .weight = 35, @@ -200,7 +239,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Raticate + + [NATIONAL_DEX_RATICATE] = + { .categoryName = _("MOUSE"), .height = 7, .weight = 185, @@ -210,7 +251,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Spearow + + [NATIONAL_DEX_SPEAROW] = + { .categoryName = _("TINY BIRD"), .height = 3, .weight = 20, @@ -220,7 +263,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Fearow + + [NATIONAL_DEX_FEAROW] = + { .categoryName = _("BEAK"), .height = 12, .weight = 380, @@ -230,7 +275,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ekans + + [NATIONAL_DEX_EKANS] = + { .categoryName = _("SNAKE"), .height = 20, .weight = 69, @@ -240,7 +287,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Arbok + + [NATIONAL_DEX_ARBOK] = + { .categoryName = _("COBRA"), .height = 35, .weight = 650, @@ -250,7 +299,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 296, .trainerOffset = 2, }, - { //Pikachu + + [NATIONAL_DEX_PIKACHU] = + { .categoryName = _("MOUSE"), .height = 4, .weight = 60, @@ -260,7 +311,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Raichu + + [NATIONAL_DEX_RAICHU] = + { .categoryName = _("MOUSE"), .height = 8, .weight = 300, @@ -270,7 +323,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sandshrew + + [NATIONAL_DEX_SANDSHREW] = + { .categoryName = _("MOUSE"), .height = 6, .weight = 120, @@ -280,7 +335,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sandslash + + [NATIONAL_DEX_SANDSLASH] = + { .categoryName = _("MOUSE"), .height = 10, .weight = 295, @@ -290,7 +347,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //NidoranF + + [NATIONAL_DEX_NIDORAN_F] = + { .categoryName = _("POISON PIN"), .height = 4, .weight = 70, @@ -300,7 +359,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Nidorina + + [NATIONAL_DEX_NIDORINA] = + { .categoryName = _("POISON PIN"), .height = 8, .weight = 200, @@ -310,7 +371,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Nidoqueen + + [NATIONAL_DEX_NIDOQUEEN] = + { .categoryName = _("DRILL"), .height = 13, .weight = 600, @@ -320,7 +383,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //NidoranM + + [NATIONAL_DEX_NIDORAN_M] = + { .categoryName = _("POISON PIN"), .height = 5, .weight = 90, @@ -330,7 +395,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Nidorino + + [NATIONAL_DEX_NIDORINO] = + { .categoryName = _("POISON PIN"), .height = 9, .weight = 195, @@ -340,7 +407,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Nidoking + + [NATIONAL_DEX_NIDOKING] = + { .categoryName = _("DRILL"), .height = 14, .weight = 620, @@ -350,7 +419,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Clefairy + + [NATIONAL_DEX_CLEFAIRY] = + { .categoryName = _("FAIRY"), .height = 6, .weight = 75, @@ -360,7 +431,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Clefable + + [NATIONAL_DEX_CLEFABLE] = + { .categoryName = _("FAIRY"), .height = 13, .weight = 400, @@ -370,7 +443,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Vulpix + + [NATIONAL_DEX_VULPIX] = + { .categoryName = _("FOX"), .height = 6, .weight = 99, @@ -380,7 +455,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ninetales + + [NATIONAL_DEX_NINETALES] = + { .categoryName = _("FOX"), .height = 11, .weight = 199, @@ -390,7 +467,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Jigglypuff + + [NATIONAL_DEX_JIGGLYPUFF] = + { .categoryName = _("BALLOON"), .height = 5, .weight = 55, @@ -400,7 +479,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Wigglytuff + + [NATIONAL_DEX_WIGGLYTUFF] = + { .categoryName = _("BALLOON"), .height = 10, .weight = 120, @@ -410,7 +491,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Zubat + + [NATIONAL_DEX_ZUBAT] = + { .categoryName = _("BAT"), .height = 8, .weight = 75, @@ -420,7 +503,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Golbat + + [NATIONAL_DEX_GOLBAT] = + { .categoryName = _("BAT"), .height = 16, .weight = 550, @@ -430,7 +515,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Oddish + + [NATIONAL_DEX_ODDISH] = + { .categoryName = _("WEED"), .height = 5, .weight = 54, @@ -440,7 +527,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Gloom + + [NATIONAL_DEX_GLOOM] = + { .categoryName = _("WEED"), .height = 8, .weight = 86, @@ -450,7 +539,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Vileplume + + [NATIONAL_DEX_VILEPLUME] = + { .categoryName = _("FLOWER"), .height = 12, .weight = 186, @@ -460,7 +551,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Paras + + [NATIONAL_DEX_PARAS] = + { .categoryName = _("MUSHROOM"), .height = 3, .weight = 54, @@ -470,7 +563,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Parasect + + [NATIONAL_DEX_PARASECT] = + { .categoryName = _("MUSHROOM"), .height = 10, .weight = 295, @@ -480,7 +575,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Venonat + + [NATIONAL_DEX_VENONAT] = + { .categoryName = _("INSECT"), .height = 10, .weight = 300, @@ -490,7 +587,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = -1, }, - { //Venomoth + + [NATIONAL_DEX_VENOMOTH] = + { .categoryName = _("POISON MOTH"), .height = 15, .weight = 125, @@ -500,7 +599,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 1, }, - { //Diglett + + [NATIONAL_DEX_DIGLETT] = + { .categoryName = _("MOLE"), .height = 2, .weight = 8, @@ -510,7 +611,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Dugtrio + + [NATIONAL_DEX_DUGTRIO] = + { .categoryName = _("MOLE"), .height = 7, .weight = 333, @@ -520,7 +623,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Meowth + + [NATIONAL_DEX_MEOWTH] = + { .categoryName = _("SCRATCH CAT"), .height = 4, .weight = 42, @@ -530,7 +635,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Persian + + [NATIONAL_DEX_PERSIAN] = + { .categoryName = _("CLASSY CAT"), .height = 10, .weight = 320, @@ -540,7 +647,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Psyduck + + [NATIONAL_DEX_PSYDUCK] = + { .categoryName = _("DUCK"), .height = 8, .weight = 196, @@ -550,7 +659,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Golduck + + [NATIONAL_DEX_GOLDUCK] = + { .categoryName = _("DUCK"), .height = 17, .weight = 766, @@ -560,7 +671,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 273, .trainerOffset = 1, }, - { //Mankey + + [NATIONAL_DEX_MANKEY] = + { .categoryName = _("PIG MONKEY"), .height = 5, .weight = 280, @@ -570,7 +683,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Primeape + + [NATIONAL_DEX_PRIMEAPE] = + { .categoryName = _("PIG MONKEY"), .height = 10, .weight = 320, @@ -580,7 +695,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Growlithe + + [NATIONAL_DEX_GROWLITHE] = + { .categoryName = _("PUPPY"), .height = 7, .weight = 190, @@ -590,7 +707,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Arcanine + + [NATIONAL_DEX_ARCANINE] = + { .categoryName = _("LEGENDARY"), .height = 19, .weight = 1550, @@ -600,7 +719,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 312, .trainerOffset = 4, }, - { //Poliwag + + [NATIONAL_DEX_POLIWAG] = + { .categoryName = _("TADPOLE"), .height = 6, .weight = 124, @@ -610,7 +731,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Poliwhirl + + [NATIONAL_DEX_POLIWHIRL] = + { .categoryName = _("TADPOLE"), .height = 10, .weight = 200, @@ -620,7 +743,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Poliwrath + + [NATIONAL_DEX_POLIWRATH] = + { .categoryName = _("TADPOLE"), .height = 13, .weight = 540, @@ -630,7 +755,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Abra + + [NATIONAL_DEX_ABRA] = + { .categoryName = _("PSI"), .height = 9, .weight = 195, @@ -640,7 +767,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kadabra + + [NATIONAL_DEX_KADABRA] = + { .categoryName = _("PSI"), .height = 13, .weight = 565, @@ -650,7 +779,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Alakazam + + [NATIONAL_DEX_ALAKAZAM] = + { .categoryName = _("PSI"), .height = 15, .weight = 480, @@ -660,7 +791,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Machop + + [NATIONAL_DEX_MACHOP] = + { .categoryName = _("SUPERPOWER"), .height = 8, .weight = 195, @@ -670,7 +803,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Machoke + + [NATIONAL_DEX_MACHOKE] = + { .categoryName = _("SUPERPOWER"), .height = 15, .weight = 705, @@ -680,7 +815,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 257, .trainerOffset = 0, }, - { //Machamp + + [NATIONAL_DEX_MACHAMP] = + { .categoryName = _("SUPERPOWER"), .height = 16, .weight = 1300, @@ -690,7 +827,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 269, .trainerOffset = -1, }, - { //Bellsprout + + [NATIONAL_DEX_BELLSPROUT] = + { .categoryName = _("FLOWER"), .height = 7, .weight = 40, @@ -700,7 +839,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Weepinbell + + [NATIONAL_DEX_WEEPINBELL] = + { .categoryName = _("FLYCATCHER"), .height = 10, .weight = 64, @@ -710,7 +851,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Victreebel + + [NATIONAL_DEX_VICTREEBEL] = + { .categoryName = _("FLYCATCHER"), .height = 17, .weight = 155, @@ -720,7 +863,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 312, .trainerOffset = 3, }, - { //Tentacool + + [NATIONAL_DEX_TENTACOOL] = + { .categoryName = _("JELLYFISH"), .height = 9, .weight = 455, @@ -730,7 +875,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Tentacruel + + [NATIONAL_DEX_TENTACRUEL] = + { .categoryName = _("JELLYFISH"), .height = 16, .weight = 550, @@ -740,7 +887,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 312, .trainerOffset = 1, }, - { //Geodude + + [NATIONAL_DEX_GEODUDE] = + { .categoryName = _("ROCK"), .height = 4, .weight = 200, @@ -750,7 +899,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Graveler + + [NATIONAL_DEX_GRAVELER] = + { .categoryName = _("ROCK"), .height = 10, .weight = 1050, @@ -760,7 +911,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Golem + + [NATIONAL_DEX_GOLEM] = + { .categoryName = _("MEGATON"), .height = 14, .weight = 3000, @@ -770,7 +923,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 296, .trainerOffset = 2, }, - { //Ponyta + + [NATIONAL_DEX_PONYTA] = + { .categoryName = _("FIRE HORSE"), .height = 10, .weight = 300, @@ -780,7 +935,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Rapidash + + [NATIONAL_DEX_RAPIDASH] = + { .categoryName = _("FIRE HORSE"), .height = 17, .weight = 950, @@ -790,7 +947,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 289, .trainerOffset = 1, }, - { //Slowpoke + + [NATIONAL_DEX_SLOWPOKE] = + { .categoryName = _("DOPEY"), .height = 12, .weight = 360, @@ -800,7 +959,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Slowbro + + [NATIONAL_DEX_SLOWBRO] = + { .categoryName = _("HERMIT CRAB"), .height = 16, .weight = 785, @@ -810,7 +971,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 296, .trainerOffset = 2, }, - { //Magnemite + + [NATIONAL_DEX_MAGNEMITE] = + { .categoryName = _("MAGNET"), .height = 3, .weight = 60, @@ -820,7 +983,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Magneton + + [NATIONAL_DEX_MAGNETON] = + { .categoryName = _("MAGNET"), .height = 10, .weight = 600, @@ -830,7 +995,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Farfetchd + + [NATIONAL_DEX_FARFETCHD] = + { .categoryName = _("WILD DUCK"), .height = 8, .weight = 150, @@ -840,7 +1007,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 293, .trainerOffset = 2, }, - { //Doduo + + [NATIONAL_DEX_DODUO] = + { .categoryName = _("TWIN BIRD"), .height = 14, .weight = 392, @@ -850,7 +1019,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 257, .trainerOffset = -1, }, - { //Dodrio + + [NATIONAL_DEX_DODRIO] = + { .categoryName = _("TRIPLE BIRD"), .height = 18, .weight = 852, @@ -860,7 +1031,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 268, .trainerOffset = 0, }, - { //Seel + + [NATIONAL_DEX_SEEL] = + { .categoryName = _("SEA LION"), .height = 11, .weight = 900, @@ -870,7 +1043,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Dewgong + + [NATIONAL_DEX_DEWGONG] = + { .categoryName = _("SEA LION"), .height = 17, .weight = 1200, @@ -880,7 +1055,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 275, .trainerOffset = 0, }, - { //Grimer + + [NATIONAL_DEX_GRIMER] = + { .categoryName = _("SLUDGE"), .height = 9, .weight = 300, @@ -890,7 +1067,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Muk + + [NATIONAL_DEX_MUK] = + { .categoryName = _("SLUDGE"), .height = 12, .weight = 300, @@ -900,7 +1079,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Shellder + + [NATIONAL_DEX_SHELLDER] = + { .categoryName = _("BIVALVE"), .height = 3, .weight = 40, @@ -910,7 +1091,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Cloyster + + [NATIONAL_DEX_CLOYSTER] = + { .categoryName = _("BIVALVE"), .height = 15, .weight = 1325, @@ -920,7 +1103,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 269, .trainerOffset = 1, }, - { //Gastly + + [NATIONAL_DEX_GASTLY] = + { .categoryName = _("GAS"), .height = 13, .weight = 1, @@ -930,7 +1115,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Haunter + + [NATIONAL_DEX_HAUNTER] = + { .categoryName = _("GAS"), .height = 16, .weight = 1, @@ -940,7 +1127,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 293, .trainerOffset = 2, }, - { //Gengar + + [NATIONAL_DEX_GENGAR] = + { .categoryName = _("SHADOW"), .height = 15, .weight = 405, @@ -950,7 +1139,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 302, .trainerOffset = 2, }, - { //Onix + + [NATIONAL_DEX_ONIX] = + { .categoryName = _("ROCK SNAKE"), .height = 88, .weight = 2100, @@ -960,7 +1151,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 515, .trainerOffset = 14, }, - { //Drowzee + + [NATIONAL_DEX_DROWZEE] = + { .categoryName = _("HYPNOSIS"), .height = 10, .weight = 324, @@ -970,7 +1163,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Hypno + + [NATIONAL_DEX_HYPNO] = + { .categoryName = _("HYPNOSIS"), .height = 16, .weight = 756, @@ -980,7 +1175,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 257, .trainerOffset = 0, }, - { //Krabby + + [NATIONAL_DEX_KRABBY] = + { .categoryName = _("RIVER CRAB"), .height = 4, .weight = 65, @@ -990,7 +1187,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kingler + + [NATIONAL_DEX_KINGLER] = + { .categoryName = _("PINCER"), .height = 13, .weight = 600, @@ -1000,7 +1199,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Voltorb + + [NATIONAL_DEX_VOLTORB] = + { .categoryName = _("BALL"), .height = 5, .weight = 104, @@ -1010,7 +1211,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Electrode + + [NATIONAL_DEX_ELECTRODE] = + { .categoryName = _("BALL"), .height = 12, .weight = 666, @@ -1020,7 +1223,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Exeggcute + + [NATIONAL_DEX_EXEGGCUTE] = + { .categoryName = _("EGG"), .height = 4, .weight = 25, @@ -1030,7 +1235,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Exeggutor + + [NATIONAL_DEX_EXEGGUTOR] = + { .categoryName = _("COCONUT"), .height = 20, .weight = 1200, @@ -1040,7 +1247,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 309, .trainerOffset = 5, }, - { //Cubone + + [NATIONAL_DEX_CUBONE] = + { .categoryName = _("LONELY"), .height = 4, .weight = 65, @@ -1050,7 +1259,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Marowak + + [NATIONAL_DEX_MAROWAK] = + { .categoryName = _("BONE KEEPER"), .height = 10, .weight = 450, @@ -1060,7 +1271,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Hitmonlee + + [NATIONAL_DEX_HITMONLEE] = + { .categoryName = _("KICKING"), .height = 15, .weight = 498, @@ -1070,7 +1283,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 259, .trainerOffset = 1, }, - { //Hitmonchan + + [NATIONAL_DEX_HITMONCHAN] = + { .categoryName = _("PUNCHING"), .height = 14, .weight = 502, @@ -1080,7 +1295,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 277, .trainerOffset = 2, }, - { //Lickitung + + [NATIONAL_DEX_LICKITUNG] = + { .categoryName = _("LICKING"), .height = 12, .weight = 655, @@ -1090,7 +1307,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Koffing + + [NATIONAL_DEX_KOFFING] = + { .categoryName = _("POISON GAS"), .height = 6, .weight = 10, @@ -1100,7 +1319,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Weezing + + [NATIONAL_DEX_WEEZING] = + { .categoryName = _("POISON GAS"), .height = 12, .weight = 95, @@ -1110,7 +1331,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Rhyhorn + + [NATIONAL_DEX_RHYHORN] = + { .categoryName = _("SPIKES"), .height = 10, .weight = 1150, @@ -1120,7 +1343,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Rhydon + + [NATIONAL_DEX_RHYDON] = + { .categoryName = _("DRILL"), .height = 19, .weight = 1200, @@ -1130,7 +1355,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 299, .trainerOffset = 2, }, - { //Chansey + + [NATIONAL_DEX_CHANSEY] = + { .categoryName = _("EGG"), .height = 11, .weight = 346, @@ -1140,7 +1367,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Tangela + + [NATIONAL_DEX_TANGELA] = + { .categoryName = _("VINE"), .height = 10, .weight = 350, @@ -1150,7 +1379,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kangaskhan + + [NATIONAL_DEX_KANGASKHAN] = + { .categoryName = _("PARENT"), .height = 22, .weight = 800, @@ -1160,7 +1391,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 387, .trainerOffset = 8, }, - { //Horsea + + [NATIONAL_DEX_HORSEA] = + { .categoryName = _("DRAGON"), .height = 4, .weight = 80, @@ -1170,7 +1403,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Seadra + + [NATIONAL_DEX_SEADRA] = + { .categoryName = _("DRAGON"), .height = 12, .weight = 250, @@ -1180,7 +1415,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Goldeen + + [NATIONAL_DEX_GOLDEEN] = + { .categoryName = _("GOLDFISH"), .height = 6, .weight = 150, @@ -1190,7 +1427,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Seaking + + [NATIONAL_DEX_SEAKING] = + { .categoryName = _("GOLDFISH"), .height = 13, .weight = 390, @@ -1200,7 +1439,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Staryu + + [NATIONAL_DEX_STARYU] = + { .categoryName = _("STAR SHAPE"), .height = 8, .weight = 345, @@ -1210,7 +1451,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Starmie + + [NATIONAL_DEX_STARMIE] = + { .categoryName = _("MYSTERIOUS"), .height = 11, .weight = 800, @@ -1220,7 +1463,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Mrmime + + [NATIONAL_DEX_MR_MIME] = + { .categoryName = _("BARRIER"), .height = 13, .weight = 545, @@ -1230,7 +1475,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Scyther + + [NATIONAL_DEX_SCYTHER] = + { .categoryName = _("MANTIS"), .height = 15, .weight = 560, @@ -1240,7 +1487,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 293, .trainerOffset = 2, }, - { //Jynx + + [NATIONAL_DEX_JYNX] = + { .categoryName = _("HUMAN SHAPE"), .height = 14, .weight = 406, @@ -1250,7 +1499,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 300, .trainerOffset = 1, }, - { //Electabuzz + + [NATIONAL_DEX_ELECTABUZZ] = + { .categoryName = _("ELECTRIC"), .height = 11, .weight = 300, @@ -1260,7 +1511,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Magmar + + [NATIONAL_DEX_MAGMAR] = + { .categoryName = _("SPITFIRE"), .height = 13, .weight = 445, @@ -1270,7 +1523,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pinsir + + [NATIONAL_DEX_PINSIR] = + { .categoryName = _("STAG BEETLE"), .height = 15, .weight = 550, @@ -1280,7 +1535,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 257, .trainerOffset = 0, }, - { //Tauros + + [NATIONAL_DEX_TAUROS] = + { .categoryName = _("WILD BULL"), .height = 14, .weight = 884, @@ -1290,7 +1547,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Magikarp + + [NATIONAL_DEX_MAGIKARP] = + { .categoryName = _("FISH"), .height = 9, .weight = 100, @@ -1300,7 +1559,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Gyarados + + [NATIONAL_DEX_GYARADOS] = + { .categoryName = _("ATROCIOUS"), .height = 65, .weight = 2350, @@ -1310,7 +1571,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 481, .trainerOffset = 13, }, - { //Lapras + + [NATIONAL_DEX_LAPRAS] = + { .categoryName = _("TRANSPORT"), .height = 25, .weight = 2200, @@ -1320,7 +1583,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 423, .trainerOffset = 8, }, - { //Ditto + + [NATIONAL_DEX_DITTO] = + { .categoryName = _("TRANSFORM"), .height = 3, .weight = 40, @@ -1330,7 +1595,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Eevee + + [NATIONAL_DEX_EEVEE] = + { .categoryName = _("EVOLUTION"), .height = 3, .weight = 65, @@ -1340,7 +1607,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Vaporeon + + [NATIONAL_DEX_VAPOREON] = + { .categoryName = _("BUBBLE JET"), .height = 10, .weight = 290, @@ -1350,7 +1619,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Jolteon + + [NATIONAL_DEX_JOLTEON] = + { .categoryName = _("LIGHTNING"), .height = 8, .weight = 245, @@ -1360,7 +1631,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Flareon + + [NATIONAL_DEX_FLAREON] = + { .categoryName = _("FLAME"), .height = 9, .weight = 250, @@ -1370,7 +1643,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Porygon + + [NATIONAL_DEX_PORYGON] = + { .categoryName = _("VIRTUAL"), .height = 8, .weight = 365, @@ -1380,7 +1655,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Omanyte + + [NATIONAL_DEX_OMANYTE] = + { .categoryName = _("SPIRAL"), .height = 4, .weight = 75, @@ -1390,7 +1667,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Omastar + + [NATIONAL_DEX_OMASTAR] = + { .categoryName = _("SPIRAL"), .height = 10, .weight = 350, @@ -1400,7 +1679,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kabuto + + [NATIONAL_DEX_KABUTO] = + { .categoryName = _("SHELLFISH"), .height = 5, .weight = 115, @@ -1410,7 +1691,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kabutops + + [NATIONAL_DEX_KABUTOPS] = + { .categoryName = _("SHELLFISH"), .height = 13, .weight = 405, @@ -1420,7 +1703,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Aerodactyl + + [NATIONAL_DEX_AERODACTYL] = + { .categoryName = _("FOSSIL"), .height = 18, .weight = 590, @@ -1430,7 +1715,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 302, .trainerOffset = 4, }, - { //Snorlax + + [NATIONAL_DEX_SNORLAX] = + { .categoryName = _("SLEEPING"), .height = 21, .weight = 4600, @@ -1440,7 +1727,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 423, .trainerOffset = 11, }, - { //Articuno + + [NATIONAL_DEX_ARTICUNO] = + { .categoryName = _("FREEZE"), .height = 17, .weight = 554, @@ -1450,7 +1739,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 309, .trainerOffset = 2, }, - { //Zapdos + + [NATIONAL_DEX_ZAPDOS] = + { .categoryName = _("ELECTRIC"), .height = 16, .weight = 526, @@ -1460,7 +1751,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 318, .trainerOffset = 3, }, - { //Moltres + + [NATIONAL_DEX_MOLTRES] = + { .categoryName = _("FLAME"), .height = 20, .weight = 600, @@ -1470,7 +1763,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 387, .trainerOffset = 8, }, - { //Dratini + + [NATIONAL_DEX_DRATINI] = + { .categoryName = _("DRAGON"), .height = 18, .weight = 33, @@ -1480,7 +1775,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 386, .trainerOffset = 6, }, - { //Dragonair + + [NATIONAL_DEX_DRAGONAIR] = + { .categoryName = _("DRAGON"), .height = 40, .weight = 165, @@ -1490,7 +1787,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 411, .trainerOffset = 5, }, - { //Dragonite + + [NATIONAL_DEX_DRAGONITE] = + { .categoryName = _("DRAGON"), .height = 22, .weight = 2100, @@ -1500,7 +1799,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 309, .trainerOffset = 4, }, - { //Mewtwo + + [NATIONAL_DEX_MEWTWO] = + { .categoryName = _("GENETIC"), .height = 20, .weight = 1220, @@ -1510,7 +1811,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 309, .trainerOffset = 4, }, - { //Mew + + [NATIONAL_DEX_MEW] = + { .categoryName = _("NEW SPECIES"), .height = 4, .weight = 40, @@ -1520,7 +1823,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Chikorita + + [NATIONAL_DEX_CHIKORITA] = + { .categoryName = _("LEAF"), .height = 9, .weight = 64, @@ -1530,7 +1835,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Bayleef + + [NATIONAL_DEX_BAYLEEF] = + { .categoryName = _("LEAF"), .height = 12, .weight = 158, @@ -1540,7 +1847,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Meganium + + [NATIONAL_DEX_MEGANIUM] = + { .categoryName = _("HERB"), .height = 18, .weight = 1005, @@ -1550,7 +1859,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 277, .trainerOffset = 1, }, - { //Cyndaquil + + [NATIONAL_DEX_CYNDAQUIL] = + { .categoryName = _("FIRE MOUSE"), .height = 5, .weight = 79, @@ -1560,7 +1871,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Quilava + + [NATIONAL_DEX_QUILAVA] = + { .categoryName = _("VOLCANO"), .height = 9, .weight = 190, @@ -1570,7 +1883,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Typhlosion + + [NATIONAL_DEX_TYPHLOSION] = + { .categoryName = _("VOLCANO"), .height = 17, .weight = 795, @@ -1580,7 +1895,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 268, .trainerOffset = 1, }, - { //Totodile + + [NATIONAL_DEX_TOTODILE] = + { .categoryName = _("BIG JAW"), .height = 6, .weight = 95, @@ -1590,7 +1907,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Croconaw + + [NATIONAL_DEX_CROCONAW] = + { .categoryName = _("BIG JAW"), .height = 11, .weight = 250, @@ -1600,7 +1919,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Feraligatr + + [NATIONAL_DEX_FERALIGATR] = + { .categoryName = _("BIG JAW"), .height = 23, .weight = 888, @@ -1610,7 +1931,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 342, .trainerOffset = 7, }, - { //Sentret + + [NATIONAL_DEX_SENTRET] = + { .categoryName = _("SCOUT"), .height = 8, .weight = 60, @@ -1620,7 +1943,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Furret + + [NATIONAL_DEX_FURRET] = + { .categoryName = _("LONG BODY"), .height = 18, .weight = 325, @@ -1630,7 +1955,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Hoothoot + + [NATIONAL_DEX_HOOTHOOT] = + { .categoryName = _("OWL"), .height = 7, .weight = 212, @@ -1640,7 +1967,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Noctowl + + [NATIONAL_DEX_NOCTOWL] = + { .categoryName = _("OWL"), .height = 16, .weight = 408, @@ -1650,7 +1979,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ledyba + + [NATIONAL_DEX_LEDYBA] = + { .categoryName = _("FIVE STAR"), .height = 10, .weight = 108, @@ -1660,7 +1991,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ledian + + [NATIONAL_DEX_LEDIAN] = + { .categoryName = _("FIVE STAR"), .height = 14, .weight = 356, @@ -1670,7 +2003,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Spinarak + + [NATIONAL_DEX_SPINARAK] = + { .categoryName = _("STRING SPIT"), .height = 5, .weight = 85, @@ -1680,7 +2015,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ariados + + [NATIONAL_DEX_ARIADOS] = + { .categoryName = _("LONG LEG"), .height = 11, .weight = 335, @@ -1690,7 +2027,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Crobat + + [NATIONAL_DEX_CROBAT] = + { .categoryName = _("BAT"), .height = 18, .weight = 750, @@ -1700,7 +2039,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 281, .trainerOffset = 1, }, - { //Chinchou + + [NATIONAL_DEX_CHINCHOU] = + { .categoryName = _("ANGLER"), .height = 5, .weight = 120, @@ -1710,7 +2051,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Lanturn + + [NATIONAL_DEX_LANTURN] = + { .categoryName = _("LIGHT"), .height = 12, .weight = 225, @@ -1720,7 +2063,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pichu + + [NATIONAL_DEX_PICHU] = + { .categoryName = _("TINY MOUSE"), .height = 3, .weight = 20, @@ -1730,7 +2075,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Cleffa + + [NATIONAL_DEX_CLEFFA] = + { .categoryName = _("STAR SHAPE"), .height = 3, .weight = 30, @@ -1740,7 +2087,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Igglybuff + + [NATIONAL_DEX_IGGLYBUFF] = + { .categoryName = _("BALLOON"), .height = 3, .weight = 10, @@ -1750,7 +2099,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Togepi + + [NATIONAL_DEX_TOGEPI] = + { .categoryName = _("SPIKE BALL"), .height = 3, .weight = 15, @@ -1760,7 +2111,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Togetic + + [NATIONAL_DEX_TOGETIC] = + { .categoryName = _("HAPPINESS"), .height = 6, .weight = 32, @@ -1770,7 +2123,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Natu + + [NATIONAL_DEX_NATU] = + { .categoryName = _("TINY BIRD"), .height = 2, .weight = 20, @@ -1780,7 +2135,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Xatu + + [NATIONAL_DEX_XATU] = + { .categoryName = _("MYSTIC"), .height = 15, .weight = 150, @@ -1790,7 +2147,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 318, .trainerOffset = 4, }, - { //Mareep + + [NATIONAL_DEX_MAREEP] = + { .categoryName = _("WOOL"), .height = 6, .weight = 78, @@ -1800,7 +2159,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Flaaffy + + [NATIONAL_DEX_FLAAFFY] = + { .categoryName = _("WOOL"), .height = 8, .weight = 133, @@ -1810,7 +2171,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ampharos + + [NATIONAL_DEX_AMPHAROS] = + { .categoryName = _("LIGHT"), .height = 14, .weight = 615, @@ -1820,7 +2183,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Bellossom + + [NATIONAL_DEX_BELLOSSOM] = + { .categoryName = _("FLOWER"), .height = 4, .weight = 58, @@ -1830,7 +2195,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Marill + + [NATIONAL_DEX_MARILL] = + { .categoryName = _("AQUA MOUSE"), .height = 4, .weight = 85, @@ -1840,7 +2207,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Azumarill + + [NATIONAL_DEX_AZUMARILL] = + { .categoryName = _("AQUA RABBIT"), .height = 8, .weight = 285, @@ -1850,7 +2219,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sudowoodo + + [NATIONAL_DEX_SUDOWOODO] = + { .categoryName = _("IMITATION"), .height = 12, .weight = 380, @@ -1860,7 +2231,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Politoed + + [NATIONAL_DEX_POLITOED] = + { .categoryName = _("FROG"), .height = 11, .weight = 339, @@ -1870,7 +2243,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Hoppip + + [NATIONAL_DEX_HOPPIP] = + { .categoryName = _("COTTONWEED"), .height = 4, .weight = 5, @@ -1880,7 +2255,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Skiploom + + [NATIONAL_DEX_SKIPLOOM] = + { .categoryName = _("COTTONWEED"), .height = 6, .weight = 10, @@ -1890,7 +2267,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Jumpluff + + [NATIONAL_DEX_JUMPLUFF] = + { .categoryName = _("COTTONWEED"), .height = 8, .weight = 30, @@ -1900,7 +2279,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Aipom + + [NATIONAL_DEX_AIPOM] = + { .categoryName = _("LONG TAIL"), .height = 8, .weight = 115, @@ -1910,7 +2291,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sunkern + + [NATIONAL_DEX_SUNKERN] = + { .categoryName = _("SEED"), .height = 3, .weight = 18, @@ -1920,7 +2303,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sunflora + + [NATIONAL_DEX_SUNFLORA] = + { .categoryName = _("SUN"), .height = 8, .weight = 85, @@ -1930,7 +2315,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Yanma + + [NATIONAL_DEX_YANMA] = + { .categoryName = _("CLEAR WING"), .height = 12, .weight = 380, @@ -1940,7 +2327,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Wooper + + [NATIONAL_DEX_WOOPER] = + { .categoryName = _("WATER FISH"), .height = 4, .weight = 85, @@ -1950,7 +2339,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Quagsire + + [NATIONAL_DEX_QUAGSIRE] = + { .categoryName = _("WATER FISH"), .height = 14, .weight = 750, @@ -1960,7 +2351,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Espeon + + [NATIONAL_DEX_ESPEON] = + { .categoryName = _("SUN"), .height = 9, .weight = 265, @@ -1970,7 +2363,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Umbreon + + [NATIONAL_DEX_UMBREON] = + { .categoryName = _("MOONLIGHT"), .height = 10, .weight = 270, @@ -1980,7 +2375,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Murkrow + + [NATIONAL_DEX_MURKROW] = + { .categoryName = _("DARKNESS"), .height = 5, .weight = 21, @@ -1990,7 +2387,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 1, }, - { //Slowking + + [NATIONAL_DEX_SLOWKING] = + { .categoryName = _("ROYAL"), .height = 20, .weight = 795, @@ -2000,7 +2399,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 309, .trainerOffset = 5, }, - { //Misdreavus + + [NATIONAL_DEX_MISDREAVUS] = + { .categoryName = _("SCREECH"), .height = 7, .weight = 10, @@ -2010,7 +2411,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Unown + + [NATIONAL_DEX_UNOWN] = + { .categoryName = _("SYMBOL"), .height = 5, .weight = 50, @@ -2020,7 +2423,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Wobbuffet + + [NATIONAL_DEX_WOBBUFFET] = + { .categoryName = _("PATIENT"), .height = 13, .weight = 285, @@ -2030,7 +2435,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Girafarig + + [NATIONAL_DEX_GIRAFARIG] = + { .categoryName = _("LONG NECK"), .height = 15, .weight = 415, @@ -2040,7 +2447,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pineco + + [NATIONAL_DEX_PINECO] = + { .categoryName = _("BAGWORM"), .height = 6, .weight = 72, @@ -2050,7 +2459,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Forretress + + [NATIONAL_DEX_FORRETRESS] = + { .categoryName = _("BAGWORM"), .height = 12, .weight = 1258, @@ -2060,7 +2471,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Dunsparce + + [NATIONAL_DEX_DUNSPARCE] = + { .categoryName = _("LAND SNAKE"), .height = 15, .weight = 140, @@ -2070,7 +2483,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Gligar + + [NATIONAL_DEX_GLIGAR] = + { .categoryName = _("FLYSCORPION"), .height = 11, .weight = 648, @@ -2080,7 +2495,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Steelix + + [NATIONAL_DEX_STEELIX] = + { .categoryName = _("IRON SNAKE"), .height = 92, .weight = 4000, @@ -2090,7 +2507,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 516, .trainerOffset = 13, }, - { //Snubbull + + [NATIONAL_DEX_SNUBBULL] = + { .categoryName = _("FAIRY"), .height = 6, .weight = 78, @@ -2100,7 +2519,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Granbull + + [NATIONAL_DEX_GRANBULL] = + { .categoryName = _("FAIRY"), .height = 14, .weight = 487, @@ -2110,7 +2531,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Qwilfish + + [NATIONAL_DEX_QWILFISH] = + { .categoryName = _("BALLOON"), .height = 5, .weight = 39, @@ -2120,7 +2543,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Scizor + + [NATIONAL_DEX_SCIZOR] = + { .categoryName = _("PINCER"), .height = 18, .weight = 1180, @@ -2130,7 +2555,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Shuckle + + [NATIONAL_DEX_SHUCKLE] = + { .categoryName = _("MOLD"), .height = 6, .weight = 205, @@ -2140,7 +2567,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Heracross + + [NATIONAL_DEX_HERACROSS] = + { .categoryName = _("SINGLE HORN"), .height = 15, .weight = 540, @@ -2150,7 +2579,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sneasel + + [NATIONAL_DEX_SNEASEL] = + { .categoryName = _("SHARP CLAW"), .height = 9, .weight = 280, @@ -2160,7 +2591,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Teddiursa + + [NATIONAL_DEX_TEDDIURSA] = + { .categoryName = _("LITTLE BEAR"), .height = 6, .weight = 88, @@ -2170,7 +2603,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ursaring + + [NATIONAL_DEX_URSARING] = + { .categoryName = _("HIBERNATOR"), .height = 18, .weight = 1258, @@ -2180,7 +2615,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Slugma + + [NATIONAL_DEX_SLUGMA] = + { .categoryName = _("LAVA"), .height = 7, .weight = 350, @@ -2190,7 +2627,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Magcargo + + [NATIONAL_DEX_MAGCARGO] = + { .categoryName = _("LAVA"), .height = 8, .weight = 550, @@ -2200,7 +2639,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Swinub + + [NATIONAL_DEX_SWINUB] = + { .categoryName = _("PIG"), .height = 4, .weight = 65, @@ -2210,7 +2651,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Piloswine + + [NATIONAL_DEX_PILOSWINE] = + { .categoryName = _("SWINE"), .height = 11, .weight = 558, @@ -2220,7 +2663,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Corsola + + [NATIONAL_DEX_CORSOLA] = + { .categoryName = _("CORAL"), .height = 6, .weight = 50, @@ -2230,7 +2675,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Remoraid + + [NATIONAL_DEX_REMORAID] = + { .categoryName = _("JET"), .height = 6, .weight = 120, @@ -2240,7 +2687,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Octillery + + [NATIONAL_DEX_OCTILLERY] = + { .categoryName = _("JET"), .height = 9, .weight = 285, @@ -2250,7 +2699,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Delibird + + [NATIONAL_DEX_DELIBIRD] = + { .categoryName = _("DELIVERY"), .height = 9, .weight = 160, @@ -2260,7 +2711,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Mantine + + [NATIONAL_DEX_MANTINE] = + { .categoryName = _("KITE"), .height = 21, .weight = 2200, @@ -2270,7 +2723,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 342, .trainerOffset = 7, }, - { //Skarmory + + [NATIONAL_DEX_SKARMORY] = + { .categoryName = _("ARMOR BIRD"), .height = 17, .weight = 505, @@ -2280,7 +2735,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 271, .trainerOffset = 1, }, - { //Houndour + + [NATIONAL_DEX_HOUNDOUR] = + { .categoryName = _("DARK"), .height = 6, .weight = 108, @@ -2290,7 +2747,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Houndoom + + [NATIONAL_DEX_HOUNDOOM] = + { .categoryName = _("DARK"), .height = 14, .weight = 350, @@ -2300,7 +2759,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kingdra + + [NATIONAL_DEX_KINGDRA] = + { .categoryName = _("DRAGON"), .height = 18, .weight = 1520, @@ -2310,7 +2771,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 287, .trainerOffset = 0, }, - { //Phanpy + + [NATIONAL_DEX_PHANPY] = + { .categoryName = _("LONG NOSE"), .height = 5, .weight = 335, @@ -2320,7 +2783,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Donphan + + [NATIONAL_DEX_DONPHAN] = + { .categoryName = _("ARMOR"), .height = 11, .weight = 1200, @@ -2330,7 +2795,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Porygon2 + + [NATIONAL_DEX_PORYGON2] = + { .categoryName = _("VIRTUAL"), .height = 6, .weight = 325, @@ -2340,7 +2807,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Stantler + + [NATIONAL_DEX_STANTLER] = + { .categoryName = _("BIG HORN"), .height = 14, .weight = 712, @@ -2350,7 +2819,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Smeargle + + [NATIONAL_DEX_SMEARGLE] = + { .categoryName = _("PAINTER"), .height = 12, .weight = 580, @@ -2360,7 +2831,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Tyrogue + + [NATIONAL_DEX_TYROGUE] = + { .categoryName = _("SCUFFLE"), .height = 7, .weight = 210, @@ -2370,7 +2843,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Hitmontop + + [NATIONAL_DEX_HITMONTOP] = + { .categoryName = _("HANDSTAND"), .height = 14, .weight = 480, @@ -2380,7 +2855,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 257, .trainerOffset = 0, }, - { //Smoochum + + [NATIONAL_DEX_SMOOCHUM] = + { .categoryName = _("KISS"), .height = 4, .weight = 60, @@ -2390,7 +2867,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Elekid + + [NATIONAL_DEX_ELEKID] = + { .categoryName = _("ELECTRIC"), .height = 6, .weight = 235, @@ -2400,7 +2879,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Magby + + [NATIONAL_DEX_MAGBY] = + { .categoryName = _("LIVE COAL"), .height = 7, .weight = 214, @@ -2410,7 +2891,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Miltank + + [NATIONAL_DEX_MILTANK] = + { .categoryName = _("MILK COW"), .height = 12, .weight = 755, @@ -2420,7 +2903,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Blissey + + [NATIONAL_DEX_BLISSEY] = + { .categoryName = _("HAPPINESS"), .height = 15, .weight = 468, @@ -2430,7 +2915,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 310, .trainerOffset = 3, }, - { //Raikou + + [NATIONAL_DEX_RAIKOU] = + { .categoryName = _("THUNDER"), .height = 19, .weight = 1780, @@ -2440,7 +2927,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 345, .trainerOffset = 7, }, - { //Entei + + [NATIONAL_DEX_ENTEI] = + { .categoryName = _("VOLCANO"), .height = 21, .weight = 1980, @@ -2450,7 +2939,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 345, .trainerOffset = 7, }, - { //Suicune + + [NATIONAL_DEX_SUICUNE] = + { .categoryName = _("AURORA"), .height = 20, .weight = 1870, @@ -2460,7 +2951,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 345, .trainerOffset = 7, }, - { //Larvitar + + [NATIONAL_DEX_LARVITAR] = + { .categoryName = _("ROCK SKIN"), .height = 6, .weight = 720, @@ -2470,7 +2963,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pupitar + + [NATIONAL_DEX_PUPITAR] = + { .categoryName = _("HARD SHELL"), .height = 12, .weight = 1520, @@ -2480,7 +2975,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Tyranitar + + [NATIONAL_DEX_TYRANITAR] = + { .categoryName = _("ARMOR"), .height = 20, .weight = 2020, @@ -2490,7 +2987,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 345, .trainerOffset = 7, }, - { //Lugia + + [NATIONAL_DEX_LUGIA] = + { .categoryName = _("DIVING"), .height = 52, .weight = 2160, @@ -2500,7 +2999,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 721, .trainerOffset = 19, }, - { //HoOh + + [NATIONAL_DEX_HO_OH] = + { .categoryName = _("RAINBOW"), .height = 38, .weight = 1990, @@ -2510,7 +3011,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 610, .trainerOffset = 17, }, - { //Celebi + + [NATIONAL_DEX_CELEBI] = + { .categoryName = _("TIME TRAVEL"), .height = 6, .weight = 50, @@ -2520,7 +3023,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Treecko + + [NATIONAL_DEX_TREECKO] = + { .categoryName = _("WOOD GECKO"), .height = 5, .weight = 50, @@ -2530,7 +3035,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Grovyle + + [NATIONAL_DEX_GROVYLE] = + { .categoryName = _("WOOD GECKO"), .height = 9, .weight = 216, @@ -2540,7 +3047,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sceptile + + [NATIONAL_DEX_SCEPTILE] = + { .categoryName = _("FOREST"), .height = 17, .weight = 522, @@ -2550,7 +3059,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 275, .trainerOffset = 2, }, - { //Torchic + + [NATIONAL_DEX_TORCHIC] = + { .categoryName = _("CHICK"), .height = 4, .weight = 25, @@ -2560,7 +3071,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Combusken + + [NATIONAL_DEX_COMBUSKEN] = + { .categoryName = _("YOUNG FOWL"), .height = 9, .weight = 195, @@ -2570,7 +3083,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Blaziken + + [NATIONAL_DEX_BLAZIKEN] = + { .categoryName = _("BLAZE"), .height = 19, .weight = 520, @@ -2580,7 +3095,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 301, .trainerOffset = 4, }, - { //Mudkip + + [NATIONAL_DEX_MUDKIP] = + { .categoryName = _("MUD FISH"), .height = 4, .weight = 76, @@ -2590,7 +3107,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Marshtomp + + [NATIONAL_DEX_MARSHTOMP] = + { .categoryName = _("MUD FISH"), .height = 7, .weight = 280, @@ -2600,7 +3119,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Swampert + + [NATIONAL_DEX_SWAMPERT] = + { .categoryName = _("MUD FISH"), .height = 15, .weight = 819, @@ -2610,7 +3131,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Poochyena + + [NATIONAL_DEX_POOCHYENA] = + { .categoryName = _("BITE"), .height = 5, .weight = 136, @@ -2620,7 +3143,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Mightyena + + [NATIONAL_DEX_MIGHTYENA] = + { .categoryName = _("BITE"), .height = 10, .weight = 370, @@ -2630,7 +3155,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Zigzagoon + + [NATIONAL_DEX_ZIGZAGOON] = + { .categoryName = _("TINYRACCOON"), .height = 4, .weight = 175, @@ -2640,7 +3167,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Linoone + + [NATIONAL_DEX_LINOONE] = + { .categoryName = _("RUSHING"), .height = 5, .weight = 325, @@ -2650,7 +3179,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Wurmple + + [NATIONAL_DEX_WURMPLE] = + { .categoryName = _("WORM"), .height = 3, .weight = 36, @@ -2660,7 +3191,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Silcoon + + [NATIONAL_DEX_SILCOON] = + { .categoryName = _("COCOON"), .height = 6, .weight = 100, @@ -2670,7 +3203,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Beautifly + + [NATIONAL_DEX_BEAUTIFLY] = + { .categoryName = _("BUTTERFLY"), .height = 10, .weight = 284, @@ -2680,7 +3215,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Cascoon + + [NATIONAL_DEX_CASCOON] = + { .categoryName = _("COCOON"), .height = 7, .weight = 115, @@ -2690,7 +3227,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Dustox + + [NATIONAL_DEX_DUSTOX] = + { .categoryName = _("POISON MOTH"), .height = 12, .weight = 316, @@ -2700,7 +3239,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Lotad + + [NATIONAL_DEX_LOTAD] = + { .categoryName = _("WATER WEED"), .height = 5, .weight = 26, @@ -2710,7 +3251,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Lombre + + [NATIONAL_DEX_LOMBRE] = + { .categoryName = _("JOLLY"), .height = 12, .weight = 325, @@ -2720,7 +3263,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ludicolo + + [NATIONAL_DEX_LUDICOLO] = + { .categoryName = _("CAREFREE"), .height = 15, .weight = 550, @@ -2730,7 +3275,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 268, .trainerOffset = -1, }, - { //Seedot + + [NATIONAL_DEX_SEEDOT] = + { .categoryName = _("ACORN"), .height = 5, .weight = 40, @@ -2740,7 +3287,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Nuzleaf + + [NATIONAL_DEX_NUZLEAF] = + { .categoryName = _("WILY"), .height = 10, .weight = 280, @@ -2750,7 +3299,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Shiftry + + [NATIONAL_DEX_SHIFTRY] = + { .categoryName = _("WICKED"), .height = 13, .weight = 596, @@ -2760,7 +3311,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Taillow + + [NATIONAL_DEX_TAILLOW] = + { .categoryName = _("TINYSWALLOW"), .height = 3, .weight = 23, @@ -2770,7 +3323,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Swellow + + [NATIONAL_DEX_SWELLOW] = + { .categoryName = _("SWALLOW"), .height = 7, .weight = 198, @@ -2780,7 +3335,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Wingull + + [NATIONAL_DEX_WINGULL] = + { .categoryName = _("SEAGULL"), .height = 6, .weight = 95, @@ -2790,7 +3347,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Pelipper + + [NATIONAL_DEX_PELIPPER] = + { .categoryName = _("WATER BIRD"), .height = 12, .weight = 280, @@ -2800,7 +3359,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ralts + + [NATIONAL_DEX_RALTS] = + { .categoryName = _("FEELING"), .height = 4, .weight = 66, @@ -2810,7 +3371,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kirlia + + [NATIONAL_DEX_KIRLIA] = + { .categoryName = _("EMOTION"), .height = 8, .weight = 202, @@ -2820,7 +3383,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Gardevoir + + [NATIONAL_DEX_GARDEVOIR] = + { .categoryName = _("EMBRACE"), .height = 16, .weight = 484, @@ -2830,7 +3395,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Surskit + + [NATIONAL_DEX_SURSKIT] = + { .categoryName = _("POND SKATER"), .height = 5, .weight = 17, @@ -2840,7 +3407,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Masquerain + + [NATIONAL_DEX_MASQUERAIN] = + { .categoryName = _("EYEBALL"), .height = 8, .weight = 36, @@ -2850,7 +3419,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Shroomish + + [NATIONAL_DEX_SHROOMISH] = + { .categoryName = _("MUSHROOM"), .height = 4, .weight = 45, @@ -2860,7 +3431,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Breloom + + [NATIONAL_DEX_BRELOOM] = + { .categoryName = _("MUSHROOM"), .height = 12, .weight = 392, @@ -2870,7 +3443,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Slakoth + + [NATIONAL_DEX_SLAKOTH] = + { .categoryName = _("SLACKER"), .height = 8, .weight = 240, @@ -2880,7 +3455,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Vigoroth + + [NATIONAL_DEX_VIGOROTH] = + { .categoryName = _("WILD MONKEY"), .height = 14, .weight = 465, @@ -2890,7 +3467,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Slaking + + [NATIONAL_DEX_SLAKING] = + { .categoryName = _("LAZY"), .height = 20, .weight = 1305, @@ -2900,7 +3479,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 300, .trainerOffset = 1, }, - { //Nincada + + [NATIONAL_DEX_NINCADA] = + { .categoryName = _("TRAINEE"), .height = 5, .weight = 55, @@ -2910,7 +3491,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Ninjask + + [NATIONAL_DEX_NINJASK] = + { .categoryName = _("NINJA"), .height = 8, .weight = 120, @@ -2920,7 +3503,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Shedinja + + [NATIONAL_DEX_SHEDINJA] = + { .categoryName = _("SHED"), .height = 8, .weight = 12, @@ -2930,7 +3515,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Whismur + + [NATIONAL_DEX_WHISMUR] = + { .categoryName = _("WHISPER"), .height = 6, .weight = 163, @@ -2940,7 +3527,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Loudred + + [NATIONAL_DEX_LOUDRED] = + { .categoryName = _("BIG VOICE"), .height = 10, .weight = 405, @@ -2950,7 +3539,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Exploud + + [NATIONAL_DEX_EXPLOUD] = + { .categoryName = _("LOUD NOISE"), .height = 15, .weight = 840, @@ -2960,7 +3551,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Makuhita + + [NATIONAL_DEX_MAKUHITA] = + { .categoryName = _("GUTS"), .height = 10, .weight = 864, @@ -2970,7 +3563,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Hariyama + + [NATIONAL_DEX_HARIYAMA] = + { .categoryName = _("ARM THRUST"), .height = 23, .weight = 2538, @@ -2980,7 +3575,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 343, .trainerOffset = 7, }, - { //Azurill + + [NATIONAL_DEX_AZURILL] = + { .categoryName = _("POLKA DOT"), .height = 2, .weight = 20, @@ -2990,7 +3587,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Nosepass + + [NATIONAL_DEX_NOSEPASS] = + { .categoryName = _("COMPASS"), .height = 10, .weight = 970, @@ -3000,7 +3599,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 289, .trainerOffset = 3, }, - { //Skitty + + [NATIONAL_DEX_SKITTY] = + { .categoryName = _("KITTEN"), .height = 6, .weight = 110, @@ -3010,7 +3611,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Delcatty + + [NATIONAL_DEX_DELCATTY] = + { .categoryName = _("PRIM"), .height = 11, .weight = 326, @@ -3020,7 +3623,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sableye + + [NATIONAL_DEX_SABLEYE] = + { .categoryName = _("DARKNESS"), .height = 5, .weight = 110, @@ -3030,7 +3635,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Mawile + + [NATIONAL_DEX_MAWILE] = + { .categoryName = _("DECEIVER"), .height = 6, .weight = 115, @@ -3040,7 +3647,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Aron + + [NATIONAL_DEX_ARON] = + { .categoryName = _("IRON ARMOR"), .height = 4, .weight = 600, @@ -3050,7 +3659,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Lairon + + [NATIONAL_DEX_LAIRON] = + { .categoryName = _("IRON ARMOR"), .height = 9, .weight = 1200, @@ -3060,7 +3671,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Aggron + + [NATIONAL_DEX_AGGRON] = + { .categoryName = _("IRON ARMOR"), .height = 21, .weight = 3600, @@ -3070,7 +3683,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 350, .trainerOffset = 6, }, - { //Meditite + + [NATIONAL_DEX_MEDITITE] = + { .categoryName = _("MEDITATE"), .height = 6, .weight = 112, @@ -3080,7 +3695,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Medicham + + [NATIONAL_DEX_MEDICHAM] = + { .categoryName = _("MEDITATE"), .height = 13, .weight = 315, @@ -3090,7 +3707,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Electrike + + [NATIONAL_DEX_ELECTRIKE] = + { .categoryName = _("LIGHTNING"), .height = 6, .weight = 152, @@ -3100,7 +3719,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Manectric + + [NATIONAL_DEX_MANECTRIC] = + { .categoryName = _("DISCHARGE"), .height = 15, .weight = 402, @@ -3110,7 +3731,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 257, .trainerOffset = 0, }, - { //Plusle + + [NATIONAL_DEX_PLUSLE] = + { .categoryName = _("CHEERING"), .height = 4, .weight = 42, @@ -3120,7 +3743,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Minun + + [NATIONAL_DEX_MINUN] = + { .categoryName = _("CHEERING"), .height = 4, .weight = 42, @@ -3130,7 +3755,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Volbeat + + [NATIONAL_DEX_VOLBEAT] = + { .categoryName = _("FIREFLY"), .height = 7, .weight = 177, @@ -3140,7 +3767,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Illumise + + [NATIONAL_DEX_ILLUMISE] = + { .categoryName = _("FIREFLY"), .height = 6, .weight = 177, @@ -3150,7 +3779,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Roselia + + [NATIONAL_DEX_ROSELIA] = + { .categoryName = _("THORN"), .height = 3, .weight = 20, @@ -3160,7 +3791,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Gulpin + + [NATIONAL_DEX_GULPIN] = + { .categoryName = _("STOMACH"), .height = 4, .weight = 103, @@ -3170,7 +3803,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Swalot + + [NATIONAL_DEX_SWALOT] = + { .categoryName = _("POISON BAG"), .height = 17, .weight = 800, @@ -3180,7 +3815,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 345, .trainerOffset = 3, }, - { //Carvanha + + [NATIONAL_DEX_CARVANHA] = + { .categoryName = _("SAVAGE"), .height = 8, .weight = 208, @@ -3190,7 +3827,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sharpedo + + [NATIONAL_DEX_SHARPEDO] = + { .categoryName = _("BRUTAL"), .height = 18, .weight = 888, @@ -3200,7 +3839,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 317, .trainerOffset = 3, }, - { //Wailmer + + [NATIONAL_DEX_WAILMER] = + { .categoryName = _("BALL WHALE"), .height = 20, .weight = 1300, @@ -3210,7 +3851,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 493, .trainerOffset = 0, }, - { //Wailord + + [NATIONAL_DEX_WAILORD] = + { .categoryName = _("FLOAT WHALE"), .height = 145, .weight = 3980, @@ -3220,7 +3863,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 1352, .trainerOffset = 18, }, - { //Numel + + [NATIONAL_DEX_NUMEL] = + { .categoryName = _("NUMB"), .height = 7, .weight = 240, @@ -3230,7 +3875,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Camerupt + + [NATIONAL_DEX_CAMERUPT] = + { .categoryName = _("ERUPTION"), .height = 19, .weight = 2200, @@ -3240,7 +3887,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 345, .trainerOffset = 6, }, - { //Torkoal + + [NATIONAL_DEX_TORKOAL] = + { .categoryName = _("COAL"), .height = 5, .weight = 804, @@ -3250,7 +3899,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Spoink + + [NATIONAL_DEX_SPOINK] = + { .categoryName = _("BOUNCE"), .height = 7, .weight = 306, @@ -3260,7 +3911,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Grumpig + + [NATIONAL_DEX_GRUMPIG] = + { .categoryName = _("MANIPULATE"), .height = 9, .weight = 715, @@ -3270,7 +3923,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Spinda + + [NATIONAL_DEX_SPINDA] = + { .categoryName = _("SPOT PANDA"), .height = 11, .weight = 50, @@ -3280,7 +3935,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Trapinch + + [NATIONAL_DEX_TRAPINCH] = + { .categoryName = _("ANT PIT"), .height = 7, .weight = 150, @@ -3290,7 +3947,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Vibrava + + [NATIONAL_DEX_VIBRAVA] = + { .categoryName = _("VIBRATION"), .height = 11, .weight = 153, @@ -3300,7 +3959,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Flygon + + [NATIONAL_DEX_FLYGON] = + { .categoryName = _("MYSTIC"), .height = 20, .weight = 820, @@ -3310,7 +3971,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 268, .trainerOffset = 1, }, - { //Cacnea + + [NATIONAL_DEX_CACNEA] = + { .categoryName = _("CACTUS"), .height = 4, .weight = 513, @@ -3320,7 +3983,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Cacturne + + [NATIONAL_DEX_CACTURNE] = + { .categoryName = _("SCARECROW"), .height = 13, .weight = 774, @@ -3330,7 +3995,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Swablu + + [NATIONAL_DEX_SWABLU] = + { .categoryName = _("COTTON BIRD"), .height = 4, .weight = 12, @@ -3340,7 +4007,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Altaria + + [NATIONAL_DEX_ALTARIA] = + { .categoryName = _("HUMMING"), .height = 11, .weight = 206, @@ -3350,7 +4019,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Zangoose + + [NATIONAL_DEX_ZANGOOSE] = + { .categoryName = _("CAT FERRET"), .height = 13, .weight = 403, @@ -3360,7 +4031,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Seviper + + [NATIONAL_DEX_SEVIPER] = + { .categoryName = _("FANG SNAKE"), .height = 27, .weight = 525, @@ -3370,7 +4043,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Lunatone + + [NATIONAL_DEX_LUNATONE] = + { .categoryName = _("METEORITE"), .height = 10, .weight = 1680, @@ -3380,7 +4055,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Solrock + + [NATIONAL_DEX_SOLROCK] = + { .categoryName = _("METEORITE"), .height = 12, .weight = 1540, @@ -3390,7 +4067,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Barboach + + [NATIONAL_DEX_BARBOACH] = + { .categoryName = _("WHISKERS"), .height = 4, .weight = 19, @@ -3400,7 +4079,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Whiscash + + [NATIONAL_DEX_WHISCASH] = + { .categoryName = _("WHISKERS"), .height = 9, .weight = 236, @@ -3410,7 +4091,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Corphish + + [NATIONAL_DEX_CORPHISH] = + { .categoryName = _("RUFFIAN"), .height = 6, .weight = 115, @@ -3420,7 +4103,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Crawdaunt + + [NATIONAL_DEX_CRAWDAUNT] = + { .categoryName = _("ROGUE"), .height = 11, .weight = 328, @@ -3430,7 +4115,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Baltoy + + [NATIONAL_DEX_BALTOY] = + { .categoryName = _("CLAY DOLL"), .height = 5, .weight = 215, @@ -3440,7 +4127,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Claydol + + [NATIONAL_DEX_CLAYDOL] = + { .categoryName = _("CLAY DOLL"), .height = 15, .weight = 1080, @@ -3450,7 +4139,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 280, .trainerOffset = 1, }, - { //Lileep + + [NATIONAL_DEX_LILEEP] = + { .categoryName = _("SEA LILY"), .height = 10, .weight = 238, @@ -3460,7 +4151,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Cradily + + [NATIONAL_DEX_CRADILY] = + { .categoryName = _("BARNACLE"), .height = 15, .weight = 604, @@ -3470,7 +4163,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Anorith + + [NATIONAL_DEX_ANORITH] = + { .categoryName = _("OLD SHRIMP"), .height = 7, .weight = 125, @@ -3480,7 +4175,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Armaldo + + [NATIONAL_DEX_ARMALDO] = + { .categoryName = _("PLATE"), .height = 15, .weight = 682, @@ -3490,7 +4187,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 271, .trainerOffset = 0, }, - { //Feebas + + [NATIONAL_DEX_FEEBAS] = + { .categoryName = _("FISH"), .height = 6, .weight = 74, @@ -3500,7 +4199,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Milotic + + [NATIONAL_DEX_MILOTIC] = + { .categoryName = _("TENDER"), .height = 62, .weight = 1620, @@ -3510,7 +4211,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 360, .trainerOffset = 7, }, - { //Castform + + [NATIONAL_DEX_CASTFORM] = + { .categoryName = _("WEATHER"), .height = 3, .weight = 8, @@ -3520,7 +4223,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Kecleon + + [NATIONAL_DEX_KECLEON] = + { .categoryName = _("COLOR SWAP"), .height = 10, .weight = 220, @@ -3530,7 +4235,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Shuppet + + [NATIONAL_DEX_SHUPPET] = + { .categoryName = _("PUPPET"), .height = 6, .weight = 23, @@ -3540,7 +4247,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Banette + + [NATIONAL_DEX_BANETTE] = + { .categoryName = _("MARIONETTE"), .height = 11, .weight = 125, @@ -3550,7 +4259,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Duskull + + [NATIONAL_DEX_DUSKULL] = + { .categoryName = _("REQUIEM"), .height = 8, .weight = 150, @@ -3560,7 +4271,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Dusclops + + [NATIONAL_DEX_DUSCLOPS] = + { .categoryName = _("BECKON"), .height = 16, .weight = 306, @@ -3570,7 +4283,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 299, .trainerOffset = 1, }, - { //Tropius + + [NATIONAL_DEX_TROPIUS] = + { .categoryName = _("FRUIT"), .height = 20, .weight = 1000, @@ -3580,7 +4295,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 344, .trainerOffset = 7, }, - { //Chimecho + + [NATIONAL_DEX_CHIMECHO] = + { .categoryName = _("WIND CHIME"), .height = 6, .weight = 10, @@ -3590,7 +4307,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Absol + + [NATIONAL_DEX_ABSOL] = + { .categoryName = _("DISASTER"), .height = 12, .weight = 470, @@ -3600,7 +4319,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Wynaut + + [NATIONAL_DEX_WYNAUT] = + { .categoryName = _("BRIGHT"), .height = 6, .weight = 140, @@ -3610,7 +4331,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Snorunt + + [NATIONAL_DEX_SNORUNT] = + { .categoryName = _("SNOW HAT"), .height = 7, .weight = 168, @@ -3620,7 +4343,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Glalie + + [NATIONAL_DEX_GLALIE] = + { .categoryName = _("FACE"), .height = 15, .weight = 2565, @@ -3630,7 +4355,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 344, .trainerOffset = 0, }, - { //Spheal + + [NATIONAL_DEX_SPHEAL] = + { .categoryName = _("CLAP"), .height = 8, .weight = 395, @@ -3640,7 +4367,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Sealeo + + [NATIONAL_DEX_SEALEO] = + { .categoryName = _("BALL ROLL"), .height = 11, .weight = 876, @@ -3650,7 +4379,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Walrein + + [NATIONAL_DEX_WALREIN] = + { .categoryName = _("ICE BREAK"), .height = 14, .weight = 1506, @@ -3660,7 +4391,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Clamperl + + [NATIONAL_DEX_CLAMPERL] = + { .categoryName = _("BIVALVE"), .height = 4, .weight = 525, @@ -3670,7 +4403,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Huntail + + [NATIONAL_DEX_HUNTAIL] = + { .categoryName = _("DEEP SEA"), .height = 17, .weight = 270, @@ -3680,7 +4415,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Gorebyss + + [NATIONAL_DEX_GOREBYSS] = + { .categoryName = _("SOUTH SEA"), .height = 18, .weight = 226, @@ -3690,7 +4427,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Relicanth + + [NATIONAL_DEX_RELICANTH] = + { .categoryName = _("LONGEVITY"), .height = 10, .weight = 234, @@ -3700,7 +4439,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Luvdisc + + [NATIONAL_DEX_LUVDISC] = + { .categoryName = _("RENDEZVOUS"), .height = 6, .weight = 87, @@ -3710,7 +4451,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Bagon + + [NATIONAL_DEX_BAGON] = + { .categoryName = _("ROCK HEAD"), .height = 6, .weight = 421, @@ -3720,7 +4463,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Shelgon + + [NATIONAL_DEX_SHELGON] = + { .categoryName = _("ENDURANCE"), .height = 11, .weight = 1105, @@ -3730,7 +4475,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Salamence + + [NATIONAL_DEX_SALAMENCE] = + { .categoryName = _("DRAGON"), .height = 15, .weight = 1026, @@ -3740,7 +4487,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Beldum + + [NATIONAL_DEX_BELDUM] = + { .categoryName = _("IRON BALL"), .height = 6, .weight = 952, @@ -3750,7 +4499,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Metang + + [NATIONAL_DEX_METANG] = + { .categoryName = _("IRON CLAW"), .height = 12, .weight = 2025, @@ -3760,7 +4511,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Metagross + + [NATIONAL_DEX_METAGROSS] = + { .categoryName = _("IRON LEG"), .height = 16, .weight = 5500, @@ -3770,7 +4523,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 447, .trainerOffset = 9, }, - { //Regirock + + [NATIONAL_DEX_REGIROCK] = + { .categoryName = _("ROCK PEAK"), .height = 17, .weight = 2300, @@ -3780,7 +4535,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 309, .trainerOffset = 1, }, - { //Regice + + [NATIONAL_DEX_REGICE] = + { .categoryName = _("ICEBERG"), .height = 18, .weight = 1750, @@ -3790,7 +4547,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 301, .trainerOffset = 2, }, - { //Registeel + + [NATIONAL_DEX_REGISTEEL] = + { .categoryName = _("IRON"), .height = 19, .weight = 2050, @@ -3800,7 +4559,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 359, .trainerOffset = 6, }, - { //Latias + + [NATIONAL_DEX_LATIAS] = + { .categoryName = _("EON"), .height = 14, .weight = 400, @@ -3810,7 +4571,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Latios + + [NATIONAL_DEX_LATIOS] = + { .categoryName = _("EON"), .height = 20, .weight = 600, @@ -3820,7 +4583,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 294, .trainerOffset = 3, }, - { //Kyogre + + [NATIONAL_DEX_KYOGRE] = + { .categoryName = _("SEA BASIN"), .height = 45, .weight = 3520, @@ -3830,7 +4595,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 614, .trainerOffset = 13, }, - { //Groudon + + [NATIONAL_DEX_GROUDON] = + { .categoryName = _("CONTINENT"), .height = 35, .weight = 9500, @@ -3840,7 +4607,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 515, .trainerOffset = 14, }, - { //Rayquaza + + [NATIONAL_DEX_RAYQUAZA] = + { .categoryName = _("SKY HIGH"), .height = 70, .weight = 2065, @@ -3850,7 +4619,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 448, .trainerOffset = 12, }, - { //Jirachi + + [NATIONAL_DEX_JIRACHI] = + { .categoryName = _("WISH"), .height = 3, .weight = 11, @@ -3860,7 +4631,9 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, - { //Deoxys + + [NATIONAL_DEX_DEOXYS] = + { .categoryName = _("DNA"), .height = 17, .weight = 608, diff --git a/src/data/pokemon/pokedex_orders.h b/src/data/pokemon/pokedex_orders.h new file mode 100644 index 000000000..55b0abcea --- /dev/null +++ b/src/data/pokemon/pokedex_orders.h @@ -0,0 +1,1195 @@ +const u16 gPokedexOrder_Alphabetical[] = +{ + NATIONAL_DEX_OLD_UNOWN_B, + NATIONAL_DEX_OLD_UNOWN_C, + NATIONAL_DEX_OLD_UNOWN_D, + NATIONAL_DEX_OLD_UNOWN_E, + NATIONAL_DEX_OLD_UNOWN_F, + NATIONAL_DEX_OLD_UNOWN_G, + NATIONAL_DEX_OLD_UNOWN_H, + NATIONAL_DEX_OLD_UNOWN_I, + NATIONAL_DEX_OLD_UNOWN_J, + NATIONAL_DEX_OLD_UNOWN_K, + NATIONAL_DEX_OLD_UNOWN_L, + NATIONAL_DEX_OLD_UNOWN_M, + NATIONAL_DEX_OLD_UNOWN_N, + NATIONAL_DEX_OLD_UNOWN_O, + NATIONAL_DEX_OLD_UNOWN_P, + NATIONAL_DEX_OLD_UNOWN_Q, + NATIONAL_DEX_OLD_UNOWN_R, + NATIONAL_DEX_OLD_UNOWN_S, + NATIONAL_DEX_OLD_UNOWN_T, + NATIONAL_DEX_OLD_UNOWN_U, + NATIONAL_DEX_OLD_UNOWN_V, + NATIONAL_DEX_OLD_UNOWN_W, + NATIONAL_DEX_OLD_UNOWN_X, + NATIONAL_DEX_OLD_UNOWN_Y, + NATIONAL_DEX_OLD_UNOWN_Z, + // Actual pokemon start here. + NATIONAL_DEX_ABRA, + NATIONAL_DEX_ABSOL, + NATIONAL_DEX_AERODACTYL, + NATIONAL_DEX_AGGRON, + NATIONAL_DEX_AIPOM, + NATIONAL_DEX_ALAKAZAM, + NATIONAL_DEX_ALTARIA, + NATIONAL_DEX_AMPHAROS, + NATIONAL_DEX_ANORITH, + NATIONAL_DEX_ARBOK, + NATIONAL_DEX_ARCANINE, + NATIONAL_DEX_ARIADOS, + NATIONAL_DEX_ARMALDO, + NATIONAL_DEX_ARON, + NATIONAL_DEX_ARTICUNO, + NATIONAL_DEX_AZUMARILL, + NATIONAL_DEX_AZURILL, + NATIONAL_DEX_BAGON, + NATIONAL_DEX_BALTOY, + NATIONAL_DEX_BANETTE, + NATIONAL_DEX_BARBOACH, + NATIONAL_DEX_BAYLEEF, + NATIONAL_DEX_BEAUTIFLY, + NATIONAL_DEX_BEEDRILL, + NATIONAL_DEX_BELDUM, + NATIONAL_DEX_BELLOSSOM, + NATIONAL_DEX_BELLSPROUT, + NATIONAL_DEX_BLASTOISE, + NATIONAL_DEX_BLAZIKEN, + NATIONAL_DEX_BLISSEY, + NATIONAL_DEX_BRELOOM, + NATIONAL_DEX_BULBASAUR, + NATIONAL_DEX_BUTTERFREE, + NATIONAL_DEX_CACNEA, + NATIONAL_DEX_CACTURNE, + NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_CARVANHA, + NATIONAL_DEX_CASCOON, + NATIONAL_DEX_CASTFORM, + NATIONAL_DEX_CATERPIE, + NATIONAL_DEX_CELEBI, + NATIONAL_DEX_CHANSEY, + NATIONAL_DEX_CHARIZARD, + NATIONAL_DEX_CHARMANDER, + NATIONAL_DEX_CHARMELEON, + NATIONAL_DEX_CHIKORITA, + NATIONAL_DEX_CHIMECHO, + NATIONAL_DEX_CHINCHOU, + NATIONAL_DEX_CLAMPERL, + NATIONAL_DEX_CLAYDOL, + NATIONAL_DEX_CLEFABLE, + NATIONAL_DEX_CLEFAIRY, + NATIONAL_DEX_CLEFFA, + NATIONAL_DEX_CLOYSTER, + NATIONAL_DEX_COMBUSKEN, + NATIONAL_DEX_CORPHISH, + NATIONAL_DEX_CORSOLA, + NATIONAL_DEX_CRADILY, + NATIONAL_DEX_CRAWDAUNT, + NATIONAL_DEX_CROBAT, + NATIONAL_DEX_CROCONAW, + NATIONAL_DEX_CUBONE, + NATIONAL_DEX_CYNDAQUIL, + NATIONAL_DEX_DELCATTY, + NATIONAL_DEX_DELIBIRD, + NATIONAL_DEX_DEOXYS, + NATIONAL_DEX_DEWGONG, + NATIONAL_DEX_DIGLETT, + NATIONAL_DEX_DITTO, + NATIONAL_DEX_DODRIO, + NATIONAL_DEX_DODUO, + NATIONAL_DEX_DONPHAN, + NATIONAL_DEX_DRAGONAIR, + NATIONAL_DEX_DRAGONITE, + NATIONAL_DEX_DRATINI, + NATIONAL_DEX_DROWZEE, + NATIONAL_DEX_DUGTRIO, + NATIONAL_DEX_DUNSPARCE, + NATIONAL_DEX_DUSCLOPS, + NATIONAL_DEX_DUSKULL, + NATIONAL_DEX_DUSTOX, + NATIONAL_DEX_EEVEE, + NATIONAL_DEX_EKANS, + NATIONAL_DEX_ELECTABUZZ, + NATIONAL_DEX_ELECTRIKE, + NATIONAL_DEX_ELECTRODE, + NATIONAL_DEX_ELEKID, + NATIONAL_DEX_ENTEI, + NATIONAL_DEX_ESPEON, + NATIONAL_DEX_EXEGGCUTE, + NATIONAL_DEX_EXEGGUTOR, + NATIONAL_DEX_EXPLOUD, + NATIONAL_DEX_FARFETCHD, + NATIONAL_DEX_FEAROW, + NATIONAL_DEX_FEEBAS, + NATIONAL_DEX_FERALIGATR, + NATIONAL_DEX_FLAAFFY, + NATIONAL_DEX_FLAREON, + NATIONAL_DEX_FLYGON, + NATIONAL_DEX_FORRETRESS, + NATIONAL_DEX_FURRET, + NATIONAL_DEX_GARDEVOIR, + NATIONAL_DEX_GASTLY, + NATIONAL_DEX_GENGAR, + NATIONAL_DEX_GEODUDE, + NATIONAL_DEX_GIRAFARIG, + NATIONAL_DEX_GLALIE, + NATIONAL_DEX_GLIGAR, + NATIONAL_DEX_GLOOM, + NATIONAL_DEX_GOLBAT, + NATIONAL_DEX_GOLDEEN, + NATIONAL_DEX_GOLDUCK, + NATIONAL_DEX_GOLEM, + NATIONAL_DEX_GOREBYSS, + NATIONAL_DEX_GRANBULL, + NATIONAL_DEX_GRAVELER, + NATIONAL_DEX_GRIMER, + NATIONAL_DEX_GROUDON, + NATIONAL_DEX_GROVYLE, + NATIONAL_DEX_GROWLITHE, + NATIONAL_DEX_GRUMPIG, + NATIONAL_DEX_GULPIN, + NATIONAL_DEX_GYARADOS, + NATIONAL_DEX_HARIYAMA, + NATIONAL_DEX_HAUNTER, + NATIONAL_DEX_HERACROSS, + NATIONAL_DEX_HITMONCHAN, + NATIONAL_DEX_HITMONLEE, + NATIONAL_DEX_HITMONTOP, + NATIONAL_DEX_HO_OH, + NATIONAL_DEX_HOOTHOOT, + NATIONAL_DEX_HOPPIP, + NATIONAL_DEX_HORSEA, + NATIONAL_DEX_HOUNDOOM, + NATIONAL_DEX_HOUNDOUR, + NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_HYPNO, + NATIONAL_DEX_IGGLYBUFF, + NATIONAL_DEX_ILLUMISE, + NATIONAL_DEX_IVYSAUR, + NATIONAL_DEX_JIGGLYPUFF, + NATIONAL_DEX_JIRACHI, + NATIONAL_DEX_JOLTEON, + NATIONAL_DEX_JUMPLUFF, + NATIONAL_DEX_JYNX, + NATIONAL_DEX_KABUTO, + NATIONAL_DEX_KABUTOPS, + NATIONAL_DEX_KADABRA, + NATIONAL_DEX_KAKUNA, + NATIONAL_DEX_KANGASKHAN, + NATIONAL_DEX_KECLEON, + NATIONAL_DEX_KINGDRA, + NATIONAL_DEX_KINGLER, + NATIONAL_DEX_KIRLIA, + NATIONAL_DEX_KOFFING, + NATIONAL_DEX_KRABBY, + NATIONAL_DEX_KYOGRE, + NATIONAL_DEX_LAIRON, + NATIONAL_DEX_LANTURN, + NATIONAL_DEX_LAPRAS, + NATIONAL_DEX_LARVITAR, + NATIONAL_DEX_LATIAS, + NATIONAL_DEX_LATIOS, + NATIONAL_DEX_LEDIAN, + NATIONAL_DEX_LEDYBA, + NATIONAL_DEX_LICKITUNG, + NATIONAL_DEX_LILEEP, + NATIONAL_DEX_LINOONE, + NATIONAL_DEX_LOMBRE, + NATIONAL_DEX_LOTAD, + NATIONAL_DEX_LOUDRED, + NATIONAL_DEX_LUDICOLO, + NATIONAL_DEX_LUGIA, + NATIONAL_DEX_LUNATONE, + NATIONAL_DEX_LUVDISC, + NATIONAL_DEX_MACHAMP, + NATIONAL_DEX_MACHOKE, + NATIONAL_DEX_MACHOP, + NATIONAL_DEX_MAGBY, + NATIONAL_DEX_MAGCARGO, + NATIONAL_DEX_MAGIKARP, + NATIONAL_DEX_MAGMAR, + NATIONAL_DEX_MAGNEMITE, + NATIONAL_DEX_MAGNETON, + NATIONAL_DEX_MAKUHITA, + NATIONAL_DEX_MANECTRIC, + NATIONAL_DEX_MANKEY, + NATIONAL_DEX_MANTINE, + NATIONAL_DEX_MAREEP, + NATIONAL_DEX_MARILL, + NATIONAL_DEX_MAROWAK, + NATIONAL_DEX_MARSHTOMP, + NATIONAL_DEX_MASQUERAIN, + NATIONAL_DEX_MAWILE, + NATIONAL_DEX_MEDICHAM, + NATIONAL_DEX_MEDITITE, + NATIONAL_DEX_MEGANIUM, + NATIONAL_DEX_MEOWTH, + NATIONAL_DEX_METAGROSS, + NATIONAL_DEX_METANG, + NATIONAL_DEX_METAPOD, + NATIONAL_DEX_MEW, + NATIONAL_DEX_MEWTWO, + NATIONAL_DEX_MIGHTYENA, + NATIONAL_DEX_MILOTIC, + NATIONAL_DEX_MILTANK, + NATIONAL_DEX_MINUN, + NATIONAL_DEX_MISDREAVUS, + NATIONAL_DEX_MOLTRES, + NATIONAL_DEX_MR_MIME, + NATIONAL_DEX_MUDKIP, + NATIONAL_DEX_MUK, + NATIONAL_DEX_MURKROW, + NATIONAL_DEX_NATU, + NATIONAL_DEX_NIDOKING, + NATIONAL_DEX_NIDOQUEEN, + NATIONAL_DEX_NIDORAN_F, + NATIONAL_DEX_NIDORAN_M, + NATIONAL_DEX_NIDORINA, + NATIONAL_DEX_NIDORINO, + NATIONAL_DEX_NINCADA, + NATIONAL_DEX_NINETALES, + NATIONAL_DEX_NINJASK, + NATIONAL_DEX_NOCTOWL, + NATIONAL_DEX_NOSEPASS, + NATIONAL_DEX_NUMEL, + NATIONAL_DEX_NUZLEAF, + NATIONAL_DEX_OCTILLERY, + NATIONAL_DEX_ODDISH, + NATIONAL_DEX_OMANYTE, + NATIONAL_DEX_OMASTAR, + NATIONAL_DEX_ONIX, + NATIONAL_DEX_PARAS, + NATIONAL_DEX_PARASECT, + NATIONAL_DEX_PELIPPER, + NATIONAL_DEX_PERSIAN, + NATIONAL_DEX_PHANPY, + NATIONAL_DEX_PICHU, + NATIONAL_DEX_PIDGEOT, + NATIONAL_DEX_PIDGEOTTO, + NATIONAL_DEX_PIDGEY, + NATIONAL_DEX_PIKACHU, + NATIONAL_DEX_PILOSWINE, + NATIONAL_DEX_PINECO, + NATIONAL_DEX_PINSIR, + NATIONAL_DEX_PLUSLE, + NATIONAL_DEX_POLITOED, + NATIONAL_DEX_POLIWAG, + NATIONAL_DEX_POLIWHIRL, + NATIONAL_DEX_POLIWRATH, + NATIONAL_DEX_PONYTA, + NATIONAL_DEX_POOCHYENA, + NATIONAL_DEX_PORYGON, + NATIONAL_DEX_PORYGON2, + NATIONAL_DEX_PRIMEAPE, + NATIONAL_DEX_PSYDUCK, + NATIONAL_DEX_PUPITAR, + NATIONAL_DEX_QUAGSIRE, + NATIONAL_DEX_QUILAVA, + NATIONAL_DEX_QWILFISH, + NATIONAL_DEX_RAICHU, + NATIONAL_DEX_RAIKOU, + NATIONAL_DEX_RALTS, + NATIONAL_DEX_RAPIDASH, + NATIONAL_DEX_RATICATE, + NATIONAL_DEX_RATTATA, + NATIONAL_DEX_RAYQUAZA, + NATIONAL_DEX_REGICE, + NATIONAL_DEX_REGIROCK, + NATIONAL_DEX_REGISTEEL, + NATIONAL_DEX_RELICANTH, + NATIONAL_DEX_REMORAID, + NATIONAL_DEX_RHYDON, + NATIONAL_DEX_RHYHORN, + NATIONAL_DEX_ROSELIA, + NATIONAL_DEX_SABLEYE, + NATIONAL_DEX_SALAMENCE, + NATIONAL_DEX_SANDSHREW, + NATIONAL_DEX_SANDSLASH, + NATIONAL_DEX_SCEPTILE, + NATIONAL_DEX_SCIZOR, + NATIONAL_DEX_SCYTHER, + NATIONAL_DEX_SEADRA, + NATIONAL_DEX_SEAKING, + NATIONAL_DEX_SEALEO, + NATIONAL_DEX_SEEDOT, + NATIONAL_DEX_SEEL, + NATIONAL_DEX_SENTRET, + NATIONAL_DEX_SEVIPER, + NATIONAL_DEX_SHARPEDO, + NATIONAL_DEX_SHEDINJA, + NATIONAL_DEX_SHELGON, + NATIONAL_DEX_SHELLDER, + NATIONAL_DEX_SHIFTRY, + NATIONAL_DEX_SHROOMISH, + NATIONAL_DEX_SHUCKLE, + NATIONAL_DEX_SHUPPET, + NATIONAL_DEX_SILCOON, + NATIONAL_DEX_SKARMORY, + NATIONAL_DEX_SKIPLOOM, + NATIONAL_DEX_SKITTY, + NATIONAL_DEX_SLAKING, + NATIONAL_DEX_SLAKOTH, + NATIONAL_DEX_SLOWBRO, + NATIONAL_DEX_SLOWKING, + NATIONAL_DEX_SLOWPOKE, + NATIONAL_DEX_SLUGMA, + NATIONAL_DEX_SMEARGLE, + NATIONAL_DEX_SMOOCHUM, + NATIONAL_DEX_SNEASEL, + NATIONAL_DEX_SNORLAX, + NATIONAL_DEX_SNORUNT, + NATIONAL_DEX_SNUBBULL, + NATIONAL_DEX_SOLROCK, + NATIONAL_DEX_SPEAROW, + NATIONAL_DEX_SPHEAL, + NATIONAL_DEX_SPINARAK, + NATIONAL_DEX_SPINDA, + NATIONAL_DEX_SPOINK, + NATIONAL_DEX_SQUIRTLE, + NATIONAL_DEX_STANTLER, + NATIONAL_DEX_STARMIE, + NATIONAL_DEX_STARYU, + NATIONAL_DEX_STEELIX, + NATIONAL_DEX_SUDOWOODO, + NATIONAL_DEX_SUICUNE, + NATIONAL_DEX_SUNFLORA, + NATIONAL_DEX_SUNKERN, + NATIONAL_DEX_SURSKIT, + NATIONAL_DEX_SWABLU, + NATIONAL_DEX_SWALOT, + NATIONAL_DEX_SWAMPERT, + NATIONAL_DEX_SWELLOW, + NATIONAL_DEX_SWINUB, + NATIONAL_DEX_TAILLOW, + NATIONAL_DEX_TANGELA, + NATIONAL_DEX_TAUROS, + NATIONAL_DEX_TEDDIURSA, + NATIONAL_DEX_TENTACOOL, + NATIONAL_DEX_TENTACRUEL, + NATIONAL_DEX_TOGEPI, + NATIONAL_DEX_TOGETIC, + NATIONAL_DEX_TORCHIC, + NATIONAL_DEX_TORKOAL, + NATIONAL_DEX_TOTODILE, + NATIONAL_DEX_TRAPINCH, + NATIONAL_DEX_TREECKO, + NATIONAL_DEX_TROPIUS, + NATIONAL_DEX_TYPHLOSION, + NATIONAL_DEX_TYRANITAR, + NATIONAL_DEX_TYROGUE, + NATIONAL_DEX_UMBREON, + NATIONAL_DEX_UNOWN, + NATIONAL_DEX_URSARING, + NATIONAL_DEX_VAPOREON, + NATIONAL_DEX_VENOMOTH, + NATIONAL_DEX_VENONAT, + NATIONAL_DEX_VENUSAUR, + NATIONAL_DEX_VIBRAVA, + NATIONAL_DEX_VICTREEBEL, + NATIONAL_DEX_VIGOROTH, + NATIONAL_DEX_VILEPLUME, + NATIONAL_DEX_VOLBEAT, + NATIONAL_DEX_VOLTORB, + NATIONAL_DEX_VULPIX, + NATIONAL_DEX_WAILMER, + NATIONAL_DEX_WAILORD, + NATIONAL_DEX_WALREIN, + NATIONAL_DEX_WARTORTLE, + NATIONAL_DEX_WEEDLE, + NATIONAL_DEX_WEEPINBELL, + NATIONAL_DEX_WEEZING, + NATIONAL_DEX_WHISCASH, + NATIONAL_DEX_WHISMUR, + NATIONAL_DEX_WIGGLYTUFF, + NATIONAL_DEX_WINGULL, + NATIONAL_DEX_WOBBUFFET, + NATIONAL_DEX_WOOPER, + NATIONAL_DEX_WURMPLE, + NATIONAL_DEX_WYNAUT, + NATIONAL_DEX_XATU, + NATIONAL_DEX_YANMA, + NATIONAL_DEX_ZANGOOSE, + NATIONAL_DEX_ZAPDOS, + NATIONAL_DEX_ZIGZAGOON, + NATIONAL_DEX_ZUBAT, +}; + +const u16 gPokedexOrder_Weight[] = +{ + NATIONAL_DEX_GASTLY, + NATIONAL_DEX_HAUNTER, + NATIONAL_DEX_HOPPIP, + NATIONAL_DEX_DIGLETT, + NATIONAL_DEX_CASTFORM, + NATIONAL_DEX_KOFFING, + NATIONAL_DEX_IGGLYBUFF, + NATIONAL_DEX_MISDREAVUS, + NATIONAL_DEX_CHIMECHO, + NATIONAL_DEX_SKIPLOOM, + NATIONAL_DEX_JIRACHI, + NATIONAL_DEX_SWABLU, + NATIONAL_DEX_SHEDINJA, + NATIONAL_DEX_TOGEPI, + NATIONAL_DEX_SURSKIT, + NATIONAL_DEX_PIDGEY, + NATIONAL_DEX_SUNKERN, + NATIONAL_DEX_BARBOACH, + NATIONAL_DEX_PICHU, + NATIONAL_DEX_AZURILL, + NATIONAL_DEX_ROSELIA, + NATIONAL_DEX_NATU, + NATIONAL_DEX_SPEAROW, + NATIONAL_DEX_MURKROW, + NATIONAL_DEX_SHUPPET, + NATIONAL_DEX_TAILLOW, + NATIONAL_DEX_EXEGGCUTE, + NATIONAL_DEX_TORCHIC, + NATIONAL_DEX_LOTAD, + NATIONAL_DEX_CATERPIE, + NATIONAL_DEX_JUMPLUFF, + NATIONAL_DEX_CLEFFA, + NATIONAL_DEX_WEEDLE, + NATIONAL_DEX_TOGETIC, + NATIONAL_DEX_DRATINI, + NATIONAL_DEX_RATTATA, + NATIONAL_DEX_MASQUERAIN, + NATIONAL_DEX_WURMPLE, + NATIONAL_DEX_QWILFISH, + NATIONAL_DEX_MEW, + NATIONAL_DEX_SHELLDER, + NATIONAL_DEX_SEEDOT, + NATIONAL_DEX_DITTO, + NATIONAL_DEX_BELLSPROUT, + NATIONAL_DEX_PLUSLE, + NATIONAL_DEX_MEOWTH, + NATIONAL_DEX_MINUN, + NATIONAL_DEX_SHROOMISH, + NATIONAL_DEX_CELEBI, + NATIONAL_DEX_CORSOLA, + NATIONAL_DEX_TREECKO, + NATIONAL_DEX_SPINDA, + NATIONAL_DEX_UNOWN, + NATIONAL_DEX_PARAS, + NATIONAL_DEX_ODDISH, + NATIONAL_DEX_JIGGLYPUFF, + NATIONAL_DEX_NINCADA, + NATIONAL_DEX_BELLOSSOM, + NATIONAL_DEX_MAGNEMITE, + NATIONAL_DEX_PIKACHU, + NATIONAL_DEX_SMOOCHUM, + NATIONAL_DEX_SENTRET, + NATIONAL_DEX_WEEPINBELL, + NATIONAL_DEX_CHIKORITA, + NATIONAL_DEX_SWINUB, + NATIONAL_DEX_EEVEE, + NATIONAL_DEX_KRABBY, + NATIONAL_DEX_CUBONE, + NATIONAL_DEX_RALTS, + NATIONAL_DEX_BULBASAUR, + NATIONAL_DEX_EKANS, + NATIONAL_DEX_NIDORAN_F, + NATIONAL_DEX_PINECO, + NATIONAL_DEX_FEEBAS, + NATIONAL_DEX_OMANYTE, + NATIONAL_DEX_ZUBAT, + NATIONAL_DEX_CLEFAIRY, + NATIONAL_DEX_MUDKIP, + NATIONAL_DEX_SNUBBULL, + NATIONAL_DEX_MAREEP, + NATIONAL_DEX_CYNDAQUIL, + NATIONAL_DEX_HORSEA, + NATIONAL_DEX_CHARMANDER, + NATIONAL_DEX_SUNFLORA, + NATIONAL_DEX_MARILL, + NATIONAL_DEX_WOOPER, + NATIONAL_DEX_SPINARAK, + NATIONAL_DEX_GLOOM, + NATIONAL_DEX_LUVDISC, + NATIONAL_DEX_TEDDIURSA, + NATIONAL_DEX_NIDORAN_M, + NATIONAL_DEX_SQUIRTLE, + NATIONAL_DEX_WINGULL, + NATIONAL_DEX_TOTODILE, + NATIONAL_DEX_WEEZING, + NATIONAL_DEX_VULPIX, + NATIONAL_DEX_METAPOD, + NATIONAL_DEX_SILCOON, + NATIONAL_DEX_MAGIKARP, + NATIONAL_DEX_KAKUNA, + NATIONAL_DEX_GULPIN, + NATIONAL_DEX_VOLTORB, + NATIONAL_DEX_LEDYBA, + NATIONAL_DEX_HOUNDOUR, + NATIONAL_DEX_SKITTY, + NATIONAL_DEX_SABLEYE, + NATIONAL_DEX_MEDITITE, + NATIONAL_DEX_CORPHISH, + NATIONAL_DEX_AIPOM, + NATIONAL_DEX_CASCOON, + NATIONAL_DEX_MAWILE, + NATIONAL_DEX_KABUTO, + NATIONAL_DEX_WIGGLYTUFF, + NATIONAL_DEX_SANDSHREW, + NATIONAL_DEX_REMORAID, + NATIONAL_DEX_NINJASK, + NATIONAL_DEX_CHINCHOU, + NATIONAL_DEX_POLIWAG, + NATIONAL_DEX_ANORITH, + NATIONAL_DEX_VENOMOTH, + NATIONAL_DEX_BANETTE, + NATIONAL_DEX_IVYSAUR, + NATIONAL_DEX_FLAAFFY, + NATIONAL_DEX_POOCHYENA, + NATIONAL_DEX_WYNAUT, + NATIONAL_DEX_DUNSPARCE, + NATIONAL_DEX_XATU, + NATIONAL_DEX_DUSKULL, + NATIONAL_DEX_FARFETCHD, + NATIONAL_DEX_TRAPINCH, + NATIONAL_DEX_GOLDEEN, + NATIONAL_DEX_ELECTRIKE, + NATIONAL_DEX_VIBRAVA, + NATIONAL_DEX_VICTREEBEL, + NATIONAL_DEX_BAYLEEF, + NATIONAL_DEX_DELIBIRD, + NATIONAL_DEX_WHISMUR, + NATIONAL_DEX_DRAGONAIR, + NATIONAL_DEX_SNORUNT, + NATIONAL_DEX_ZIGZAGOON, + NATIONAL_DEX_ILLUMISE, + NATIONAL_DEX_VOLBEAT, + NATIONAL_DEX_RATICATE, + NATIONAL_DEX_VILEPLUME, + NATIONAL_DEX_QUILAVA, + NATIONAL_DEX_CHARMELEON, + NATIONAL_DEX_GROWLITHE, + NATIONAL_DEX_COMBUSKEN, + NATIONAL_DEX_MACHOP, + NATIONAL_DEX_ABRA, + NATIONAL_DEX_NIDORINO, + NATIONAL_DEX_PSYDUCK, + NATIONAL_DEX_SWELLOW, + NATIONAL_DEX_NINETALES, + NATIONAL_DEX_NIDORINA, + NATIONAL_DEX_POLIWHIRL, + NATIONAL_DEX_GEODUDE, + NATIONAL_DEX_KIRLIA, + NATIONAL_DEX_SHUCKLE, + NATIONAL_DEX_ALTARIA, + NATIONAL_DEX_CARVANHA, + NATIONAL_DEX_TYROGUE, + NATIONAL_DEX_HOOTHOOT, + NATIONAL_DEX_MAGBY, + NATIONAL_DEX_BALTOY, + NATIONAL_DEX_GROVYLE, + NATIONAL_DEX_KECLEON, + NATIONAL_DEX_LANTURN, + NATIONAL_DEX_WARTORTLE, + NATIONAL_DEX_GOREBYSS, + NATIONAL_DEX_RELICANTH, + NATIONAL_DEX_ELEKID, + NATIONAL_DEX_WHISCASH, + NATIONAL_DEX_LILEEP, + NATIONAL_DEX_NUMEL, + NATIONAL_DEX_SLAKOTH, + NATIONAL_DEX_JOLTEON, + NATIONAL_DEX_CROCONAW, + NATIONAL_DEX_FLAREON, + NATIONAL_DEX_SEADRA, + NATIONAL_DEX_ESPEON, + NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_UMBREON, + NATIONAL_DEX_MARSHTOMP, + NATIONAL_DEX_NUZLEAF, + NATIONAL_DEX_SNEASEL, + NATIONAL_DEX_MANKEY, + NATIONAL_DEX_PELIPPER, + NATIONAL_DEX_BEAUTIFLY, + NATIONAL_DEX_OCTILLERY, + NATIONAL_DEX_AZUMARILL, + NATIONAL_DEX_WOBBUFFET, + NATIONAL_DEX_VAPOREON, + NATIONAL_DEX_SANDSLASH, + NATIONAL_DEX_PARASECT, + NATIONAL_DEX_BEEDRILL, + NATIONAL_DEX_MUK, + NATIONAL_DEX_PIDGEOTTO, + NATIONAL_DEX_GRIMER, + NATIONAL_DEX_RAICHU, + NATIONAL_DEX_PONYTA, + NATIONAL_DEX_ELECTABUZZ, + NATIONAL_DEX_VENONAT, + NATIONAL_DEX_SPOINK, + NATIONAL_DEX_DUSCLOPS, + NATIONAL_DEX_MEDICHAM, + NATIONAL_DEX_DUSTOX, + NATIONAL_DEX_PERSIAN, + NATIONAL_DEX_BUTTERFREE, + NATIONAL_DEX_PRIMEAPE, + NATIONAL_DEX_DROWZEE, + NATIONAL_DEX_FURRET, + NATIONAL_DEX_PORYGON2, + NATIONAL_DEX_LOMBRE, + NATIONAL_DEX_LINOONE, + NATIONAL_DEX_DELCATTY, + NATIONAL_DEX_CRAWDAUNT, + NATIONAL_DEX_DUGTRIO, + NATIONAL_DEX_ARIADOS, + NATIONAL_DEX_PHANPY, + NATIONAL_DEX_POLITOED, + NATIONAL_DEX_STARYU, + NATIONAL_DEX_CHANSEY, + NATIONAL_DEX_OMASTAR, + NATIONAL_DEX_TANGELA, + NATIONAL_DEX_SLUGMA, + NATIONAL_DEX_HOUNDOOM, + NATIONAL_DEX_LEDIAN, + NATIONAL_DEX_SLOWPOKE, + NATIONAL_DEX_PORYGON, + NATIONAL_DEX_MIGHTYENA, + NATIONAL_DEX_YANMA, + NATIONAL_DEX_FEAROW, + NATIONAL_DEX_SUDOWOODO, + NATIONAL_DEX_SEAKING, + NATIONAL_DEX_BRELOOM, + NATIONAL_DEX_DODUO, + NATIONAL_DEX_PIDGEOT, + NATIONAL_DEX_SPHEAL, + NATIONAL_DEX_CLEFABLE, + NATIONAL_DEX_LATIAS, + NATIONAL_DEX_MANECTRIC, + NATIONAL_DEX_ZANGOOSE, + NATIONAL_DEX_KABUTOPS, + NATIONAL_DEX_GENGAR, + NATIONAL_DEX_LOUDRED, + NATIONAL_DEX_JYNX, + NATIONAL_DEX_NOCTOWL, + NATIONAL_DEX_GIRAFARIG, + NATIONAL_DEX_BAGON, + NATIONAL_DEX_MAGMAR, + NATIONAL_DEX_MAROWAK, + NATIONAL_DEX_TENTACOOL, + NATIONAL_DEX_VIGOROTH, + NATIONAL_DEX_BLISSEY, + NATIONAL_DEX_ABSOL, + NATIONAL_DEX_ALAKAZAM, + NATIONAL_DEX_HITMONTOP, + NATIONAL_DEX_GARDEVOIR, + NATIONAL_DEX_GRANBULL, + NATIONAL_DEX_HITMONLEE, + NATIONAL_DEX_HITMONCHAN, + NATIONAL_DEX_SKARMORY, + NATIONAL_DEX_CACNEA, + NATIONAL_DEX_BLAZIKEN, + NATIONAL_DEX_SCEPTILE, + NATIONAL_DEX_SEVIPER, + NATIONAL_DEX_CLAMPERL, + NATIONAL_DEX_ZAPDOS, + NATIONAL_DEX_HERACROSS, + NATIONAL_DEX_POLIWRATH, + NATIONAL_DEX_MR_MIME, + NATIONAL_DEX_PINSIR, + NATIONAL_DEX_LUDICOLO, + NATIONAL_DEX_TENTACRUEL, + NATIONAL_DEX_GOLBAT, + NATIONAL_DEX_MAGCARGO, + NATIONAL_DEX_ARTICUNO, + NATIONAL_DEX_PILOSWINE, + NATIONAL_DEX_SCYTHER, + NATIONAL_DEX_KADABRA, + NATIONAL_DEX_SMEARGLE, + NATIONAL_DEX_AERODACTYL, + NATIONAL_DEX_SHIFTRY, + NATIONAL_DEX_KINGLER, + NATIONAL_DEX_NIDOQUEEN, + NATIONAL_DEX_MAGNETON, + NATIONAL_DEX_ARON, + NATIONAL_DEX_LATIOS, + NATIONAL_DEX_MOLTRES, + NATIONAL_DEX_CRADILY, + NATIONAL_DEX_DEOXYS, + NATIONAL_DEX_AMPHAROS, + NATIONAL_DEX_NIDOKING, + NATIONAL_DEX_GLIGAR, + NATIONAL_DEX_ARBOK, + NATIONAL_DEX_LICKITUNG, + NATIONAL_DEX_ELECTRODE, + NATIONAL_DEX_ARMALDO, + NATIONAL_DEX_MACHOKE, + NATIONAL_DEX_STANTLER, + NATIONAL_DEX_GRUMPIG, + NATIONAL_DEX_LARVITAR, + NATIONAL_DEX_CROBAT, + NATIONAL_DEX_QUAGSIRE, + NATIONAL_DEX_MILTANK, + NATIONAL_DEX_HYPNO, + NATIONAL_DEX_GOLDUCK, + NATIONAL_DEX_CACTURNE, + NATIONAL_DEX_SLOWBRO, + NATIONAL_DEX_TYPHLOSION, + NATIONAL_DEX_SLOWKING, + NATIONAL_DEX_KANGASKHAN, + NATIONAL_DEX_STARMIE, + NATIONAL_DEX_SWALOT, + NATIONAL_DEX_TORKOAL, + NATIONAL_DEX_SWAMPERT, + NATIONAL_DEX_FLYGON, + NATIONAL_DEX_EXPLOUD, + NATIONAL_DEX_DODRIO, + NATIONAL_DEX_BLASTOISE, + NATIONAL_DEX_MAKUHITA, + NATIONAL_DEX_SEALEO, + NATIONAL_DEX_TAUROS, + NATIONAL_DEX_SHARPEDO, + NATIONAL_DEX_FERALIGATR, + NATIONAL_DEX_SEEL, + NATIONAL_DEX_CHARIZARD, + NATIONAL_DEX_RAPIDASH, + NATIONAL_DEX_BELDUM, + NATIONAL_DEX_NOSEPASS, + NATIONAL_DEX_VENUSAUR, + NATIONAL_DEX_TROPIUS, + NATIONAL_DEX_MEGANIUM, + NATIONAL_DEX_SALAMENCE, + NATIONAL_DEX_GRAVELER, + NATIONAL_DEX_CLAYDOL, + NATIONAL_DEX_SHELGON, + NATIONAL_DEX_RHYHORN, + NATIONAL_DEX_SCIZOR, + NATIONAL_DEX_DEWGONG, + NATIONAL_DEX_RHYDON, + NATIONAL_DEX_DONPHAN, + NATIONAL_DEX_EXEGGUTOR, + NATIONAL_DEX_LAIRON, + NATIONAL_DEX_MEWTWO, + NATIONAL_DEX_URSARING, + NATIONAL_DEX_FORRETRESS, + NATIONAL_DEX_MACHAMP, + NATIONAL_DEX_WAILMER, + NATIONAL_DEX_SLAKING, + NATIONAL_DEX_CLOYSTER, + NATIONAL_DEX_WALREIN, + NATIONAL_DEX_PUPITAR, + NATIONAL_DEX_KINGDRA, + NATIONAL_DEX_SOLROCK, + NATIONAL_DEX_ARCANINE, + NATIONAL_DEX_MILOTIC, + NATIONAL_DEX_LUNATONE, + NATIONAL_DEX_REGICE, + NATIONAL_DEX_RAIKOU, + NATIONAL_DEX_SUICUNE, + NATIONAL_DEX_ENTEI, + NATIONAL_DEX_HO_OH, + NATIONAL_DEX_TYRANITAR, + NATIONAL_DEX_METANG, + NATIONAL_DEX_REGISTEEL, + NATIONAL_DEX_RAYQUAZA, + NATIONAL_DEX_ONIX, + NATIONAL_DEX_DRAGONITE, + NATIONAL_DEX_LUGIA, + NATIONAL_DEX_LAPRAS, + NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_MANTINE, + NATIONAL_DEX_REGIROCK, + NATIONAL_DEX_GYARADOS, + NATIONAL_DEX_HARIYAMA, + NATIONAL_DEX_GLALIE, + NATIONAL_DEX_GOLEM, + NATIONAL_DEX_KYOGRE, + NATIONAL_DEX_AGGRON, + NATIONAL_DEX_WAILORD, + NATIONAL_DEX_STEELIX, + NATIONAL_DEX_SNORLAX, + NATIONAL_DEX_METAGROSS, + NATIONAL_DEX_GROUDON, +}; + +const u16 gPokedexOrder_Height[] = +{ + NATIONAL_DEX_DIGLETT, + NATIONAL_DEX_AZURILL, + NATIONAL_DEX_NATU, + NATIONAL_DEX_WEEDLE, + NATIONAL_DEX_PICHU, + NATIONAL_DEX_CLEFFA, + NATIONAL_DEX_TOGEPI, + NATIONAL_DEX_CASTFORM, + NATIONAL_DEX_IGGLYBUFF, + NATIONAL_DEX_CATERPIE, + NATIONAL_DEX_TAILLOW, + NATIONAL_DEX_DITTO, + NATIONAL_DEX_EEVEE, + NATIONAL_DEX_ROSELIA, + NATIONAL_DEX_SPEAROW, + NATIONAL_DEX_PIDGEY, + NATIONAL_DEX_SUNKERN, + NATIONAL_DEX_SHELLDER, + NATIONAL_DEX_RATTATA, + NATIONAL_DEX_MAGNEMITE, + NATIONAL_DEX_PARAS, + NATIONAL_DEX_WURMPLE, + NATIONAL_DEX_JIRACHI, + NATIONAL_DEX_CUBONE, + NATIONAL_DEX_MUDKIP, + NATIONAL_DEX_WOOPER, + NATIONAL_DEX_HORSEA, + NATIONAL_DEX_MEOWTH, + NATIONAL_DEX_NIDORAN_F, + NATIONAL_DEX_SWINUB, + NATIONAL_DEX_MEW, + NATIONAL_DEX_SWABLU, + NATIONAL_DEX_ARON, + NATIONAL_DEX_PLUSLE, + NATIONAL_DEX_MINUN, + NATIONAL_DEX_EXEGGCUTE, + NATIONAL_DEX_PIKACHU, + NATIONAL_DEX_BELLOSSOM, + NATIONAL_DEX_GULPIN, + NATIONAL_DEX_ZIGZAGOON, + NATIONAL_DEX_SHROOMISH, + NATIONAL_DEX_OMANYTE, + NATIONAL_DEX_CACNEA, + NATIONAL_DEX_KRABBY, + NATIONAL_DEX_RALTS, + NATIONAL_DEX_HOPPIP, + NATIONAL_DEX_TORCHIC, + NATIONAL_DEX_CLAMPERL, + NATIONAL_DEX_GEODUDE, + NATIONAL_DEX_MARILL, + NATIONAL_DEX_BARBOACH, + NATIONAL_DEX_SMOOCHUM, + NATIONAL_DEX_VOLTORB, + NATIONAL_DEX_NINCADA, + NATIONAL_DEX_SABLEYE, + NATIONAL_DEX_MURKROW, + NATIONAL_DEX_QWILFISH, + NATIONAL_DEX_SQUIRTLE, + NATIONAL_DEX_TREECKO, + NATIONAL_DEX_BALTOY, + NATIONAL_DEX_ODDISH, + NATIONAL_DEX_LOTAD, + NATIONAL_DEX_JIGGLYPUFF, + NATIONAL_DEX_SURSKIT, + NATIONAL_DEX_CYNDAQUIL, + NATIONAL_DEX_KABUTO, + NATIONAL_DEX_LINOONE, + NATIONAL_DEX_TORKOAL, + NATIONAL_DEX_NIDORAN_M, + NATIONAL_DEX_SPINARAK, + NATIONAL_DEX_MANKEY, + NATIONAL_DEX_SEEDOT, + NATIONAL_DEX_POOCHYENA, + NATIONAL_DEX_PHANPY, + NATIONAL_DEX_UNOWN, + NATIONAL_DEX_CHINCHOU, + NATIONAL_DEX_PORYGON2, + NATIONAL_DEX_POLIWAG, + NATIONAL_DEX_BAGON, + NATIONAL_DEX_FEEBAS, + NATIONAL_DEX_SHUPPET, + NATIONAL_DEX_TOTODILE, + NATIONAL_DEX_CELEBI, + NATIONAL_DEX_WYNAUT, + NATIONAL_DEX_SANDSHREW, + NATIONAL_DEX_CHIMECHO, + NATIONAL_DEX_LUVDISC, + NATIONAL_DEX_HOUNDOUR, + NATIONAL_DEX_SILCOON, + NATIONAL_DEX_ELECTRIKE, + NATIONAL_DEX_CHARMANDER, + NATIONAL_DEX_MEDITITE, + NATIONAL_DEX_WINGULL, + NATIONAL_DEX_REMORAID, + NATIONAL_DEX_CORPHISH, + NATIONAL_DEX_CORSOLA, + NATIONAL_DEX_ILLUMISE, + NATIONAL_DEX_SNUBBULL, + NATIONAL_DEX_VULPIX, + NATIONAL_DEX_LARVITAR, + NATIONAL_DEX_BELDUM, + NATIONAL_DEX_WHISMUR, + NATIONAL_DEX_PINECO, + NATIONAL_DEX_ELEKID, + NATIONAL_DEX_CLEFAIRY, + NATIONAL_DEX_SHUCKLE, + NATIONAL_DEX_TEDDIURSA, + NATIONAL_DEX_KAKUNA, + NATIONAL_DEX_SKITTY, + NATIONAL_DEX_TOGETIC, + NATIONAL_DEX_GOLDEEN, + NATIONAL_DEX_MAWILE, + NATIONAL_DEX_MAREEP, + NATIONAL_DEX_SKIPLOOM, + NATIONAL_DEX_KOFFING, + NATIONAL_DEX_DUGTRIO, + NATIONAL_DEX_CASCOON, + NATIONAL_DEX_NUMEL, + NATIONAL_DEX_ANORITH, + NATIONAL_DEX_VOLBEAT, + NATIONAL_DEX_HOOTHOOT, + NATIONAL_DEX_TRAPINCH, + NATIONAL_DEX_SPOINK, + NATIONAL_DEX_METAPOD, + NATIONAL_DEX_BELLSPROUT, + NATIONAL_DEX_SNORUNT, + NATIONAL_DEX_RATICATE, + NATIONAL_DEX_MARSHTOMP, + NATIONAL_DEX_SWELLOW, + NATIONAL_DEX_MAGBY, + NATIONAL_DEX_GROWLITHE, + NATIONAL_DEX_MISDREAVUS, + NATIONAL_DEX_BULBASAUR, + NATIONAL_DEX_TYROGUE, + NATIONAL_DEX_SLUGMA, + NATIONAL_DEX_SLAKOTH, + NATIONAL_DEX_KIRLIA, + NATIONAL_DEX_AIPOM, + NATIONAL_DEX_JOLTEON, + NATIONAL_DEX_NIDORINA, + NATIONAL_DEX_AZUMARILL, + NATIONAL_DEX_SHEDINJA, + NATIONAL_DEX_MACHOP, + NATIONAL_DEX_NINJASK, + NATIONAL_DEX_MASQUERAIN, + NATIONAL_DEX_DUSKULL, + NATIONAL_DEX_SUNFLORA, + NATIONAL_DEX_JUMPLUFF, + NATIONAL_DEX_STARYU, + NATIONAL_DEX_FLAAFFY, + NATIONAL_DEX_SPHEAL, + NATIONAL_DEX_PSYDUCK, + NATIONAL_DEX_MAGCARGO, + NATIONAL_DEX_FARFETCHD, + NATIONAL_DEX_ZUBAT, + NATIONAL_DEX_PORYGON, + NATIONAL_DEX_SENTRET, + NATIONAL_DEX_CARVANHA, + NATIONAL_DEX_GLOOM, + NATIONAL_DEX_RAICHU, + NATIONAL_DEX_MAGIKARP, + NATIONAL_DEX_SNEASEL, + NATIONAL_DEX_LAIRON, + NATIONAL_DEX_COMBUSKEN, + NATIONAL_DEX_OCTILLERY, + NATIONAL_DEX_NIDORINO, + NATIONAL_DEX_FLAREON, + NATIONAL_DEX_DELIBIRD, + NATIONAL_DEX_TENTACOOL, + NATIONAL_DEX_ABRA, + NATIONAL_DEX_GROVYLE, + NATIONAL_DEX_WHISCASH, + NATIONAL_DEX_QUILAVA, + NATIONAL_DEX_ESPEON, + NATIONAL_DEX_GRIMER, + NATIONAL_DEX_CHIKORITA, + NATIONAL_DEX_GRUMPIG, + NATIONAL_DEX_NOSEPASS, + NATIONAL_DEX_PERSIAN, + NATIONAL_DEX_MIGHTYENA, + NATIONAL_DEX_VENONAT, + NATIONAL_DEX_MAGNETON, + NATIONAL_DEX_PONYTA, + NATIONAL_DEX_MAKUHITA, + NATIONAL_DEX_LUNATONE, + NATIONAL_DEX_SANDSLASH, + NATIONAL_DEX_DROWZEE, + NATIONAL_DEX_TANGELA, + NATIONAL_DEX_PRIMEAPE, + NATIONAL_DEX_LEDYBA, + NATIONAL_DEX_WIGGLYTUFF, + NATIONAL_DEX_PARASECT, + NATIONAL_DEX_OMASTAR, + NATIONAL_DEX_LOUDRED, + NATIONAL_DEX_WARTORTLE, + NATIONAL_DEX_GRAVELER, + NATIONAL_DEX_UMBREON, + NATIONAL_DEX_LILEEP, + NATIONAL_DEX_POLIWHIRL, + NATIONAL_DEX_VAPOREON, + NATIONAL_DEX_BEEDRILL, + NATIONAL_DEX_MAROWAK, + NATIONAL_DEX_WEEPINBELL, + NATIONAL_DEX_RELICANTH, + NATIONAL_DEX_RHYHORN, + NATIONAL_DEX_IVYSAUR, + NATIONAL_DEX_KECLEON, + NATIONAL_DEX_NUZLEAF, + NATIONAL_DEX_BEAUTIFLY, + NATIONAL_DEX_PIDGEOTTO, + NATIONAL_DEX_ARIADOS, + NATIONAL_DEX_SEEL, + NATIONAL_DEX_POLITOED, + NATIONAL_DEX_CROCONAW, + NATIONAL_DEX_CHANSEY, + NATIONAL_DEX_BANETTE, + NATIONAL_DEX_DONPHAN, + NATIONAL_DEX_STARMIE, + NATIONAL_DEX_CHARMELEON, + NATIONAL_DEX_PILOSWINE, + NATIONAL_DEX_BUTTERFREE, + NATIONAL_DEX_VIBRAVA, + NATIONAL_DEX_ELECTABUZZ, + NATIONAL_DEX_CRAWDAUNT, + NATIONAL_DEX_DELCATTY, + NATIONAL_DEX_ALTARIA, + NATIONAL_DEX_SHELGON, + NATIONAL_DEX_NINETALES, + NATIONAL_DEX_GLIGAR, + NATIONAL_DEX_SEALEO, + NATIONAL_DEX_SPINDA, + NATIONAL_DEX_PUPITAR, + NATIONAL_DEX_SLOWPOKE, + NATIONAL_DEX_SOLROCK, + NATIONAL_DEX_MILTANK, + NATIONAL_DEX_FEAROW, + NATIONAL_DEX_VILEPLUME, + NATIONAL_DEX_MUK, + NATIONAL_DEX_FORRETRESS, + NATIONAL_DEX_SUDOWOODO, + NATIONAL_DEX_ABSOL, + NATIONAL_DEX_YANMA, + NATIONAL_DEX_DUSTOX, + NATIONAL_DEX_LICKITUNG, + NATIONAL_DEX_SMEARGLE, + NATIONAL_DEX_LANTURN, + NATIONAL_DEX_ELECTRODE, + NATIONAL_DEX_LOMBRE, + NATIONAL_DEX_BRELOOM, + NATIONAL_DEX_BAYLEEF, + NATIONAL_DEX_SEADRA, + NATIONAL_DEX_WEEZING, + NATIONAL_DEX_PELIPPER, + NATIONAL_DEX_METANG, + NATIONAL_DEX_NIDOQUEEN, + NATIONAL_DEX_CACTURNE, + NATIONAL_DEX_SHIFTRY, + NATIONAL_DEX_MEDICHAM, + NATIONAL_DEX_ZANGOOSE, + NATIONAL_DEX_KABUTOPS, + NATIONAL_DEX_KINGLER, + NATIONAL_DEX_KADABRA, + NATIONAL_DEX_SEAKING, + NATIONAL_DEX_CLEFABLE, + NATIONAL_DEX_MAGMAR, + NATIONAL_DEX_WOBBUFFET, + NATIONAL_DEX_GASTLY, + NATIONAL_DEX_MR_MIME, + NATIONAL_DEX_POLIWRATH, + NATIONAL_DEX_TAUROS, + NATIONAL_DEX_LATIAS, + NATIONAL_DEX_AMPHAROS, + NATIONAL_DEX_VIGOROTH, + NATIONAL_DEX_LEDIAN, + NATIONAL_DEX_GOLEM, + NATIONAL_DEX_WALREIN, + NATIONAL_DEX_DODUO, + NATIONAL_DEX_HOUNDOOM, + NATIONAL_DEX_NIDOKING, + NATIONAL_DEX_JYNX, + NATIONAL_DEX_HITMONCHAN, + NATIONAL_DEX_STANTLER, + NATIONAL_DEX_GRANBULL, + NATIONAL_DEX_HITMONTOP, + NATIONAL_DEX_QUAGSIRE, + NATIONAL_DEX_CLAYDOL, + NATIONAL_DEX_SWAMPERT, + NATIONAL_DEX_BLISSEY, + NATIONAL_DEX_LUDICOLO, + NATIONAL_DEX_EXPLOUD, + NATIONAL_DEX_DUNSPARCE, + NATIONAL_DEX_PINSIR, + NATIONAL_DEX_CLOYSTER, + NATIONAL_DEX_MACHOKE, + NATIONAL_DEX_GIRAFARIG, + NATIONAL_DEX_PIDGEOT, + NATIONAL_DEX_XATU, + NATIONAL_DEX_CRADILY, + NATIONAL_DEX_HITMONLEE, + NATIONAL_DEX_VENOMOTH, + NATIONAL_DEX_GENGAR, + NATIONAL_DEX_HERACROSS, + NATIONAL_DEX_GLALIE, + NATIONAL_DEX_SCYTHER, + NATIONAL_DEX_SALAMENCE, + NATIONAL_DEX_MANECTRIC, + NATIONAL_DEX_ARMALDO, + NATIONAL_DEX_ALAKAZAM, + NATIONAL_DEX_HYPNO, + NATIONAL_DEX_NOCTOWL, + NATIONAL_DEX_TENTACRUEL, + NATIONAL_DEX_DUSCLOPS, + NATIONAL_DEX_ZAPDOS, + NATIONAL_DEX_GOLBAT, + NATIONAL_DEX_METAGROSS, + NATIONAL_DEX_GARDEVOIR, + NATIONAL_DEX_BLASTOISE, + NATIONAL_DEX_SLOWBRO, + NATIONAL_DEX_HAUNTER, + NATIONAL_DEX_MACHAMP, + NATIONAL_DEX_REGIROCK, + NATIONAL_DEX_SWALOT, + NATIONAL_DEX_SCEPTILE, + NATIONAL_DEX_SKARMORY, + NATIONAL_DEX_GOLDUCK, + NATIONAL_DEX_DEOXYS, + NATIONAL_DEX_VICTREEBEL, + NATIONAL_DEX_RAPIDASH, + NATIONAL_DEX_CHARIZARD, + NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_DEWGONG, + NATIONAL_DEX_ARTICUNO, + NATIONAL_DEX_TYPHLOSION, + NATIONAL_DEX_AERODACTYL, + NATIONAL_DEX_GOREBYSS, + NATIONAL_DEX_URSARING, + NATIONAL_DEX_MEGANIUM, + NATIONAL_DEX_REGICE, + NATIONAL_DEX_SCIZOR, + NATIONAL_DEX_KINGDRA, + NATIONAL_DEX_DRATINI, + NATIONAL_DEX_DODRIO, + NATIONAL_DEX_SHARPEDO, + NATIONAL_DEX_CROBAT, + NATIONAL_DEX_FURRET, + NATIONAL_DEX_ARCANINE, + NATIONAL_DEX_RAIKOU, + NATIONAL_DEX_BLAZIKEN, + NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_RHYDON, + NATIONAL_DEX_REGISTEEL, + NATIONAL_DEX_EKANS, + NATIONAL_DEX_FLYGON, + NATIONAL_DEX_TROPIUS, + NATIONAL_DEX_LATIOS, + NATIONAL_DEX_SUICUNE, + NATIONAL_DEX_MOLTRES, + NATIONAL_DEX_VENUSAUR, + NATIONAL_DEX_EXEGGUTOR, + NATIONAL_DEX_SLOWKING, + NATIONAL_DEX_TYRANITAR, + NATIONAL_DEX_SLAKING, + NATIONAL_DEX_WAILMER, + NATIONAL_DEX_MEWTWO, + NATIONAL_DEX_AGGRON, + NATIONAL_DEX_SNORLAX, + NATIONAL_DEX_MANTINE, + NATIONAL_DEX_ENTEI, + NATIONAL_DEX_DRAGONITE, + NATIONAL_DEX_KANGASKHAN, + NATIONAL_DEX_HARIYAMA, + NATIONAL_DEX_FERALIGATR, + NATIONAL_DEX_LAPRAS, + NATIONAL_DEX_SEVIPER, + NATIONAL_DEX_ARBOK, + NATIONAL_DEX_GROUDON, + NATIONAL_DEX_HO_OH, + NATIONAL_DEX_DRAGONAIR, + NATIONAL_DEX_KYOGRE, + NATIONAL_DEX_LUGIA, + NATIONAL_DEX_MILOTIC, + NATIONAL_DEX_GYARADOS, + NATIONAL_DEX_RAYQUAZA, + NATIONAL_DEX_ONIX, + NATIONAL_DEX_STEELIX, + NATIONAL_DEX_WAILORD, +}; diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index 565c1acaf..0daf7fc86 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -7,19 +7,19 @@ const u8 gDummyPokedexText[] = _( const u8 gBulbasaurPokedexText[] = _( "BULBASAUR can be seen napping in bright\n" "sunlight. There is a seed on its back.\n" - "By soaking up the sun’s rays, the seed\n" + "By soaking up the sun's rays, the seed\n" "grows progressively larger."); const u8 gIvysaurPokedexText[] = _( - "To support its bulb, IVYSAUR’s legs\n" + "To support its bulb, IVYSAUR's legs\n" "grow sturdy. If it spends more time lying in\n" "the sunlight, the bud will soon bloom into\n" "a large flower."); const u8 gVenusaurPokedexText[] = _( - "VENUSAUR’s flower is said to take on vivid\n" + "VENUSAUR's flower is said to take on vivid\n" "colors if it gets plenty of nutrition and\n" - "sunlight. The flower’s aroma soothes the\n" + "sunlight. The flower's aroma soothes the\n" "emotions of people."); const u8 gCharmanderPokedexText[] = _( @@ -50,7 +50,7 @@ const u8 gWartortlePokedexText[] = _( "Its large tail is covered with rich, thick\n" "fur that deepens in color with age.\n" "The scratches on its shell are evidence\n" - "of this POKéMON’s toughness in battle."); + "of this POKéMON's toughness in battle."); const u8 gBlastoisePokedexText[] = _( "The waterspouts that protrude from its\n" @@ -119,7 +119,7 @@ const u8 gRattataPokedexText[] = _( "It will make its nest anywhere."); const u8 gRaticatePokedexText[] = _( - "A RATICATE’s sturdy fangs grow steadily.\n" + "A RATICATE's sturdy fangs grow steadily.\n" "To keep them ground down, it gnaws on\n" "rocks and logs. It may even chew on the\n" "walls of houses."); @@ -194,7 +194,7 @@ const u8 gNidoranMPokedexText[] = _( "The male NIDORAN has developed muscles\n" "that freely move its ears in any direction.\n" "Even the slightest sound does not escape\n" - "this POKéMON’s notice."); + "this POKéMON's notice."); const u8 gNidorinoPokedexText[] = _( "Its horn is harder than a diamond.\n" @@ -203,7 +203,7 @@ const u8 gNidorinoPokedexText[] = _( "challenges the foe with all its might."); const u8 gNidokingPokedexText[] = _( - "A NIDOKING’s thick tail packs enormously\n" + "A NIDOKING's thick tail packs enormously\n" "destructive power capable of toppling\n" "a metal transmission tower. Once it goes\n" "on a rampage, there is no stopping it."); @@ -222,7 +222,7 @@ const u8 gClefablePokedexText[] = _( const u8 gVulpixPokedexText[] = _( "It can freely control fire, making fiery\n" - "orbs fly like will-o’-the-wisps. Just\n" + "orbs fly like will-o'-the-wisps. Just\n" "before evolution, its six tails grow hot \n" "as if on fire."); @@ -234,7 +234,7 @@ const u8 gNinetalesPokedexText[] = _( const u8 gJigglypuffPokedexText[] = _( "Nothing can avoid falling asleep hearing a\n" - "JIGGLYPUFF’s song. The sound waves of its\n" + "JIGGLYPUFF's song. The sound waves of its\n" "singing voice match the brain waves of\n" "someone in a deep sleep."); @@ -317,7 +317,7 @@ const u8 gMeowthPokedexText[] = _( "shiny coins that glitter with light."); const u8 gPersianPokedexText[] = _( - "A PERSIAN’s six bold whiskers sense air\n" + "A PERSIAN's six bold whiskers sense air\n" "movements to determine what is in its\n" "vicinity. It becomes docile if grabbed\n" "by the whiskers."); @@ -336,7 +336,7 @@ const u8 gGolduckPokedexText[] = _( const u8 gMankeyPokedexText[] = _( "When it starts shaking and its nasal\n" - "breathing turns rough, it’s a sure sign\n" + "breathing turns rough, it's a sure sign\n" "of anger. However, since this happens\n" "instantly, there is no time to flee."); @@ -348,7 +348,7 @@ const u8 gPrimeapePokedexText[] = _( const u8 gGrowlithePokedexText[] = _( "Its superb sense of smell ensures that\n" - "this POKéMON won’t forget any scent,\n" + "this POKéMON won't forget any scent,\n" "no matter what. It uses its sense of smell\n" "to detect the emotions of others."); @@ -359,7 +359,7 @@ const u8 gArcaninePokedexText[] = _( "is its source of power."); const u8 gPoliwagPokedexText[] = _( - "It is possible to see this POKéMON’s spiral\n" + "It is possible to see this POKéMON's spiral\n" "innards right through its thin skin.\n" "However, the skin is also very flexible.\n" "Even sharp fangs bounce right off it."); @@ -390,7 +390,7 @@ const u8 gKadabraPokedexText[] = _( const u8 gAlakazamPokedexText[] = _( "While it has strong psychic abilities and\n" - "high intelligence, an ALAKAZAM’s muscles\n" + "high intelligence, an ALAKAZAM's muscles\n" "are very weak. It uses psychic power to\n" "move its body."); @@ -413,7 +413,7 @@ const u8 gMachampPokedexText[] = _( "a tough opponent."); const u8 gBellsproutPokedexText[] = _( - "A BELLSPROUT’s thin and flexible body lets\n" + "A BELLSPROUT's thin and flexible body lets\n" "it bend and sway to avoid any attack,\n" "however strong it may be. From its mouth,\n" "it leaks a fluid that melts even iron."); @@ -476,11 +476,11 @@ const u8 gSlowpokePokedexText[] = _( "It catches prey by dipping its tail in\n" "water at the side of a river. But it often\n" "forgets what it is doing and spends entire\n" - "days just loafing at water’s edge."); + "days just loafing at water's edge."); const u8 gSlowbroPokedexText[] = _( "Its tail has a SHELLDER firmly attached\n" - "with a bite. As a result, the tail can’t be\n" + "with a bite. As a result, the tail can't be\n" "used for fishing anymore. This forces it\n" "to reluctantly swim and catch prey."); @@ -528,7 +528,7 @@ const u8 gDewgongPokedexText[] = _( const u8 gGrimerPokedexText[] = _( "Born from polluted sludge in the sea,\n" - "GRIMER’s favorite food is anything filthy.\n" + "GRIMER's favorite food is anything filthy.\n" "They feed on wastewater pumped out from\n" "factories."); @@ -551,14 +551,14 @@ const u8 gCloysterPokedexText[] = _( "shell using the same system."); const u8 gGastlyPokedexText[] = _( - "When exposed to a strong wind, a GASTLY’s\n" + "When exposed to a strong wind, a GASTLY's\n" "gaseous body quickly dwindles away.\n" "They cluster under the eaves of houses\n" "to escape the ravages of wind."); const u8 gHaunterPokedexText[] = _( "If a HAUNTER beckons you while it is\n" - "floating in darkness, don’t approach it.\n" + "floating in darkness, don't approach it.\n" "This POKéMON will try to lick you with its\n" "tongue and steal your life away."); @@ -576,13 +576,13 @@ const u8 gOnixPokedexText[] = _( const u8 gDrowzeePokedexText[] = _( "If your nose becomes itchy while you are\n" - "sleeping, it’s a sure sign that a DROWZEE is\n" + "sleeping, it's a sure sign that a DROWZEE is\n" "standing above your pillow and trying to\n" "eat your dream through your nostrils."); const u8 gHypnoPokedexText[] = _( "The arcing movement and glitter of the\n" - "pendulum in a HYPNO’s hand lull the foe\n" + "pendulum in a HYPNO's hand lull the foe\n" "into deep hypnosis. While searching for\n" "prey, it polishes the pendulum."); @@ -617,7 +617,7 @@ const u8 gExeggcutePokedexText[] = _( "appear, it is close to evolution."); const u8 gExeggutorPokedexText[] = _( - "Originally from the tropics, EXEGGUTOR’s\n" + "Originally from the tropics, EXEGGUTOR's\n" "heads grow larger from exposure to strong\n" "sunlight. It is said that when the heads\n" "fall, they group to form an EXEGGCUTE."); @@ -665,9 +665,9 @@ const u8 gWeezingPokedexText[] = _( "from garbage are the ultimate feast."); const u8 gRhyhornPokedexText[] = _( - "Once it starts running, it doesn’t stop.\n" + "Once it starts running, it doesn't stop.\n" "Its tiny brain makes it so stupid that it\n" - "can’t remember why it started running in\n" + "can't remember why it started running in\n" "the first place."); const u8 gRhydonPokedexText[] = _( @@ -691,7 +691,7 @@ const u8 gTangelaPokedexText[] = _( const u8 gKangaskhanPokedexText[] = _( "If you come across a young KANGASKHAN\n" "playing by itself, never try to catch it.\n" - "The baby’s parent is sure to be in the area,\n" + "The baby's parent is sure to be in the area,\n" "and it will become violently enraged."); const u8 gHorseaPokedexText[] = _( @@ -810,12 +810,12 @@ const u8 gVaporeonPokedexText[] = _( const u8 gJolteonPokedexText[] = _( "Its cells generate weak power that is\n" - "amplified by its fur’s static electricity\n" + "amplified by its fur's static electricity\n" "to drop thunderbolts. The bristling fur is\n" "made of electrically charged needles."); const u8 gFlareonPokedexText[] = _( - "FLAREON’s fluffy fur releases heat into\n" + "FLAREON's fluffy fur releases heat into\n" "the air so that its body does not get\n" "excessively hot. Its body temperature can\n" "rise to a maximum of 1,650 degrees F."); @@ -857,7 +857,7 @@ const u8 gAerodactylPokedexText[] = _( "have been the king of the skies."); const u8 gSnorlaxPokedexText[] = _( - "SNORLAX’s typical day consists of nothing\n" + "SNORLAX's typical day consists of nothing\n" "more than eating and sleeping. It is such\n" "a docile POKéMON that there are children\n" "who use its big belly as a place to play."); @@ -917,16 +917,16 @@ const u8 gChikoritaPokedexText[] = _( "atmosphere that becalms the battlers."); const u8 gBayleefPokedexText[] = _( - "A BAYLEEF’s neck is ringed by curled-up\n" + "A BAYLEEF's neck is ringed by curled-up\n" "leaves. Inside each leaf is a small tree\n" "shoot. The fragrance of this shoot\n" "makes people peppy."); const u8 gMeganiumPokedexText[] = _( - "The fragrance of a MEGANIUM’s flower\n" + "The fragrance of a MEGANIUM's flower\n" "soothes and calms emotions. In battle,\n" "it gives off more of its becalming scent\n" - "to blunt the foe’s fighting spirit."); + "to blunt the foe's fighting spirit."); const u8 gCyndaquilPokedexText[] = _( "It flares flames from its back to protect\n" @@ -947,7 +947,7 @@ const u8 gTyphlosionPokedexText[] = _( "blasts that burn everything to cinders."); const u8 gTotodilePokedexText[] = _( - "Despite its small body, TOTODILE’s jaws\n" + "Despite its small body, TOTODILE's jaws\n" "are very powerful. While it may think it is\n" "just playfully nipping, its bite has enough\n" "strength to cause serious injury."); @@ -978,7 +978,7 @@ const u8 gFurretPokedexText[] = _( const u8 gHoothootPokedexText[] = _( "It has an internal organ that senses\n" - "the earth’s rotation. Using this special\n" + "the earth's rotation. Using this special\n" "organ, a HOOTHOOT begins hooting at\n" "precisely the same time every day."); @@ -992,7 +992,7 @@ const u8 gLedybaPokedexText[] = _( "LEDYBA communicate using a fluid that\n" "they secrete from where the legs join the\n" "body. They are said to convey feelings to\n" - "others by altering the fluid’s scent."); + "others by altering the fluid's scent."); const u8 gLedianPokedexText[] = _( "It is said that in lands with clean air,\n" @@ -1022,7 +1022,7 @@ const u8 gChinchouPokedexText[] = _( "When it senses danger, it discharges\n" "positive and negative electricity from its\n" "two antennae. It lives in depths beyond\n" - "sunlight’s reach."); + "sunlight's reach."); const u8 gLanturnPokedexText[] = _( "The light-emitting orbs on its back are\n" @@ -1063,7 +1063,7 @@ const u8 gTogeticPokedexText[] = _( const u8 gNatuPokedexText[] = _( "It runs up short trees that grow on the\n" "savanna to peck at new shoots.\n" - "A NATU’s eyes look as if they are\n" + "A NATU's eyes look as if they are\n" "always observing something."); const u8 gXatuPokedexText[] = _( @@ -1100,7 +1100,7 @@ const u8 gMarillPokedexText[] = _( "Its body is covered with water-repellent\n" "fur. Because of the fur, it can swim\n" "through water at high speed without being\n" - "slowed by the water’s resistance."); + "slowed by the water's resistance."); const u8 gAzumarillPokedexText[] = _( "It lives in water virtually all day long.\n" @@ -1128,7 +1128,7 @@ const u8 gHoppipPokedexText[] = _( const u8 gSkiploomPokedexText[] = _( "It blossoms when the temperature rises\n" - "above 64 degrees F. Because its flower’s\n" + "above 64 degrees F. Because its flower's\n" "blooming changes with the temperature,\n" "it is sometimes used as a thermometer."); @@ -1141,7 +1141,7 @@ const u8 gJumpluffPokedexText[] = _( const u8 gAipomPokedexText[] = _( "Its tail ends with a dexterous, handlike\n" "appendage. However, because it uses the\n" - "tail so much, AIPOM’s real hands have\n" + "tail so much, AIPOM's real hands have\n" "become rather clumsy."); const u8 gSunkernPokedexText[] = _( @@ -1171,7 +1171,7 @@ const u8 gWooperPokedexText[] = _( const u8 gQuagsirePokedexText[] = _( "A QUAGSIRE hunts by leaving its mouth wide\n" "open in water and waiting for its prey to\n" - "blunder in. Because it doesn’t move, it\n" + "blunder in. Because it doesn't move, it\n" "does not get very hungry."); const u8 gEspeonPokedexText[] = _( @@ -1182,7 +1182,7 @@ const u8 gEspeonPokedexText[] = _( const u8 gUmbreonPokedexText[] = _( "UMBREON evolved from exposure to the\n" - "moon’s energy pulses. It lurks in darkness\n" + "moon's energy pulses. It lurks in darkness\n" "and waits for its foes to move. The rings\n" "on its body glow when it leaps to attack."); @@ -1231,7 +1231,7 @@ const u8 gPinecoPokedexText[] = _( const u8 gForretressPokedexText[] = _( "It keeps itself inside its steel shell.\n" "The shell is opened when it is catching\n" - "prey, but it is so quick that the shell’s\n" + "prey, but it is so quick that the shell's\n" "inside cannot be seen."); const u8 gDunsparcePokedexText[] = _( @@ -1249,7 +1249,7 @@ const u8 gGligarPokedexText[] = _( const u8 gSteelixPokedexText[] = _( "STEELIX live even further underground\n" "than ONIX. This POKéMON is known to dig\n" - "toward the earth’s core, reaching a depth\n" + "toward the earth's core, reaching a depth\n" "of over six-tenths of a mile underground."); const u8 gSnubbullPokedexText[] = _( @@ -1316,7 +1316,7 @@ const u8 gMagcargoPokedexText[] = _( "The shell on its back is made of hardened\n" "magma. Tens of thousands of years spent\n" "living in volcanic craters have turned\n" - "MAGCARGO’s bodies into magma."); + "MAGCARGO's bodies into magma."); const u8 gSwinubPokedexText[] = _( "It roots for food by rubbing its snout\n" @@ -1369,7 +1369,7 @@ const u8 gSkarmoryPokedexText[] = _( const u8 gHoundourPokedexText[] = _( "HOUNDOUR communicate with each other\n" "using a variety of cries to corner their\n" - "prey. This POKéMON’s remarkable teamwork\n" + "prey. This POKéMON's remarkable teamwork\n" "is simply unparalleled."); const u8 gHoundoomPokedexText[] = _( @@ -1385,7 +1385,7 @@ const u8 gKingdraPokedexText[] = _( "even ships."); const u8 gPhanpyPokedexText[] = _( - "PHANPY’s big ears serve as broad fans.\n" + "PHANPY's big ears serve as broad fans.\n" "When it becomes hot, it flaps the ears\n" "busily to cool down. Even the young are\n" "very strong."); @@ -1394,7 +1394,7 @@ const u8 gDonphanPokedexText[] = _( "A DONPHAN is so strong it can easily haul\n" "a dump truck. Its hide has toughened to a\n" "rock-hard state. An ordinary sort of\n" - "attack won’t even leave a scratch."); + "attack won't even leave a scratch."); const u8 gPorygon2PokedexText[] = _( "It was created by humans using the power\n" @@ -1403,7 +1403,7 @@ const u8 gPorygon2PokedexText[] = _( "gestures and emotions on its own."); const u8 gStantlerPokedexText[] = _( - "STANTLER’s magnificent antlers were\n" + "STANTLER's magnificent antlers were\n" "once traded at high prices as works of art.\n" "As a result, this POKéMON was hunted\n" "close to extinction."); @@ -1429,8 +1429,8 @@ const u8 gHitmontopPokedexText[] = _( const u8 gSmoochumPokedexText[] = _( "It actively runs about, but also falls\n" "often. Whenever it falls, it will check its\n" - "reflection on a lake’s surface to make\n" - "sure its face hasn’t become dirty."); + "reflection on a lake's surface to make\n" + "sure its face hasn't become dirty."); const u8 gElekidPokedexText[] = _( "If it touches metal and discharges the\n" @@ -1447,7 +1447,7 @@ const u8 gMagbyPokedexText[] = _( const u8 gMiltankPokedexText[] = _( "It gives over five gallons of milk daily.\n" "Its sweet milk is enjoyed by children and\n" - "grown-ups alike. People who can’t drink\n" + "grown-ups alike. People who can't drink\n" "milk turn it into yogurt and eat it instead."); const u8 gBlisseyPokedexText[] = _( @@ -1478,7 +1478,7 @@ const u8 gLarvitarPokedexText[] = _( "A LARVITAR is born deep under the ground.\n" "It must eat its way through the soil above\n" "and reach the surface for it to see its\n" - "parents’ faces."); + "parents' faces."); const u8 gPupitarPokedexText[] = _( "A PUPITAR creates a gas inside its body\n" @@ -1514,10 +1514,10 @@ const u8 gTreeckoPokedexText[] = _( "It makes its nest in a giant tree in the\n" "forest. It ferociously guards against\n" "anything nearing its territory. It is said\n" - "to be the protector of the forest’s trees."); + "to be the protector of the forest's trees."); const u8 gGrovylePokedexText[] = _( - "Leaves grow out of this POKéMON’s body.\n" + "Leaves grow out of this POKéMON's body.\n" "They help obscure a GROVYLE from the eyes\n" "of its enemies while it is in a thickly\n" "overgrown forest."); @@ -1532,7 +1532,7 @@ const u8 gTorchicPokedexText[] = _( "If attacked, it strikes back by spitting\n" "balls of fire it forms in its stomach.\n" "A TORCHIC dislikes darkness because it\n" - "can’t see its surroundings."); + "can't see its surroundings."); const u8 gCombuskenPokedexText[] = _( "It lashes out with 10 kicks per second.\n" @@ -1550,7 +1550,7 @@ const u8 gMudkipPokedexText[] = _( "On land, it can powerfully lift large\n" "boulders by planting its four feet and\n" "heaving. It sleeps by burying itself in soil\n" - "at the water’s edge."); + "at the water's edge."); const u8 gMarshtompPokedexText[] = _( "Its toughened hind legs enable it to stand\n" @@ -1572,7 +1572,7 @@ const u8 gPoochyenaPokedexText[] = _( const u8 gMightyenaPokedexText[] = _( "In the wild, MIGHTYENA live in a pack.\n" - "They never defy their leader’s orders.\n" + "They never defy their leader's orders.\n" "They defeat foes with perfectly\n" "coordinated teamwork."); @@ -1704,7 +1704,7 @@ const u8 gSurskitPokedexText[] = _( const u8 gMasquerainPokedexText[] = _( "It intimidates foes with the large eyelike\n" - "patterns on its antennae. Because it can’t\n" + "patterns on its antennae. Because it can't\n" "fly if its wings get wet, it shelters itself\n" "from rain under large trees and eaves."); @@ -1722,15 +1722,15 @@ const u8 gBreloomPokedexText[] = _( const u8 gSlakothPokedexText[] = _( "It sleeps virtually all day and night long.\n" - "It doesn’t change its nest its entire life,\n" + "It doesn't change its nest its entire life,\n" "but it sometimes travels great distances\n" "by swimming in rivers."); const u8 gVigorothPokedexText[] = _( - "It can’t keep still because its blood boils\n" + "It can't keep still because its blood boils\n" "with energy. It runs through the fields\n" "and mountains all day to calm itself. If it\n" - "doesn’t, it can’t sleep at night."); + "doesn't, it can't sleep at night."); const u8 gSlakingPokedexText[] = _( "Hordes of SLAKING gather around trees\n" @@ -1783,7 +1783,7 @@ const u8 gMakuhitaPokedexText[] = _( const u8 gHariyamaPokedexText[] = _( "It has the habit of challenging others\n" "without hesitation to tests of strength.\n" - "It’s been known to stand on train tracks\n" + "It's been known to stand on train tracks\n" "and stop trains using forearm thrusts."); const u8 gAzurillPokedexText[] = _( @@ -1799,7 +1799,7 @@ const u8 gNosepassPokedexText[] = _( "seasons."); const u8 gSkittyPokedexText[] = _( - "A SKITTY’s adorably cute behavior makes it\n" + "A SKITTY's adorably cute behavior makes it\n" "highly popular. In battle, it makes its tail\n" "puff out. It threatens foes with a sharp\n" "growl."); @@ -1837,7 +1837,7 @@ const u8 gLaironPokedexText[] = _( const u8 gAggronPokedexText[] = _( "Its iron horns grow longer a little at\n" "a time. They are used to determine the\n" - "AGGRON’s age. The gouges in its armor are\n" + "AGGRON's age. The gouges in its armor are\n" "worn with pride as mementos from battles."); const u8 gMedititePokedexText[] = _( @@ -1848,7 +1848,7 @@ const u8 gMedititePokedexText[] = _( const u8 gMedichamPokedexText[] = _( "Through crushingly harsh yoga training, it\n" - "gained the power to foretell its foe’s\n" + "gained the power to foretell its foe's\n" "actions. It battles with elegant, dance-\n" "like movement."); @@ -1895,7 +1895,7 @@ const u8 gRoseliaPokedexText[] = _( "effect of making its foes careless."); const u8 gGulpinPokedexText[] = _( - "This POKéMON’s stomach fluid can even\n" + "This POKéMON's stomach fluid can even\n" "digest scrap iron. In one gulp, it can\n" "swallow something that is as large as\n" "itself."); @@ -1903,7 +1903,7 @@ const u8 gGulpinPokedexText[] = _( const u8 gSwalotPokedexText[] = _( "Its powerful stomach acid is capable of\n" "digesting almost anything. The one thing\n" - "in the whole world a SWALOT can’t digest is\n" + "in the whole world a SWALOT can't digest is\n" "its own stomach."); const u8 gCarvanhaPokedexText[] = _( @@ -1946,11 +1946,11 @@ const u8 gTorkoalPokedexText[] = _( "It battles using energy it gets from\n" "burning coal. When loosing smoke from its\n" "nostrils, it lets off a sound that is\n" - "similar to a locomotive’s horn."); + "similar to a locomotive's horn."); const u8 gSpoinkPokedexText[] = _( "A POKéMON that manipulates psychic power\n" - "at will. It doesn’t stop bouncing even when\n" + "at will. It doesn't stop bouncing even when\n" "it is asleep. It loves eating mushrooms\n" "that grow underground."); @@ -1964,7 +1964,7 @@ const u8 gSpindaPokedexText[] = _( "It is distinguished by a pattern of\n" "spots that is always different. Its\n" "unsteady, tottering walk has the\n" - "effect of fouling its foe’s aim."); + "effect of fouling its foe's aim."); const u8 gTrapinchPokedexText[] = _( "Its big jaws crunch through boulders.\n" @@ -1974,7 +1974,7 @@ const u8 gTrapinchPokedexText[] = _( const u8 gVibravaPokedexText[] = _( "It looses ultrasonic waves by rubbing its\n" - "wings together. Since a VIBRAVA’s wings\n" + "wings together. Since a VIBRAVA's wings\n" "are still in the process of growing, it can\n" "only fly short distances."); @@ -2016,7 +2016,7 @@ const u8 gZangoosePokedexText[] = _( const u8 gSeviperPokedexText[] = _( "SEVIPER and ZANGOOSE are eternal rivals.\n" - "It counters a ZANGOOSE’s dazzling agility\n" + "It counters a ZANGOOSE's dazzling agility\n" "with its swordlike tail, which also oozes\n" "a horrible poison."); @@ -2028,7 +2028,7 @@ const u8 gLunatonePokedexText[] = _( const u8 gSolrockPokedexText[] = _( "Solar energy is the source of this \n" - "POKéMON’s power. On sunny days, groups of\n" + "POKéMON's power. On sunny days, groups of\n" "SOLROCK line up facing the sun and absorb\n" "its light."); @@ -2036,7 +2036,7 @@ const u8 gBarboachPokedexText[] = _( "Its body is covered with a slimy film.\n" "The film acts as a barrier to prevent germs\n" "in muddy water from entering the\n" - "BARBOACH’s body."); + "BARBOACH's body."); const u8 gWhiscashPokedexText[] = _( "Mysteriously, it can foretell earthquakes.\n" @@ -2065,7 +2065,7 @@ const u8 gBaltoyPokedexText[] = _( const u8 gClaydolPokedexText[] = _( "A CLAYDOL sleeps while hovering in midair.\n" "Its arms are separate from its body.\n" - "They are kept floating by the POKéMON’s\n" + "They are kept floating by the POKéMON's\n" "manipulation of psychic power."); const u8 gLileepPokedexText[] = _( @@ -2222,7 +2222,7 @@ const u8 gLuvdiscPokedexText[] = _( "LUVDISC make the branches of CORSOLA\n" "their nests. There is a custom from long\n" "ago of giving a LUVDISC as a gift to\n" - "express one’s feelings of love."); + "express one's feelings of love."); const u8 gBagonPokedexText[] = _( "Although it is small, this POKéMON is very\n" diff --git a/src/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h index f14478863..3ad9a97c6 100644 --- a/src/data/pokemon/tmhm_learnsets.h +++ b/src/data/pokemon/tmhm_learnsets.h @@ -1,6 +1,3 @@ -#ifndef GUARD_TMHM_LEARNSETS_H -#define GUARD_TMHM_LEARNSETS_H - #define TMHM_LEARNSET(moves) {(u32)(moves), ((u64)(moves) >> 32)} #define TMHM(tmhm) ((u64)1 << (ITEM_##tmhm - ITEM_TM01_FOCUS_PUNCH)) @@ -9389,5 +9386,3 @@ const u32 gTMHMLearnsets[][2] = | TMHM(HM05_FLASH)), }; - -#endif // GUARD_TMHM_LEARNSETS_H diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index 02b2016c1..6e8474c12 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -1,176 +1,172 @@ -#ifndef POKEEMERALD_TRAINER_CLASS_LOOKUPS_H -#define POKEEMERALD_TRAINER_CLASS_LOOKUPS_H - const u8 gFacilityClassToPicIndex[] = { - TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER - TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1 - TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1 - TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_M - TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER - TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR - TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2 - TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M - TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1 - TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_M - TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT - TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER - TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC - TRAINER_PIC_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY - TRAINER_PIC_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC - TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER - TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1 - TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2 - TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_F - TRAINER_PIC_LADY, // FACILITY_CLASS_LADY - TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY - TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY - TRAINER_PIC_EXPERT_F, // FACILITY_CLASS_EXPERT_2 - TRAINER_PIC_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC - TRAINER_PIC_MAGMA_GRUNT_F, // FACILITY_CLASS_TEAM_MAGMA_2 - TRAINER_PIC_GUITARIST, // FACILITY_CLASS_GUITARIST - TRAINER_PIC_KINDLER, // FACILITY_CLASS_KINDLER - TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER - TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER - TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC - TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_M - TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_F - TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN - TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1 - TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2 - TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1 - TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2 - TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3 - TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_M - TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_F - TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR - TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1 - TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2 - TRAINER_PIC_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER - TRAINER_PIC_CHAMPION_WALLACE, // FACILITY_CLASS_CHAMPION - TRAINER_PIC_FISHERMAN, // FACILITY_CLASS_FISHERMAN - TRAINER_PIC_CYCLING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_1 - TRAINER_PIC_CYCLING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_2 - TRAINER_PIC_RUNNING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_3 - TRAINER_PIC_RUNNING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_4 - TRAINER_PIC_SWIMMING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_5 - TRAINER_PIC_SWIMMING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_6 - TRAINER_PIC_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER - TRAINER_PIC_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY - TRAINER_PIC_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL - TRAINER_PIC_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY - TRAINER_PIC_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F - TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS - TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR - TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1 - TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN - TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3 - TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4 - TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_MAY - TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6 - TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7 - TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2 - TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER - TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_M - TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_F - TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER - TRAINER_PIC_LASS, // FACILITY_CLASS_LASS - TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE - TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE - TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO - TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_STEVEN - TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN - TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE - TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_RED - TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_LEAF - TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN - TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY + [FACILITY_CLASS_HIKER] = TRAINER_PIC_HIKER, + [FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_PIC_AQUA_GRUNT_M, + [FACILITY_CLASS_POKEMON_BREEDER_F] = TRAINER_PIC_POKEMON_BREEDER_F, + [FACILITY_CLASS_COOLTRAINER_M] = TRAINER_PIC_COOLTRAINER_M, + [FACILITY_CLASS_BIRD_KEEPER] = TRAINER_PIC_BIRD_KEEPER, + [FACILITY_CLASS_COLLECTOR] = TRAINER_PIC_COLLECTOR, + [FACILITY_CLASS_AQUA_GRUNT_F] = TRAINER_PIC_AQUA_GRUNT_F, + [FACILITY_CLASS_SWIMMER_M] = TRAINER_PIC_SWIMMER_M, + [FACILITY_CLASS_MAGMA_GRUNT_M] = TRAINER_PIC_MAGMA_GRUNT_M, + [FACILITY_CLASS_EXPERT_M] = TRAINER_PIC_EXPERT_M, + [FACILITY_CLASS_BLACK_BELT] = TRAINER_PIC_BLACK_BELT, + [FACILITY_CLASS_AQUA_LEADER_ARCHIE] = TRAINER_PIC_AQUA_LEADER_ARCHIE, + [FACILITY_CLASS_HEX_MANIAC] = TRAINER_PIC_HEX_MANIAC, + [FACILITY_CLASS_AROMA_LADY] = TRAINER_PIC_AROMA_LADY, + [FACILITY_CLASS_RUIN_MANIAC] = TRAINER_PIC_RUIN_MANIAC, + [FACILITY_CLASS_INTERVIEWER] = TRAINER_PIC_INTERVIEWER, + [FACILITY_CLASS_TUBER_F] = TRAINER_PIC_TUBER_F, + [FACILITY_CLASS_TUBER_M] = TRAINER_PIC_TUBER_M, + [FACILITY_CLASS_COOLTRAINER_F] = TRAINER_PIC_COOLTRAINER_F, + [FACILITY_CLASS_LADY] = TRAINER_PIC_LADY, + [FACILITY_CLASS_BEAUTY] = TRAINER_PIC_BEAUTY, + [FACILITY_CLASS_RICH_BOY] = TRAINER_PIC_RICH_BOY, + [FACILITY_CLASS_EXPERT_F] = TRAINER_PIC_EXPERT_F, + [FACILITY_CLASS_POKEMANIAC] = TRAINER_PIC_POKEMANIAC, + [FACILITY_CLASS_MAGMA_GRUNT_F] = TRAINER_PIC_MAGMA_GRUNT_F, + [FACILITY_CLASS_GUITARIST] = TRAINER_PIC_GUITARIST, + [FACILITY_CLASS_KINDLER] = TRAINER_PIC_KINDLER, + [FACILITY_CLASS_CAMPER] = TRAINER_PIC_CAMPER, + [FACILITY_CLASS_PICNICKER] = TRAINER_PIC_PICNICKER, + [FACILITY_CLASS_BUG_MANIAC] = TRAINER_PIC_BUG_MANIAC, + [FACILITY_CLASS_PSYCHIC_M] = TRAINER_PIC_PSYCHIC_M, + [FACILITY_CLASS_PSYCHIC_F] = TRAINER_PIC_PSYCHIC_F, + [FACILITY_CLASS_GENTLEMAN] = TRAINER_PIC_GENTLEMAN, + [FACILITY_CLASS_ELITE_FOUR_SIDNEY] = TRAINER_PIC_ELITE_FOUR_SIDNEY, + [FACILITY_CLASS_ELITE_FOUR_PHOEBE] = TRAINER_PIC_ELITE_FOUR_PHOEBE, + [FACILITY_CLASS_LEADER_ROXANNE] = TRAINER_PIC_LEADER_ROXANNE, + [FACILITY_CLASS_LEADER_BRAWLY] = TRAINER_PIC_LEADER_BRAWLY, + [FACILITY_CLASS_LEADER_TATE_AND_LIZA] = TRAINER_PIC_LEADER_TATE_AND_LIZA, + [FACILITY_CLASS_SCHOOL_KID_M] = TRAINER_PIC_SCHOOL_KID_M, + [FACILITY_CLASS_SCHOOL_KID_F] = TRAINER_PIC_SCHOOL_KID_F, + [FACILITY_CLASS_SR_AND_JR] = TRAINER_PIC_SR_AND_JR, + [FACILITY_CLASS_POKEFAN_M] = TRAINER_PIC_POKEFAN_M, + [FACILITY_CLASS_POKEFAN_F] = TRAINER_PIC_POKEFAN_F, + [FACILITY_CLASS_YOUNGSTER] = TRAINER_PIC_YOUNGSTER, + [FACILITY_CLASS_CHAMPION_WALLACE] = TRAINER_PIC_CHAMPION_WALLACE, + [FACILITY_CLASS_FISHERMAN] = TRAINER_PIC_FISHERMAN, + [FACILITY_CLASS_CYCLING_TRIATHLETE_M] = TRAINER_PIC_CYCLING_TRIATHLETE_M, + [FACILITY_CLASS_CYCLING_TRIATHLETE_F] = TRAINER_PIC_CYCLING_TRIATHLETE_F, + [FACILITY_CLASS_RUNNING_TRIATHLETE_M] = TRAINER_PIC_RUNNING_TRIATHLETE_M, + [FACILITY_CLASS_RUNNING_TRIATHLETE_F] = TRAINER_PIC_RUNNING_TRIATHLETE_F, + [FACILITY_CLASS_SWIMMING_TRIATHLETE_M] = TRAINER_PIC_SWIMMING_TRIATHLETE_M, + [FACILITY_CLASS_SWIMMING_TRIATHLETE_F] = TRAINER_PIC_SWIMMING_TRIATHLETE_F, + [FACILITY_CLASS_DRAGON_TAMER] = TRAINER_PIC_DRAGON_TAMER, + [FACILITY_CLASS_NINJA_BOY] = TRAINER_PIC_NINJA_BOY, + [FACILITY_CLASS_BATTLE_GIRL] = TRAINER_PIC_BATTLE_GIRL, + [FACILITY_CLASS_PARASOL_LADY] = TRAINER_PIC_PARASOL_LADY, + [FACILITY_CLASS_SWIMMER_F] = TRAINER_PIC_SWIMMER_F, + [FACILITY_CLASS_TWINS] = TRAINER_PIC_TWINS, + [FACILITY_CLASS_SAILOR] = TRAINER_PIC_SAILOR, + [FACILITY_CLASS_WALLY] = TRAINER_PIC_WALLY, + [FACILITY_CLASS_BRENDAN] = TRAINER_PIC_BRENDAN, + [FACILITY_CLASS_BRENDAN_2] = TRAINER_PIC_BRENDAN, + [FACILITY_CLASS_BRENDAN_3] = TRAINER_PIC_BRENDAN, + [FACILITY_CLASS_MAY] = TRAINER_PIC_MAY, + [FACILITY_CLASS_MAY_2] = TRAINER_PIC_MAY, + [FACILITY_CLASS_MAY_3] = TRAINER_PIC_MAY, + [FACILITY_CLASS_PKMN_BREEDER_M] = TRAINER_PIC_POKEMON_BREEDER_M, + [FACILITY_CLASS_BUG_CATCHER] = TRAINER_PIC_BUG_CATCHER, + [FACILITY_CLASS_PKMN_RANGER_M] = TRAINER_PIC_POKEMON_RANGER_M, + [FACILITY_CLASS_PKMN_RANGER_F] = TRAINER_PIC_POKEMON_RANGER_F, + [FACILITY_CLASS_MAGMA_LEADER_MAXIE] = TRAINER_PIC_MAGMA_LEADER_MAXIE, + [FACILITY_CLASS_LASS] = TRAINER_PIC_LASS, + [FACILITY_CLASS_YOUNG_COUPLE] = TRAINER_PIC_YOUNG_COUPLE, + [FACILITY_CLASS_OLD_COUPLE] = TRAINER_PIC_OLD_COUPLE, + [FACILITY_CLASS_SIS_AND_BRO] = TRAINER_PIC_SIS_AND_BRO, + [FACILITY_CLASS_STEVEN] = TRAINER_PIC_STEVEN, + [FACILITY_CLASS_SALON_MAIDEN_ANABEL] = TRAINER_PIC_SALON_MAIDEN_ANABEL, + [FACILITY_CLASS_DOME_ACE_TUCKER] = TRAINER_PIC_DOME_ACE_TUCKER, + [FACILITY_CLASS_RED] = TRAINER_PIC_RED, + [FACILITY_CLASS_LEAF] = TRAINER_PIC_LEAF, + [FACILITY_CLASS_RS_BRENDAN] = TRAINER_PIC_RS_BRENDAN, + [FACILITY_CLASS_RS_MAY] = TRAINER_PIC_RS_MAY, }; const u8 gFacilityClassToTrainerClass[] = { - TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER - TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1 - TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1 - TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_M - TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER - TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR - TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2 - TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M - TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1 - TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_M - TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT - TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER - TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC - TRAINER_CLASS_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY - TRAINER_CLASS_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC - TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER - TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1 - TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2 - TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_F - TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY - TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY - TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY - TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_2 - TRAINER_CLASS_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC - TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_2 - TRAINER_CLASS_GUITARIST, // FACILITY_CLASS_GUITARIST - TRAINER_CLASS_KINDLER, // FACILITY_CLASS_KINDLER - TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER - TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER - TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC - TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_M - TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_F - TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN - TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1 - TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2 - TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1 - TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2 - TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3 - TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_M - TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_F - TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR - TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1 - TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2 - TRAINER_CLASS_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER - TRAINER_CLASS_CHAMPION, // FACILITY_CLASS_CHAMPION - TRAINER_CLASS_FISHERMAN, // FACILITY_CLASS_FISHERMAN - TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_1 - TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_2 - TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_3 - TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_4 - TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_5 - TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_6 - TRAINER_CLASS_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER - TRAINER_CLASS_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY - TRAINER_CLASS_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL - TRAINER_CLASS_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY - TRAINER_CLASS_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F - TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS - TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1 - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_MAY - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3 - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4 - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6 - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7 - TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2 - TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER - TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_M - TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_F - TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER - TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS - TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE - TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE - TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_STEVEN - TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN - TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_RED - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_LEAF - TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN - TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY + [FACILITY_CLASS_HIKER] = TRAINER_CLASS_HIKER, + [FACILITY_CLASS_AQUA_GRUNT_M] = TRAINER_CLASS_TEAM_AQUA, + [FACILITY_CLASS_POKEMON_BREEDER_F] = TRAINER_CLASS_PKMN_BREEDER, + [FACILITY_CLASS_COOLTRAINER_M] = TRAINER_CLASS_COOLTRAINER, + [FACILITY_CLASS_BIRD_KEEPER] = TRAINER_CLASS_BIRD_KEEPER, + [FACILITY_CLASS_COLLECTOR] = TRAINER_CLASS_COLLECTOR, + [FACILITY_CLASS_AQUA_GRUNT_F] = TRAINER_CLASS_TEAM_AQUA, + [FACILITY_CLASS_SWIMMER_M] = TRAINER_CLASS_SWIMMER_M, + [FACILITY_CLASS_MAGMA_GRUNT_M] = TRAINER_CLASS_TEAM_MAGMA, + [FACILITY_CLASS_EXPERT_M] = TRAINER_CLASS_EXPERT, + [FACILITY_CLASS_BLACK_BELT] = TRAINER_CLASS_BLACK_BELT, + [FACILITY_CLASS_AQUA_LEADER_ARCHIE] = TRAINER_CLASS_AQUA_LEADER, + [FACILITY_CLASS_HEX_MANIAC] = TRAINER_CLASS_HEX_MANIAC, + [FACILITY_CLASS_AROMA_LADY] = TRAINER_CLASS_AROMA_LADY, + [FACILITY_CLASS_RUIN_MANIAC] = TRAINER_CLASS_RUIN_MANIAC, + [FACILITY_CLASS_INTERVIEWER] = TRAINER_CLASS_INTERVIEWER, + [FACILITY_CLASS_TUBER_F] = TRAINER_CLASS_TUBER_F, + [FACILITY_CLASS_TUBER_M] = TRAINER_CLASS_TUBER_M, + [FACILITY_CLASS_COOLTRAINER_F] = TRAINER_CLASS_COOLTRAINER, + [FACILITY_CLASS_LADY] = TRAINER_CLASS_LADY, + [FACILITY_CLASS_BEAUTY] = TRAINER_CLASS_BEAUTY, + [FACILITY_CLASS_RICH_BOY] = TRAINER_CLASS_RICH_BOY, + [FACILITY_CLASS_EXPERT_F] = TRAINER_CLASS_EXPERT, + [FACILITY_CLASS_POKEMANIAC] = TRAINER_CLASS_POKEMANIAC, + [FACILITY_CLASS_MAGMA_GRUNT_F] = TRAINER_CLASS_TEAM_MAGMA, + [FACILITY_CLASS_GUITARIST] = TRAINER_CLASS_GUITARIST, + [FACILITY_CLASS_KINDLER] = TRAINER_CLASS_KINDLER, + [FACILITY_CLASS_CAMPER] = TRAINER_CLASS_CAMPER, + [FACILITY_CLASS_PICNICKER] = TRAINER_CLASS_PICNICKER, + [FACILITY_CLASS_BUG_MANIAC] = TRAINER_CLASS_BUG_MANIAC, + [FACILITY_CLASS_PSYCHIC_M] = TRAINER_CLASS_PSYCHIC, + [FACILITY_CLASS_PSYCHIC_F] = TRAINER_CLASS_PSYCHIC, + [FACILITY_CLASS_GENTLEMAN] = TRAINER_CLASS_GENTLEMAN, + [FACILITY_CLASS_ELITE_FOUR_SIDNEY] = TRAINER_CLASS_ELITE_FOUR, + [FACILITY_CLASS_ELITE_FOUR_PHOEBE] = TRAINER_CLASS_ELITE_FOUR, + [FACILITY_CLASS_LEADER_ROXANNE] = TRAINER_CLASS_LEADER, + [FACILITY_CLASS_LEADER_BRAWLY] = TRAINER_CLASS_LEADER, + [FACILITY_CLASS_LEADER_TATE_AND_LIZA] = TRAINER_CLASS_LEADER, + [FACILITY_CLASS_SCHOOL_KID_M] = TRAINER_CLASS_SCHOOL_KID, + [FACILITY_CLASS_SCHOOL_KID_F] = TRAINER_CLASS_SCHOOL_KID, + [FACILITY_CLASS_SR_AND_JR] = TRAINER_CLASS_SR_AND_JR, + [FACILITY_CLASS_POKEFAN_M] = TRAINER_CLASS_POKEFAN, + [FACILITY_CLASS_POKEFAN_F] = TRAINER_CLASS_POKEFAN, + [FACILITY_CLASS_YOUNGSTER] = TRAINER_CLASS_YOUNGSTER, + [FACILITY_CLASS_CHAMPION_WALLACE] = TRAINER_CLASS_CHAMPION, + [FACILITY_CLASS_FISHERMAN] = TRAINER_CLASS_FISHERMAN, + [FACILITY_CLASS_CYCLING_TRIATHLETE_M] = TRAINER_CLASS_TRIATHLETE, + [FACILITY_CLASS_CYCLING_TRIATHLETE_F] = TRAINER_CLASS_TRIATHLETE, + [FACILITY_CLASS_RUNNING_TRIATHLETE_M] = TRAINER_CLASS_TRIATHLETE, + [FACILITY_CLASS_RUNNING_TRIATHLETE_F] = TRAINER_CLASS_TRIATHLETE, + [FACILITY_CLASS_SWIMMING_TRIATHLETE_M] = TRAINER_CLASS_TRIATHLETE, + [FACILITY_CLASS_SWIMMING_TRIATHLETE_F] = TRAINER_CLASS_TRIATHLETE, + [FACILITY_CLASS_DRAGON_TAMER] = TRAINER_CLASS_DRAGON_TAMER, + [FACILITY_CLASS_NINJA_BOY] = TRAINER_CLASS_NINJA_BOY, + [FACILITY_CLASS_BATTLE_GIRL] = TRAINER_CLASS_BATTLE_GIRL, + [FACILITY_CLASS_PARASOL_LADY] = TRAINER_CLASS_PARASOL_LADY, + [FACILITY_CLASS_SWIMMER_F] = TRAINER_CLASS_SWIMMER_F, + [FACILITY_CLASS_TWINS] = TRAINER_CLASS_TWINS, + [FACILITY_CLASS_SAILOR] = TRAINER_CLASS_SAILOR, + [FACILITY_CLASS_WALLY] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_MAY] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_BRENDAN_2] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_BRENDAN_3] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_BRENDAN] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_MAY_2] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_MAY_3] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_PKMN_BREEDER_M] = TRAINER_CLASS_PKMN_BREEDER, + [FACILITY_CLASS_BUG_CATCHER] = TRAINER_CLASS_BUG_CATCHER, + [FACILITY_CLASS_PKMN_RANGER_M] = TRAINER_CLASS_PKMN_RANGER, + [FACILITY_CLASS_PKMN_RANGER_F] = TRAINER_CLASS_PKMN_RANGER, + [FACILITY_CLASS_MAGMA_LEADER_MAXIE] = TRAINER_CLASS_MAGMA_LEADER, + [FACILITY_CLASS_LASS] = TRAINER_CLASS_LASS, + [FACILITY_CLASS_YOUNG_COUPLE] = TRAINER_CLASS_YOUNG_COUPLE, + [FACILITY_CLASS_OLD_COUPLE] = TRAINER_CLASS_OLD_COUPLE, + [FACILITY_CLASS_SIS_AND_BRO] = TRAINER_CLASS_SIS_AND_BRO, + [FACILITY_CLASS_STEVEN] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_SALON_MAIDEN_ANABEL] = TRAINER_CLASS_SALON_MAIDEN, + [FACILITY_CLASS_DOME_ACE_TUCKER] = TRAINER_CLASS_DOME_ACE, + [FACILITY_CLASS_RED] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_LEAF] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_RS_BRENDAN] = TRAINER_CLASS_PKMN_TRAINER_4, + [FACILITY_CLASS_RS_MAY] = TRAINER_CLASS_PKMN_TRAINER_4, }; -#endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index 29d0ff32e..cdb28f8c3 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -1,443 +1,2206 @@ +#include "constants/species.h" + const struct MonCoords gMonBackPicCoords[] = { - {0x88, 0x00}, // SPECIES_NONE - {0x64, 0x10}, // SPECIES_BULBASAUR - {0x66, 0x09}, // SPECIES_IVYSAUR - {0x87, 0x07}, // SPECIES_VENUSAUR - {0x65, 0x0e}, // SPECIES_CHARMANDER - {0x66, 0x09}, // SPECIES_CHARMELEON - {0x87, 0x04}, // SPECIES_CHARIZARD - {0x65, 0x0e}, // SPECIES_SQUIRTLE - {0x76, 0x0a}, // SPECIES_WARTORTLE - {0x86, 0x08}, // SPECIES_BLASTOISE - {0x55, 0x0f}, // SPECIES_CATERPIE - {0x65, 0x0c}, // SPECIES_METAPOD - {0x87, 0x06}, // SPECIES_BUTTERFREE - {0x56, 0x0b}, // SPECIES_WEEDLE - {0x46, 0x0a}, // SPECIES_KAKUNA - {0x86, 0x09}, // SPECIES_BEEDRILL - {0x66, 0x08}, // SPECIES_PIDGEY - {0x85, 0x0c}, // SPECIES_PIDGEOTTO - {0x78, 0x02}, // SPECIES_PIDGEOT - {0x65, 0x0d}, // SPECIES_RATTATA - {0x75, 0x0d}, // SPECIES_RATICATE - {0x65, 0x0c}, // SPECIES_SPEAROW - {0x87, 0x05}, // SPECIES_FEAROW - {0x66, 0x09}, // SPECIES_EKANS - {0x77, 0x04}, // SPECIES_ARBOK - {0x77, 0x07}, // SPECIES_PIKACHU - {0x66, 0x08}, // SPECIES_RAICHU - {0x65, 0x0d}, // SPECIES_SANDSHREW - {0x86, 0x09}, // SPECIES_SANDSLASH - {0x55, 0x0c}, // SPECIES_NIDORAN_F - {0x86, 0x0a}, // SPECIES_NIDORINA - {0x77, 0x06}, // SPECIES_NIDOQUEEN - {0x56, 0x08}, // SPECIES_NIDORAN_M - {0x86, 0x09}, // SPECIES_NIDORINO - {0x88, 0x03}, // SPECIES_NIDOKING - {0x65, 0x0d}, // SPECIES_CLEFAIRY - {0x76, 0x0a}, // SPECIES_CLEFABLE - {0x76, 0x09}, // SPECIES_VULPIX - {0x77, 0x05}, // SPECIES_NINETALES - {0x65, 0x0d}, // SPECIES_JIGGLYPUFF - {0x66, 0x08}, // SPECIES_WIGGLYTUFF - {0x76, 0x0b}, // SPECIES_ZUBAT - {0x87, 0x06}, // SPECIES_GOLBAT - {0x56, 0x0b}, // SPECIES_ODDISH - {0x66, 0x0a}, // SPECIES_GLOOM - {0x87, 0x07}, // SPECIES_VILEPLUME - {0x63, 0x14}, // SPECIES_PARAS - {0x87, 0x07}, // SPECIES_PARASECT - {0x77, 0x06}, // SPECIES_VENONAT - {0x77, 0x04}, // SPECIES_VENOMOTH - {0x54, 0x10}, // SPECIES_DIGLETT - {0x66, 0x0b}, // SPECIES_DUGTRIO - {0x65, 0x0c}, // SPECIES_MEOWTH - {0x87, 0x07}, // SPECIES_PERSIAN - {0x67, 0x07}, // SPECIES_PSYDUCK - {0x77, 0x05}, // SPECIES_GOLDUCK - {0x76, 0x0b}, // SPECIES_MANKEY - {0x77, 0x07}, // SPECIES_PRIMEAPE - {0x66, 0x08}, // SPECIES_GROWLITHE - {0x87, 0x06}, // SPECIES_ARCANINE - {0x74, 0x10}, // SPECIES_POLIWAG - {0x65, 0x0c}, // SPECIES_POLIWHIRL - {0x86, 0x0b}, // SPECIES_POLIWRATH - {0x66, 0x0b}, // SPECIES_ABRA - {0x76, 0x08}, // SPECIES_KADABRA - {0x67, 0x05}, // SPECIES_ALAKAZAM - {0x65, 0x0c}, // SPECIES_MACHOP - {0x76, 0x09}, // SPECIES_MACHOKE - {0x67, 0x04}, // SPECIES_MACHAMP - {0x66, 0x0a}, // SPECIES_BELLSPROUT - {0x66, 0x09}, // SPECIES_WEEPINBELL - {0x87, 0x06}, // SPECIES_VICTREEBEL - {0x56, 0x0a}, // SPECIES_TENTACOOL - {0x86, 0x0b}, // SPECIES_TENTACRUEL - {0x66, 0x0b}, // SPECIES_GEODUDE - {0x75, 0x0c}, // SPECIES_GRAVELER - {0x84, 0x10}, // SPECIES_GOLEM - {0x66, 0x09}, // SPECIES_PONYTA - {0x87, 0x05}, // SPECIES_RAPIDASH - {0x85, 0x0e}, // SPECIES_SLOWPOKE - {0x86, 0x0a}, // SPECIES_SLOWBRO - {0x43, 0x14}, // SPECIES_MAGNEMITE - {0x66, 0x0a}, // SPECIES_MAGNETON - {0x66, 0x0a}, // SPECIES_FARFETCHD - {0x66, 0x08}, // SPECIES_DODUO - {0x88, 0x01}, // SPECIES_DODRIO - {0x66, 0x0a}, // SPECIES_SEEL - {0x77, 0x05}, // SPECIES_DEWGONG - {0x75, 0x0c}, // SPECIES_GRIMER - {0x87, 0x05}, // SPECIES_MUK - {0x76, 0x0b}, // SPECIES_SHELLDER - {0x87, 0x06}, // SPECIES_CLOYSTER - {0x85, 0x0e}, // SPECIES_GASTLY - {0x76, 0x08}, // SPECIES_HAUNTER - {0x76, 0x09}, // SPECIES_GENGAR - {0x78, 0x00}, // SPECIES_ONIX - {0x65, 0x0d}, // SPECIES_DROWZEE - {0x66, 0x09}, // SPECIES_HYPNO - {0x66, 0x0a}, // SPECIES_KRABBY - {0x77, 0x04}, // SPECIES_KINGLER - {0x55, 0x0e}, // SPECIES_VOLTORB - {0x65, 0x0d}, // SPECIES_ELECTRODE - {0x65, 0x0d}, // SPECIES_EXEGGCUTE - {0x87, 0x04}, // SPECIES_EXEGGUTOR - {0x66, 0x0a}, // SPECIES_CUBONE - {0x66, 0x08}, // SPECIES_MAROWAK - {0x65, 0x0c}, // SPECIES_HITMONLEE - {0x65, 0x0c}, // SPECIES_HITMONCHAN - {0x65, 0x0e}, // SPECIES_LICKITUNG - {0x66, 0x09}, // SPECIES_KOFFING - {0x77, 0x06}, // SPECIES_WEEZING - {0x85, 0x0c}, // SPECIES_RHYHORN - {0x88, 0x03}, // SPECIES_RHYDON - {0x86, 0x0b}, // SPECIES_CHANSEY - {0x85, 0x0e}, // SPECIES_TANGELA - {0x77, 0x05}, // SPECIES_KANGASKHAN - {0x66, 0x09}, // SPECIES_HORSEA - {0x66, 0x08}, // SPECIES_SEADRA - {0x66, 0x08}, // SPECIES_GOLDEEN - {0x76, 0x0b}, // SPECIES_SEAKING - {0x65, 0x0d}, // SPECIES_STARYU - {0x85, 0x0e}, // SPECIES_STARMIE - {0x85, 0x0d}, // SPECIES_MR_MIME - {0x77, 0x07}, // SPECIES_SCYTHER - {0x86, 0x0a}, // SPECIES_JYNX - {0x66, 0x08}, // SPECIES_ELECTABUZZ - {0x66, 0x08}, // SPECIES_MAGMAR - {0x66, 0x09}, // SPECIES_PINSIR - {0x85, 0x0d}, // SPECIES_TAUROS - {0x76, 0x09}, // SPECIES_MAGIKARP - {0x78, 0x00}, // SPECIES_GYARADOS - {0x77, 0x04}, // SPECIES_LAPRAS - {0x54, 0x11}, // SPECIES_DITTO - {0x66, 0x0a}, // SPECIES_EEVEE - {0x66, 0x0a}, // SPECIES_VAPOREON - {0x87, 0x06}, // SPECIES_JOLTEON - {0x67, 0x05}, // SPECIES_FLAREON - {0x65, 0x0d}, // SPECIES_PORYGON - {0x66, 0x0a}, // SPECIES_OMANYTE - {0x66, 0x08}, // SPECIES_OMASTAR - {0x65, 0x0d}, // SPECIES_KABUTO - {0x77, 0x05}, // SPECIES_KABUTOPS - {0x86, 0x08}, // SPECIES_AERODACTYL - {0x86, 0x0b}, // SPECIES_SNORLAX - {0x65, 0x0c}, // SPECIES_ARTICUNO - {0x76, 0x0b}, // SPECIES_ZAPDOS - {0x87, 0x04}, // SPECIES_MOLTRES - {0x66, 0x09}, // SPECIES_DRATINI - {0x78, 0x00}, // SPECIES_DRAGONAIR - {0x87, 0x06}, // SPECIES_DRAGONITE - {0x78, 0x01}, // SPECIES_MEWTWO - {0x66, 0x08}, // SPECIES_MEW - {0x56, 0x0a}, // SPECIES_CHIKORITA - {0x66, 0x08}, // SPECIES_BAYLEEF - {0x78, 0x00}, // SPECIES_MEGANIUM - {0x76, 0x09}, // SPECIES_CYNDAQUIL - {0x87, 0x04}, // SPECIES_QUILAVA - {0x87, 0x04}, // SPECIES_TYPHLOSION - {0x66, 0x0b}, // SPECIES_TOTODILE - {0x67, 0x07}, // SPECIES_CROCONAW - {0x88, 0x01}, // SPECIES_FERALIGATR - {0x67, 0x05}, // SPECIES_SENTRET - {0x66, 0x08}, // SPECIES_FURRET - {0x66, 0x08}, // SPECIES_HOOTHOOT - {0x68, 0x03}, // SPECIES_NOCTOWL - {0x76, 0x0b}, // SPECIES_LEDYBA - {0x77, 0x07}, // SPECIES_LEDIAN - {0x73, 0x15}, // SPECIES_SPINARAK - {0x86, 0x0b}, // SPECIES_ARIADOS - {0x87, 0x05}, // SPECIES_CROBAT - {0x86, 0x08}, // SPECIES_CHINCHOU - {0x86, 0x08}, // SPECIES_LANTURN - {0x66, 0x0b}, // SPECIES_PICHU - {0x65, 0x0f}, // SPECIES_CLEFFA - {0x66, 0x0b}, // SPECIES_IGGLYBUFF - {0x54, 0x10}, // SPECIES_TOGEPI - {0x66, 0x08}, // SPECIES_TOGETIC - {0x54, 0x11}, // SPECIES_NATU - {0x76, 0x08}, // SPECIES_XATU - {0x66, 0x09}, // SPECIES_MAREEP - {0x66, 0x09}, // SPECIES_FLAAFFY - {0x88, 0x01}, // SPECIES_AMPHAROS - {0x66, 0x0b}, // SPECIES_BELLOSSOM - {0x75, 0x0c}, // SPECIES_MARILL - {0x86, 0x08}, // SPECIES_AZUMARILL - {0x66, 0x08}, // SPECIES_SUDOWOODO - {0x66, 0x09}, // SPECIES_POLITOED - {0x66, 0x0b}, // SPECIES_HOPPIP - {0x65, 0x0d}, // SPECIES_SKIPLOOM - {0x87, 0x04}, // SPECIES_JUMPLUFF - {0x66, 0x09}, // SPECIES_AIPOM - {0x56, 0x0a}, // SPECIES_SUNKERN - {0x66, 0x08}, // SPECIES_SUNFLORA - {0x77, 0x04}, // SPECIES_YANMA - {0x85, 0x0f}, // SPECIES_WOOPER - {0x76, 0x08}, // SPECIES_QUAGSIRE - {0x76, 0x0b}, // SPECIES_ESPEON - {0x87, 0x04}, // SPECIES_UMBREON - {0x66, 0x09}, // SPECIES_MURKROW - {0x66, 0x08}, // SPECIES_SLOWKING - {0x66, 0x0a}, // SPECIES_MISDREAVUS - {0x36, 0x08}, // SPECIES_UNOWN - {0x75, 0x0c}, // SPECIES_WOBBUFFET - {0x87, 0x05}, // SPECIES_GIRAFARIG - {0x65, 0x0f}, // SPECIES_PINECO - {0x84, 0x10}, // SPECIES_FORRETRESS - {0x85, 0x0f}, // SPECIES_DUNSPARCE - {0x87, 0x05}, // SPECIES_GLIGAR - {0x88, 0x00}, // SPECIES_STEELIX - {0x76, 0x0a}, // SPECIES_SNUBBULL - {0x87, 0x05}, // SPECIES_GRANBULL - {0x77, 0x07}, // SPECIES_QWILFISH - {0x77, 0x04}, // SPECIES_SCIZOR - {0x56, 0x0b}, // SPECIES_SHUCKLE - {0x77, 0x04}, // SPECIES_HERACROSS - {0x66, 0x08}, // SPECIES_SNEASEL - {0x66, 0x08}, // SPECIES_TEDDIURSA - {0x88, 0x03}, // SPECIES_URSARING - {0x66, 0x08}, // SPECIES_SLUGMA - {0x76, 0x09}, // SPECIES_MAGCARGO - {0x63, 0x15}, // SPECIES_SWINUB - {0x75, 0x0d}, // SPECIES_PILOSWINE - {0x65, 0x0c}, // SPECIES_CORSOLA - {0x75, 0x0d}, // SPECIES_REMORAID - {0x66, 0x0a}, // SPECIES_OCTILLERY - {0x67, 0x06}, // SPECIES_DELIBIRD - {0x87, 0x07}, // SPECIES_MANTINE - {0x87, 0x04}, // SPECIES_SKARMORY - {0x55, 0x0c}, // SPECIES_HOUNDOUR - {0x87, 0x07}, // SPECIES_HOUNDOOM - {0x87, 0x06}, // SPECIES_KINGDRA - {0x65, 0x0e}, // SPECIES_PHANPY - {0x85, 0x0d}, // SPECIES_DONPHAN - {0x76, 0x0a}, // SPECIES_PORYGON2 - {0x78, 0x03}, // SPECIES_STANTLER - {0x76, 0x0a}, // SPECIES_SMEARGLE - {0x66, 0x08}, // SPECIES_TYROGUE - {0x87, 0x05}, // SPECIES_HITMONTOP - {0x56, 0x09}, // SPECIES_SMOOCHUM - {0x66, 0x08}, // SPECIES_ELEKID - {0x66, 0x0b}, // SPECIES_MAGBY - {0x87, 0x07}, // SPECIES_MILTANK - {0x85, 0x0d}, // SPECIES_BLISSEY - {0x86, 0x0a}, // SPECIES_RAIKOU - {0x87, 0x06}, // SPECIES_ENTEI - {0x88, 0x03}, // SPECIES_SUICUNE - {0x66, 0x08}, // SPECIES_LARVITAR - {0x67, 0x05}, // SPECIES_PUPITAR - {0x88, 0x00}, // SPECIES_TYRANITAR - {0x88, 0x01}, // SPECIES_LUGIA - {0x88, 0x01}, // SPECIES_HO_OH - {0x66, 0x08}, // SPECIES_CELEBI - {0x88, 0x02}, // SPECIES_OLD_UNOWN_B - {0x88, 0x02}, // SPECIES_OLD_UNOWN_C - {0x88, 0x02}, // SPECIES_OLD_UNOWN_D - {0x88, 0x02}, // SPECIES_OLD_UNOWN_E - {0x88, 0x02}, // SPECIES_OLD_UNOWN_F - {0x88, 0x02}, // SPECIES_OLD_UNOWN_G - {0x88, 0x02}, // SPECIES_OLD_UNOWN_H - {0x88, 0x02}, // SPECIES_OLD_UNOWN_I - {0x88, 0x02}, // SPECIES_OLD_UNOWN_J - {0x88, 0x02}, // SPECIES_OLD_UNOWN_K - {0x88, 0x02}, // SPECIES_OLD_UNOWN_L - {0x88, 0x02}, // SPECIES_OLD_UNOWN_M - {0x88, 0x02}, // SPECIES_OLD_UNOWN_N - {0x88, 0x02}, // SPECIES_OLD_UNOWN_O - {0x88, 0x02}, // SPECIES_OLD_UNOWN_P - {0x88, 0x02}, // SPECIES_OLD_UNOWN_Q - {0x88, 0x02}, // SPECIES_OLD_UNOWN_R - {0x88, 0x02}, // SPECIES_OLD_UNOWN_S - {0x88, 0x02}, // SPECIES_OLD_UNOWN_T - {0x88, 0x02}, // SPECIES_OLD_UNOWN_U - {0x88, 0x02}, // SPECIES_OLD_UNOWN_V - {0x88, 0x02}, // SPECIES_OLD_UNOWN_W - {0x88, 0x02}, // SPECIES_OLD_UNOWN_X - {0x88, 0x02}, // SPECIES_OLD_UNOWN_Y - {0x88, 0x02}, // SPECIES_OLD_UNOWN_Z - {0x87, 0x06}, // SPECIES_TREECKO - {0x86, 0x08}, // SPECIES_GROVYLE - {0x88, 0x01}, // SPECIES_SCEPTILE - {0x67, 0x05}, // SPECIES_TORCHIC - {0x88, 0x00}, // SPECIES_COMBUSKEN - {0x88, 0x00}, // SPECIES_BLAZIKEN - {0x77, 0x05}, // SPECIES_MUDKIP - {0x87, 0x04}, // SPECIES_MARSHTOMP - {0x87, 0x05}, // SPECIES_SWAMPERT - {0x76, 0x09}, // SPECIES_POOCHYENA - {0x87, 0x04}, // SPECIES_MIGHTYENA - {0x76, 0x0b}, // SPECIES_ZIGZAGOON - {0x85, 0x0f}, // SPECIES_LINOONE - {0x76, 0x0b}, // SPECIES_WURMPLE - {0x83, 0x15}, // SPECIES_SILCOON - {0x88, 0x00}, // SPECIES_BEAUTIFLY - {0x73, 0x14}, // SPECIES_CASCOON - {0x83, 0x14}, // SPECIES_DUSTOX - {0x75, 0x0f}, // SPECIES_LOTAD - {0x86, 0x08}, // SPECIES_LOMBRE - {0x86, 0x0a}, // SPECIES_LUDICOLO - {0x86, 0x09}, // SPECIES_SEEDOT - {0x76, 0x0a}, // SPECIES_NUZLEAF - {0x86, 0x08}, // SPECIES_SHIFTRY - {0x83, 0x14}, // SPECIES_NINCADA - {0x86, 0x08}, // SPECIES_NINJASK - {0x77, 0x06}, // SPECIES_SHEDINJA - {0x64, 0x11}, // SPECIES_TAILLOW - {0x86, 0x08}, // SPECIES_SWELLOW - {0x85, 0x0d}, // SPECIES_SHROOMISH - {0x87, 0x04}, // SPECIES_BRELOOM - {0x77, 0x04}, // SPECIES_SPINDA - {0x85, 0x0e}, // SPECIES_WINGULL - {0x87, 0x06}, // SPECIES_PELIPPER - {0x86, 0x0b}, // SPECIES_SURSKIT - {0x88, 0x00}, // SPECIES_MASQUERAIN - {0x83, 0x15}, // SPECIES_WAILMER - {0x83, 0x16}, // SPECIES_WAILORD - {0x86, 0x0a}, // SPECIES_SKITTY - {0x86, 0x08}, // SPECIES_DELCATTY - {0x87, 0x06}, // SPECIES_KECLEON - {0x86, 0x08}, // SPECIES_BALTOY - {0x87, 0x07}, // SPECIES_CLAYDOL - {0x85, 0x0c}, // SPECIES_NOSEPASS - {0x86, 0x0a}, // SPECIES_TORKOAL - {0x76, 0x08}, // SPECIES_SABLEYE - {0x66, 0x0a}, // SPECIES_BARBOACH - {0x86, 0x0a}, // SPECIES_WHISCASH - {0x46, 0x0a}, // SPECIES_LUVDISC - {0x77, 0x07}, // SPECIES_CORPHISH - {0x87, 0x05}, // SPECIES_CRAWDAUNT - {0x67, 0x07}, // SPECIES_FEEBAS - {0x68, 0x02}, // SPECIES_MILOTIC - {0x87, 0x07}, // SPECIES_CARVANHA - {0x88, 0x02}, // SPECIES_SHARPEDO - {0x75, 0x0e}, // SPECIES_TRAPINCH - {0x74, 0x11}, // SPECIES_VIBRAVA - {0x88, 0x02}, // SPECIES_FLYGON - {0x76, 0x0b}, // SPECIES_MAKUHITA - {0x87, 0x07}, // SPECIES_HARIYAMA - {0x84, 0x10}, // SPECIES_ELECTRIKE - {0x87, 0x04}, // SPECIES_MANECTRIC - {0x86, 0x0b}, // SPECIES_NUMEL - {0x84, 0x13}, // SPECIES_CAMERUPT - {0x64, 0x12}, // SPECIES_SPHEAL - {0x86, 0x0a}, // SPECIES_SEALEO - {0x87, 0x06}, // SPECIES_WALREIN - {0x85, 0x0f}, // SPECIES_CACNEA - {0x87, 0x07}, // SPECIES_CACTURNE - {0x76, 0x0a}, // SPECIES_SNORUNT - {0x85, 0x0c}, // SPECIES_GLALIE - {0x87, 0x05}, // SPECIES_LUNATONE - {0x87, 0x05}, // SPECIES_SOLROCK - {0x86, 0x0a}, // SPECIES_AZURILL - {0x56, 0x0b}, // SPECIES_SPOINK - {0x87, 0x04}, // SPECIES_GRUMPIG - {0x76, 0x08}, // SPECIES_PLUSLE - {0x76, 0x08}, // SPECIES_MINUN - {0x87, 0x04}, // SPECIES_MAWILE - {0x76, 0x0b}, // SPECIES_MEDITITE - {0x68, 0x03}, // SPECIES_MEDICHAM - {0x86, 0x09}, // SPECIES_SWABLU - {0x87, 0x06}, // SPECIES_ALTARIA - {0x77, 0x07}, // SPECIES_WYNAUT - {0x66, 0x0b}, // SPECIES_DUSKULL - {0x86, 0x08}, // SPECIES_DUSCLOPS - {0x86, 0x08}, // SPECIES_ROSELIA - {0x85, 0x0f}, // SPECIES_SLAKOTH - {0x86, 0x0a}, // SPECIES_VIGOROTH - {0x86, 0x08}, // SPECIES_SLAKING - {0x66, 0x0b}, // SPECIES_GULPIN - {0x77, 0x06}, // SPECIES_SWALOT - {0x87, 0x07}, // SPECIES_TROPIUS - {0x85, 0x0d}, // SPECIES_WHISMUR - {0x86, 0x09}, // SPECIES_LOUDRED - {0x88, 0x03}, // SPECIES_EXPLOUD - {0x85, 0x0d}, // SPECIES_CLAMPERL - {0x68, 0x02}, // SPECIES_HUNTAIL - {0x77, 0x05}, // SPECIES_GOREBYSS - {0x78, 0x03}, // SPECIES_ABSOL - {0x77, 0x06}, // SPECIES_SHUPPET - {0x65, 0x0c}, // SPECIES_BANETTE - {0x88, 0x03}, // SPECIES_SEVIPER - {0x88, 0x01}, // SPECIES_ZANGOOSE - {0x86, 0x0a}, // SPECIES_RELICANTH - {0x54, 0x11}, // SPECIES_ARON - {0x84, 0x11}, // SPECIES_LAIRON - {0x87, 0x07}, // SPECIES_AGGRON - {0x45, 0x0d}, // SPECIES_CASTFORM - {0x76, 0x08}, // SPECIES_VOLBEAT - {0x67, 0x06}, // SPECIES_ILLUMISE - {0x86, 0x09}, // SPECIES_LILEEP - {0x77, 0x04}, // SPECIES_CRADILY - {0x83, 0x17}, // SPECIES_ANORITH - {0x77, 0x05}, // SPECIES_ARMALDO - {0x45, 0x0d}, // SPECIES_RALTS - {0x57, 0x06}, // SPECIES_KIRLIA - {0x77, 0x04}, // SPECIES_GARDEVOIR - {0x66, 0x08}, // SPECIES_BAGON - {0x85, 0x0d}, // SPECIES_SHELGON - {0x77, 0x06}, // SPECIES_SALAMENCE - {0x66, 0x0a}, // SPECIES_BELDUM - {0x84, 0x10}, // SPECIES_METANG - {0x83, 0x14}, // SPECIES_METAGROSS - {0x86, 0x0a}, // SPECIES_REGIROCK - {0x85, 0x0e}, // SPECIES_REGICE - {0x85, 0x0e}, // SPECIES_REGISTEEL - {0x84, 0x13}, // SPECIES_KYOGRE - {0x87, 0x07}, // SPECIES_GROUDON - {0x78, 0x00}, // SPECIES_RAYQUAZA - {0x88, 0x02}, // SPECIES_LATIAS - {0x88, 0x03}, // SPECIES_LATIOS - {0x87, 0x05}, // SPECIES_JIRACHI - {0x86, 0x09}, // SPECIES_DEOXYS - {0x47, 0x07}, // SPECIES_CHIMECHO - {0x36, 0x0a}, // SPECIES_EGG - {0x56, 0x09}, // SPECIES_UNOWN_B - {0x67, 0x06}, // SPECIES_UNOWN_C - {0x56, 0x08}, // SPECIES_UNOWN_D - {0x56, 0x0a}, // SPECIES_UNOWN_E - {0x66, 0x0a}, // SPECIES_UNOWN_F - {0x57, 0x05}, // SPECIES_UNOWN_G - {0x66, 0x08}, // SPECIES_UNOWN_H - {0x37, 0x07}, // SPECIES_UNOWN_I - {0x46, 0x09}, // SPECIES_UNOWN_J - {0x57, 0x07}, // SPECIES_UNOWN_K - {0x46, 0x0a}, // SPECIES_UNOWN_L - {0x65, 0x0d}, // SPECIES_UNOWN_M - {0x65, 0x0d}, // SPECIES_UNOWN_N - {0x66, 0x08}, // SPECIES_UNOWN_O - {0x46, 0x0a}, // SPECIES_UNOWN_P - {0x55, 0x0f}, // SPECIES_UNOWN_Q - {0x45, 0x0c}, // SPECIES_UNOWN_R - {0x57, 0x04}, // SPECIES_UNOWN_S - {0x45, 0x0d}, // SPECIES_UNOWN_T - {0x65, 0x0d}, // SPECIES_UNOWN_U - {0x56, 0x0b}, // SPECIES_UNOWN_V - {0x55, 0x0d}, // SPECIES_UNOWN_W - {0x55, 0x0f}, // SPECIES_UNOWN_X - {0x46, 0x0a}, // SPECIES_UNOWN_Y - {0x46, 0x0a}, // SPECIES_UNOWN_Z - {0x37, 0x06}, // SPECIES_UNOWN_EMARK - {0x47, 0x06}, // SPECIES_UNOWN_QMARK + [SPECIES_NONE] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_BULBASAUR] = + { + .coords = 0x64, + .y_offset = 0x10, + }, + [SPECIES_IVYSAUR] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_VENUSAUR] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_CHARMANDER] = + { + .coords = 0x65, + .y_offset = 0x0e, + }, + [SPECIES_CHARMELEON] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_CHARIZARD] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_SQUIRTLE] = + { + .coords = 0x65, + .y_offset = 0x0e, + }, + [SPECIES_WARTORTLE] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_BLASTOISE] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_CATERPIE] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_METAPOD] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_BUTTERFREE] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_WEEDLE] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_KAKUNA] = + { + .coords = 0x46, + .y_offset = 0x0a, + }, + [SPECIES_BEEDRILL] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_PIDGEY] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_PIDGEOTTO] = + { + .coords = 0x85, + .y_offset = 0x0c, + }, + [SPECIES_PIDGEOT] = + { + .coords = 0x78, + .y_offset = 0x02, + }, + [SPECIES_RATTATA] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_RATICATE] = + { + .coords = 0x75, + .y_offset = 0x0d, + }, + [SPECIES_SPEAROW] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_FEAROW] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_EKANS] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_ARBOK] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_PIKACHU] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_RAICHU] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_SANDSHREW] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_SANDSLASH] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_NIDORAN_F] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_NIDORINA] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_NIDOQUEEN] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_NIDORAN_M] = + { + .coords = 0x56, + .y_offset = 0x08, + }, + [SPECIES_NIDORINO] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_NIDOKING] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_CLEFAIRY] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_CLEFABLE] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_VULPIX] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_NINETALES] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_JIGGLYPUFF] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_WIGGLYTUFF] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_ZUBAT] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_GOLBAT] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_ODDISH] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_GLOOM] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_VILEPLUME] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_PARAS] = + { + .coords = 0x63, + .y_offset = 0x14, + }, + [SPECIES_PARASECT] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_VENONAT] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_VENOMOTH] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_DIGLETT] = + { + .coords = 0x54, + .y_offset = 0x10, + }, + [SPECIES_DUGTRIO] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_MEOWTH] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_PERSIAN] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_PSYDUCK] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_GOLDUCK] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_MANKEY] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_PRIMEAPE] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_GROWLITHE] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_ARCANINE] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_POLIWAG] = + { + .coords = 0x74, + .y_offset = 0x10, + }, + [SPECIES_POLIWHIRL] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_POLIWRATH] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_ABRA] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_KADABRA] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_ALAKAZAM] = + { + .coords = 0x67, + .y_offset = 0x05, + }, + [SPECIES_MACHOP] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_MACHOKE] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_MACHAMP] = + { + .coords = 0x67, + .y_offset = 0x04, + }, + [SPECIES_BELLSPROUT] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_WEEPINBELL] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_VICTREEBEL] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_TENTACOOL] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_TENTACRUEL] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_GEODUDE] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_GRAVELER] = + { + .coords = 0x75, + .y_offset = 0x0c, + }, + [SPECIES_GOLEM] = + { + .coords = 0x84, + .y_offset = 0x10, + }, + [SPECIES_PONYTA] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_RAPIDASH] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_SLOWPOKE] = + { + .coords = 0x85, + .y_offset = 0x0e, + }, + [SPECIES_SLOWBRO] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_MAGNEMITE] = + { + .coords = 0x43, + .y_offset = 0x14, + }, + [SPECIES_MAGNETON] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_FARFETCHD] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_DODUO] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_DODRIO] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_SEEL] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_DEWGONG] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_GRIMER] = + { + .coords = 0x75, + .y_offset = 0x0c, + }, + [SPECIES_MUK] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_SHELLDER] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_CLOYSTER] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_GASTLY] = + { + .coords = 0x85, + .y_offset = 0x0e, + }, + [SPECIES_HAUNTER] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_GENGAR] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_ONIX] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_DROWZEE] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_HYPNO] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_KRABBY] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_KINGLER] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_VOLTORB] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_ELECTRODE] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_EXEGGCUTE] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_EXEGGUTOR] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_CUBONE] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_MAROWAK] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_HITMONLEE] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_HITMONCHAN] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_LICKITUNG] = + { + .coords = 0x65, + .y_offset = 0x0e, + }, + [SPECIES_KOFFING] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_WEEZING] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_RHYHORN] = + { + .coords = 0x85, + .y_offset = 0x0c, + }, + [SPECIES_RHYDON] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_CHANSEY] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_TANGELA] = + { + .coords = 0x85, + .y_offset = 0x0e, + }, + [SPECIES_KANGASKHAN] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_HORSEA] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_SEADRA] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_GOLDEEN] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_SEAKING] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_STARYU] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_STARMIE] = + { + .coords = 0x85, + .y_offset = 0x0e, + }, + [SPECIES_MR_MIME] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_SCYTHER] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_JYNX] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_ELECTABUZZ] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_MAGMAR] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_PINSIR] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_TAUROS] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_MAGIKARP] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_GYARADOS] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_LAPRAS] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_DITTO] = + { + .coords = 0x54, + .y_offset = 0x11, + }, + [SPECIES_EEVEE] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_VAPOREON] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_JOLTEON] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_FLAREON] = + { + .coords = 0x67, + .y_offset = 0x05, + }, + [SPECIES_PORYGON] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_OMANYTE] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_OMASTAR] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_KABUTO] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_KABUTOPS] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_AERODACTYL] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_SNORLAX] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_ARTICUNO] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_ZAPDOS] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_MOLTRES] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_DRATINI] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_DRAGONAIR] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_DRAGONITE] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_MEWTWO] = + { + .coords = 0x78, + .y_offset = 0x01, + }, + [SPECIES_MEW] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_CHIKORITA] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_BAYLEEF] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_MEGANIUM] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_CYNDAQUIL] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_QUILAVA] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_TYPHLOSION] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_TOTODILE] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_CROCONAW] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_FERALIGATR] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_SENTRET] = + { + .coords = 0x67, + .y_offset = 0x05, + }, + [SPECIES_FURRET] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_HOOTHOOT] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_NOCTOWL] = + { + .coords = 0x68, + .y_offset = 0x03, + }, + [SPECIES_LEDYBA] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_LEDIAN] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_SPINARAK] = + { + .coords = 0x73, + .y_offset = 0x15, + }, + [SPECIES_ARIADOS] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_CROBAT] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_CHINCHOU] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_LANTURN] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_PICHU] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_CLEFFA] = + { + .coords = 0x65, + .y_offset = 0x0f, + }, + [SPECIES_IGGLYBUFF] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_TOGEPI] = + { + .coords = 0x54, + .y_offset = 0x10, + }, + [SPECIES_TOGETIC] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_NATU] = + { + .coords = 0x54, + .y_offset = 0x11, + }, + [SPECIES_XATU] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_MAREEP] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_FLAAFFY] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_AMPHAROS] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_BELLOSSOM] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_MARILL] = + { + .coords = 0x75, + .y_offset = 0x0c, + }, + [SPECIES_AZUMARILL] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_SUDOWOODO] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_POLITOED] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_HOPPIP] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_SKIPLOOM] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_JUMPLUFF] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_AIPOM] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_SUNKERN] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_SUNFLORA] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_YANMA] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_WOOPER] = + { + .coords = 0x85, + .y_offset = 0x0f, + }, + [SPECIES_QUAGSIRE] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_ESPEON] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_UMBREON] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_MURKROW] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_SLOWKING] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_MISDREAVUS] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN] = + { + .coords = 0x36, + .y_offset = 0x08, + }, + [SPECIES_WOBBUFFET] = + { + .coords = 0x75, + .y_offset = 0x0c, + }, + [SPECIES_GIRAFARIG] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_PINECO] = + { + .coords = 0x65, + .y_offset = 0x0f, + }, + [SPECIES_FORRETRESS] = + { + .coords = 0x84, + .y_offset = 0x10, + }, + [SPECIES_DUNSPARCE] = + { + .coords = 0x85, + .y_offset = 0x0f, + }, + [SPECIES_GLIGAR] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_STEELIX] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SNUBBULL] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_GRANBULL] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_QWILFISH] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_SCIZOR] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_SHUCKLE] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_HERACROSS] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_SNEASEL] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_TEDDIURSA] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_URSARING] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_SLUGMA] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_MAGCARGO] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_SWINUB] = + { + .coords = 0x63, + .y_offset = 0x15, + }, + [SPECIES_PILOSWINE] = + { + .coords = 0x75, + .y_offset = 0x0d, + }, + [SPECIES_CORSOLA] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_REMORAID] = + { + .coords = 0x75, + .y_offset = 0x0d, + }, + [SPECIES_OCTILLERY] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_DELIBIRD] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_MANTINE] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_SKARMORY] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_HOUNDOUR] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_HOUNDOOM] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_KINGDRA] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_PHANPY] = + { + .coords = 0x65, + .y_offset = 0x0e, + }, + [SPECIES_DONPHAN] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_PORYGON2] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_STANTLER] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_SMEARGLE] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_TYROGUE] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_HITMONTOP] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_SMOOCHUM] = + { + .coords = 0x56, + .y_offset = 0x09, + }, + [SPECIES_ELEKID] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_MAGBY] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_MILTANK] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_BLISSEY] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_RAIKOU] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_ENTEI] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_SUICUNE] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_LARVITAR] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_PUPITAR] = + { + .coords = 0x67, + .y_offset = 0x05, + }, + [SPECIES_TYRANITAR] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_LUGIA] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_HO_OH] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_CELEBI] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_OLD_UNOWN_B] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_C] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_D] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_E] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_F] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_G] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_H] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_I] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_J] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_K] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_L] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_M] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_N] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_O] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_P] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_Q] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_R] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_S] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_T] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_U] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_V] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_W] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_X] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_Y] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_OLD_UNOWN_Z] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_TREECKO] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_GROVYLE] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_SCEPTILE] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_TORCHIC] = + { + .coords = 0x67, + .y_offset = 0x05, + }, + [SPECIES_COMBUSKEN] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_BLAZIKEN] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_MUDKIP] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_MARSHTOMP] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_SWAMPERT] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_POOCHYENA] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_MIGHTYENA] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_ZIGZAGOON] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_LINOONE] = + { + .coords = 0x85, + .y_offset = 0x0f, + }, + [SPECIES_WURMPLE] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_SILCOON] = + { + .coords = 0x83, + .y_offset = 0x15, + }, + [SPECIES_BEAUTIFLY] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CASCOON] = + { + .coords = 0x73, + .y_offset = 0x14, + }, + [SPECIES_DUSTOX] = + { + .coords = 0x83, + .y_offset = 0x14, + }, + [SPECIES_LOTAD] = + { + .coords = 0x75, + .y_offset = 0x0f, + }, + [SPECIES_LOMBRE] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_LUDICOLO] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_SEEDOT] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_NUZLEAF] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_SHIFTRY] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_NINCADA] = + { + .coords = 0x83, + .y_offset = 0x14, + }, + [SPECIES_NINJASK] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_SHEDINJA] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_TAILLOW] = + { + .coords = 0x64, + .y_offset = 0x11, + }, + [SPECIES_SWELLOW] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_SHROOMISH] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_BRELOOM] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_SPINDA] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_WINGULL] = + { + .coords = 0x85, + .y_offset = 0x0e, + }, + [SPECIES_PELIPPER] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_SURSKIT] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_MASQUERAIN] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_WAILMER] = + { + .coords = 0x83, + .y_offset = 0x15, + }, + [SPECIES_WAILORD] = + { + .coords = 0x83, + .y_offset = 0x16, + }, + [SPECIES_SKITTY] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_DELCATTY] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_KECLEON] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_BALTOY] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_CLAYDOL] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_NOSEPASS] = + { + .coords = 0x85, + .y_offset = 0x0c, + }, + [SPECIES_TORKOAL] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_SABLEYE] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_BARBOACH] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_WHISCASH] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_LUVDISC] = + { + .coords = 0x46, + .y_offset = 0x0a, + }, + [SPECIES_CORPHISH] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_CRAWDAUNT] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_FEEBAS] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_MILOTIC] = + { + .coords = 0x68, + .y_offset = 0x02, + }, + [SPECIES_CARVANHA] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_SHARPEDO] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_TRAPINCH] = + { + .coords = 0x75, + .y_offset = 0x0e, + }, + [SPECIES_VIBRAVA] = + { + .coords = 0x74, + .y_offset = 0x11, + }, + [SPECIES_FLYGON] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_MAKUHITA] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_HARIYAMA] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_ELECTRIKE] = + { + .coords = 0x84, + .y_offset = 0x10, + }, + [SPECIES_MANECTRIC] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_NUMEL] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_CAMERUPT] = + { + .coords = 0x84, + .y_offset = 0x13, + }, + [SPECIES_SPHEAL] = + { + .coords = 0x64, + .y_offset = 0x12, + }, + [SPECIES_SEALEO] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_WALREIN] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_CACNEA] = + { + .coords = 0x85, + .y_offset = 0x0f, + }, + [SPECIES_CACTURNE] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_SNORUNT] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_GLALIE] = + { + .coords = 0x85, + .y_offset = 0x0c, + }, + [SPECIES_LUNATONE] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_SOLROCK] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_AZURILL] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_SPOINK] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_GRUMPIG] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_PLUSLE] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_MINUN] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_MAWILE] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_MEDITITE] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_MEDICHAM] = + { + .coords = 0x68, + .y_offset = 0x03, + }, + [SPECIES_SWABLU] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_ALTARIA] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_WYNAUT] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_DUSKULL] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_DUSCLOPS] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_ROSELIA] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_SLAKOTH] = + { + .coords = 0x85, + .y_offset = 0x0f, + }, + [SPECIES_VIGOROTH] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_SLAKING] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_GULPIN] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_SWALOT] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_TROPIUS] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_WHISMUR] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_LOUDRED] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_EXPLOUD] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_CLAMPERL] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_HUNTAIL] = + { + .coords = 0x68, + .y_offset = 0x02, + }, + [SPECIES_GOREBYSS] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_ABSOL] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_SHUPPET] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_BANETTE] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_SEVIPER] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_ZANGOOSE] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_RELICANTH] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_ARON] = + { + .coords = 0x54, + .y_offset = 0x11, + }, + [SPECIES_LAIRON] = + { + .coords = 0x84, + .y_offset = 0x11, + }, + [SPECIES_AGGRON] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_CASTFORM] = + { + .coords = 0x45, + .y_offset = 0x0d, + }, + [SPECIES_VOLBEAT] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_ILLUMISE] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_LILEEP] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_CRADILY] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_ANORITH] = + { + .coords = 0x83, + .y_offset = 0x17, + }, + [SPECIES_ARMALDO] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_RALTS] = + { + .coords = 0x45, + .y_offset = 0x0d, + }, + [SPECIES_KIRLIA] = + { + .coords = 0x57, + .y_offset = 0x06, + }, + [SPECIES_GARDEVOIR] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_BAGON] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_SHELGON] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_SALAMENCE] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_BELDUM] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_METANG] = + { + .coords = 0x84, + .y_offset = 0x10, + }, + [SPECIES_METAGROSS] = + { + .coords = 0x83, + .y_offset = 0x14, + }, + [SPECIES_REGIROCK] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_REGICE] = + { + .coords = 0x85, + .y_offset = 0x0e, + }, + [SPECIES_REGISTEEL] = + { + .coords = 0x85, + .y_offset = 0x0e, + }, + [SPECIES_KYOGRE] = + { + .coords = 0x84, + .y_offset = 0x13, + }, + [SPECIES_GROUDON] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_RAYQUAZA] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_LATIAS] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_LATIOS] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_JIRACHI] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_DEOXYS] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_CHIMECHO] = + { + .coords = 0x47, + .y_offset = 0x07, + }, + [SPECIES_EGG] = + { + .coords = 0x36, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN_B] = + { + .coords = 0x56, + .y_offset = 0x09, + }, + [SPECIES_UNOWN_C] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_UNOWN_D] = + { + .coords = 0x56, + .y_offset = 0x08, + }, + [SPECIES_UNOWN_E] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN_F] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN_G] = + { + .coords = 0x57, + .y_offset = 0x05, + }, + [SPECIES_UNOWN_H] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_UNOWN_I] = + { + .coords = 0x37, + .y_offset = 0x07, + }, + [SPECIES_UNOWN_J] = + { + .coords = 0x46, + .y_offset = 0x09, + }, + [SPECIES_UNOWN_K] = + { + .coords = 0x57, + .y_offset = 0x07, + }, + [SPECIES_UNOWN_L] = + { + .coords = 0x46, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN_M] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_UNOWN_N] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_UNOWN_O] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_UNOWN_P] = + { + .coords = 0x46, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN_Q] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_UNOWN_R] = + { + .coords = 0x45, + .y_offset = 0x0c, + }, + [SPECIES_UNOWN_S] = + { + .coords = 0x57, + .y_offset = 0x04, + }, + [SPECIES_UNOWN_T] = + { + .coords = 0x45, + .y_offset = 0x0d, + }, + [SPECIES_UNOWN_U] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_UNOWN_V] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_UNOWN_W] = + { + .coords = 0x55, + .y_offset = 0x0d, + }, + [SPECIES_UNOWN_X] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_UNOWN_Y] = + { + .coords = 0x46, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN_Z] = + { + .coords = 0x46, + .y_offset = 0x0a, + }, + [SPECIES_UNOWN_EMARK] = + { + .coords = 0x37, + .y_offset = 0x06, + }, + [SPECIES_UNOWN_QMARK] = + { + .coords = 0x47, + .y_offset = 0x06, + }, }; + diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index 7426a8dc4..c6fd1300b 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -1,443 +1,444 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = { - gMonBackPic_CircledQuestionMark, 0x800, 0, - gMonBackPic_Bulbasaur, 0x800, 1, - gMonBackPic_Ivysaur, 0x800, 2, - gMonBackPic_Venusaur, 0x800, 3, - gMonBackPic_Charmander, 0x800, 4, - gMonBackPic_Charmeleon, 0x800, 5, - gMonBackPic_Charizard, 0x800, 6, - gMonBackPic_Squirtle, 0x800, 7, - gMonBackPic_Wartortle, 0x800, 8, - gMonBackPic_Blastoise, 0x800, 9, - gMonBackPic_Caterpie, 0x800, 10, - gMonBackPic_Metapod, 0x800, 11, - gMonBackPic_Butterfree, 0x800, 12, - gMonBackPic_Weedle, 0x800, 13, - gMonBackPic_Kakuna, 0x800, 14, - gMonBackPic_Beedrill, 0x800, 15, - gMonBackPic_Pidgey, 0x800, 16, - gMonBackPic_Pidgeotto, 0x800, 17, - gMonBackPic_Pidgeot, 0x800, 18, - gMonBackPic_Rattata, 0x800, 19, - gMonBackPic_Raticate, 0x800, 20, - gMonBackPic_Spearow, 0x800, 21, - gMonBackPic_Fearow, 0x800, 22, - gMonBackPic_Ekans, 0x800, 23, - gMonBackPic_Arbok, 0x800, 24, - gMonBackPic_Pikachu, 0x800, 25, - gMonBackPic_Raichu, 0x800, 26, - gMonBackPic_Sandshrew, 0x800, 27, - gMonBackPic_Sandslash, 0x800, 28, - gMonBackPic_NidoranF, 0x800, 29, - gMonBackPic_Nidorina, 0x800, 30, - gMonBackPic_Nidoqueen, 0x800, 31, - gMonBackPic_NidoranM, 0x800, 32, - gMonBackPic_Nidorino, 0x800, 33, - gMonBackPic_Nidoking, 0x800, 34, - gMonBackPic_Clefairy, 0x800, 35, - gMonBackPic_Clefable, 0x800, 36, - gMonBackPic_Vulpix, 0x800, 37, - gMonBackPic_Ninetales, 0x800, 38, - gMonBackPic_Jigglypuff, 0x800, 39, - gMonBackPic_Wigglytuff, 0x800, 40, - gMonBackPic_Zubat, 0x800, 41, - gMonBackPic_Golbat, 0x800, 42, - gMonBackPic_Oddish, 0x800, 43, - gMonBackPic_Gloom, 0x800, 44, - gMonBackPic_Vileplume, 0x800, 45, - gMonBackPic_Paras, 0x800, 46, - gMonBackPic_Parasect, 0x800, 47, - gMonBackPic_Venonat, 0x800, 48, - gMonBackPic_Venomoth, 0x800, 49, - gMonBackPic_Diglett, 0x800, 50, - gMonBackPic_Dugtrio, 0x800, 51, - gMonBackPic_Meowth, 0x800, 52, - gMonBackPic_Persian, 0x800, 53, - gMonBackPic_Psyduck, 0x800, 54, - gMonBackPic_Golduck, 0x800, 55, - gMonBackPic_Mankey, 0x800, 56, - gMonBackPic_Primeape, 0x800, 57, - gMonBackPic_Growlithe, 0x800, 58, - gMonBackPic_Arcanine, 0x800, 59, - gMonBackPic_Poliwag, 0x800, 60, - gMonBackPic_Poliwhirl, 0x800, 61, - gMonBackPic_Poliwrath, 0x800, 62, - gMonBackPic_Abra, 0x800, 63, - gMonBackPic_Kadabra, 0x800, 64, - gMonBackPic_Alakazam, 0x800, 65, - gMonBackPic_Machop, 0x800, 66, - gMonBackPic_Machoke, 0x800, 67, - gMonBackPic_Machamp, 0x800, 68, - gMonBackPic_Bellsprout, 0x800, 69, - gMonBackPic_Weepinbell, 0x800, 70, - gMonBackPic_Victreebel, 0x800, 71, - gMonBackPic_Tentacool, 0x800, 72, - gMonBackPic_Tentacruel, 0x800, 73, - gMonBackPic_Geodude, 0x800, 74, - gMonBackPic_Graveler, 0x800, 75, - gMonBackPic_Golem, 0x800, 76, - gMonBackPic_Ponyta, 0x800, 77, - gMonBackPic_Rapidash, 0x800, 78, - gMonBackPic_Slowpoke, 0x800, 79, - gMonBackPic_Slowbro, 0x800, 80, - gMonBackPic_Magnemite, 0x800, 81, - gMonBackPic_Magneton, 0x800, 82, - gMonBackPic_Farfetchd, 0x800, 83, - gMonBackPic_Doduo, 0x800, 84, - gMonBackPic_Dodrio, 0x800, 85, - gMonBackPic_Seel, 0x800, 86, - gMonBackPic_Dewgong, 0x800, 87, - gMonBackPic_Grimer, 0x800, 88, - gMonBackPic_Muk, 0x800, 89, - gMonBackPic_Shellder, 0x800, 90, - gMonBackPic_Cloyster, 0x800, 91, - gMonBackPic_Gastly, 0x800, 92, - gMonBackPic_Haunter, 0x800, 93, - gMonBackPic_Gengar, 0x800, 94, - gMonBackPic_Onix, 0x800, 95, - gMonBackPic_Drowzee, 0x800, 96, - gMonBackPic_Hypno, 0x800, 97, - gMonBackPic_Krabby, 0x800, 98, - gMonBackPic_Kingler, 0x800, 99, - gMonBackPic_Voltorb, 0x800, 100, - gMonBackPic_Electrode, 0x800, 101, - gMonBackPic_Exeggcute, 0x800, 102, - gMonBackPic_Exeggutor, 0x800, 103, - gMonBackPic_Cubone, 0x800, 104, - gMonBackPic_Marowak, 0x800, 105, - gMonBackPic_Hitmonlee, 0x800, 106, - gMonBackPic_Hitmonchan, 0x800, 107, - gMonBackPic_Lickitung, 0x800, 108, - gMonBackPic_Koffing, 0x800, 109, - gMonBackPic_Weezing, 0x800, 110, - gMonBackPic_Rhyhorn, 0x800, 111, - gMonBackPic_Rhydon, 0x800, 112, - gMonBackPic_Chansey, 0x800, 113, - gMonBackPic_Tangela, 0x800, 114, - gMonBackPic_Kangaskhan, 0x800, 115, - gMonBackPic_Horsea, 0x800, 116, - gMonBackPic_Seadra, 0x800, 117, - gMonBackPic_Goldeen, 0x800, 118, - gMonBackPic_Seaking, 0x800, 119, - gMonBackPic_Staryu, 0x800, 120, - gMonBackPic_Starmie, 0x800, 121, - gMonBackPic_Mrmime, 0x800, 122, - gMonBackPic_Scyther, 0x800, 123, - gMonBackPic_Jynx, 0x800, 124, - gMonBackPic_Electabuzz, 0x800, 125, - gMonBackPic_Magmar, 0x800, 126, - gMonBackPic_Pinsir, 0x800, 127, - gMonBackPic_Tauros, 0x800, 128, - gMonBackPic_Magikarp, 0x800, 129, - gMonBackPic_Gyarados, 0x800, 130, - gMonBackPic_Lapras, 0x800, 131, - gMonBackPic_Ditto, 0x800, 132, - gMonBackPic_Eevee, 0x800, 133, - gMonBackPic_Vaporeon, 0x800, 134, - gMonBackPic_Jolteon, 0x800, 135, - gMonBackPic_Flareon, 0x800, 136, - gMonBackPic_Porygon, 0x800, 137, - gMonBackPic_Omanyte, 0x800, 138, - gMonBackPic_Omastar, 0x800, 139, - gMonBackPic_Kabuto, 0x800, 140, - gMonBackPic_Kabutops, 0x800, 141, - gMonBackPic_Aerodactyl, 0x800, 142, - gMonBackPic_Snorlax, 0x800, 143, - gMonBackPic_Articuno, 0x800, 144, - gMonBackPic_Zapdos, 0x800, 145, - gMonBackPic_Moltres, 0x800, 146, - gMonBackPic_Dratini, 0x800, 147, - gMonBackPic_Dragonair, 0x800, 148, - gMonBackPic_Dragonite, 0x800, 149, - gMonBackPic_Mewtwo, 0x800, 150, - gMonBackPic_Mew, 0x800, 151, - gMonBackPic_Chikorita, 0x800, 152, - gMonBackPic_Bayleef, 0x800, 153, - gMonBackPic_Meganium, 0x800, 154, - gMonBackPic_Cyndaquil, 0x800, 155, - gMonBackPic_Quilava, 0x800, 156, - gMonBackPic_Typhlosion, 0x800, 157, - gMonBackPic_Totodile, 0x800, 158, - gMonBackPic_Croconaw, 0x800, 159, - gMonBackPic_Feraligatr, 0x800, 160, - gMonBackPic_Sentret, 0x800, 161, - gMonBackPic_Furret, 0x800, 162, - gMonBackPic_Hoothoot, 0x800, 163, - gMonBackPic_Noctowl, 0x800, 164, - gMonBackPic_Ledyba, 0x800, 165, - gMonBackPic_Ledian, 0x800, 166, - gMonBackPic_Spinarak, 0x800, 167, - gMonBackPic_Ariados, 0x800, 168, - gMonBackPic_Crobat, 0x800, 169, - gMonBackPic_Chinchou, 0x800, 170, - gMonBackPic_Lanturn, 0x800, 171, - gMonBackPic_Pichu, 0x800, 172, - gMonBackPic_Cleffa, 0x800, 173, - gMonBackPic_Igglybuff, 0x800, 174, - gMonBackPic_Togepi, 0x800, 175, - gMonBackPic_Togetic, 0x800, 176, - gMonBackPic_Natu, 0x800, 177, - gMonBackPic_Xatu, 0x800, 178, - gMonBackPic_Mareep, 0x800, 179, - gMonBackPic_Flaaffy, 0x800, 180, - gMonBackPic_Ampharos, 0x800, 181, - gMonBackPic_Bellossom, 0x800, 182, - gMonBackPic_Marill, 0x800, 183, - gMonBackPic_Azumarill, 0x800, 184, - gMonBackPic_Sudowoodo, 0x800, 185, - gMonBackPic_Politoed, 0x800, 186, - gMonBackPic_Hoppip, 0x800, 187, - gMonBackPic_Skiploom, 0x800, 188, - gMonBackPic_Jumpluff, 0x800, 189, - gMonBackPic_Aipom, 0x800, 190, - gMonBackPic_Sunkern, 0x800, 191, - gMonBackPic_Sunflora, 0x800, 192, - gMonBackPic_Yanma, 0x800, 193, - gMonBackPic_Wooper, 0x800, 194, - gMonBackPic_Quagsire, 0x800, 195, - gMonBackPic_Espeon, 0x800, 196, - gMonBackPic_Umbreon, 0x800, 197, - gMonBackPic_Murkrow, 0x800, 198, - gMonBackPic_Slowking, 0x800, 199, - gMonBackPic_Misdreavus, 0x800, 200, - gMonBackPic_UnownA, 0x800, 201, - gMonBackPic_Wobbuffet, 0x800, 202, - gMonBackPic_Girafarig, 0x800, 203, - gMonBackPic_Pineco, 0x800, 204, - gMonBackPic_Forretress, 0x800, 205, - gMonBackPic_Dunsparce, 0x800, 206, - gMonBackPic_Gligar, 0x800, 207, - gMonBackPic_Steelix, 0x800, 208, - gMonBackPic_Snubbull, 0x800, 209, - gMonBackPic_Granbull, 0x800, 210, - gMonBackPic_Qwilfish, 0x800, 211, - gMonBackPic_Scizor, 0x800, 212, - gMonBackPic_Shuckle, 0x800, 213, - gMonBackPic_Heracross, 0x800, 214, - gMonBackPic_Sneasel, 0x800, 215, - gMonBackPic_Teddiursa, 0x800, 216, - gMonBackPic_Ursaring, 0x800, 217, - gMonBackPic_Slugma, 0x800, 218, - gMonBackPic_Magcargo, 0x800, 219, - gMonBackPic_Swinub, 0x800, 220, - gMonBackPic_Piloswine, 0x800, 221, - gMonBackPic_Corsola, 0x800, 222, - gMonBackPic_Remoraid, 0x800, 223, - gMonBackPic_Octillery, 0x800, 224, - gMonBackPic_Delibird, 0x800, 225, - gMonBackPic_Mantine, 0x800, 226, - gMonBackPic_Skarmory, 0x800, 227, - gMonBackPic_Houndour, 0x800, 228, - gMonBackPic_Houndoom, 0x800, 229, - gMonBackPic_Kingdra, 0x800, 230, - gMonBackPic_Phanpy, 0x800, 231, - gMonBackPic_Donphan, 0x800, 232, - gMonBackPic_Porygon2, 0x800, 233, - gMonBackPic_Stantler, 0x800, 234, - gMonBackPic_Smeargle, 0x800, 235, - gMonBackPic_Tyrogue, 0x800, 236, - gMonBackPic_Hitmontop, 0x800, 237, - gMonBackPic_Smoochum, 0x800, 238, - gMonBackPic_Elekid, 0x800, 239, - gMonBackPic_Magby, 0x800, 240, - gMonBackPic_Miltank, 0x800, 241, - gMonBackPic_Blissey, 0x800, 242, - gMonBackPic_Raikou, 0x800, 243, - gMonBackPic_Entei, 0x800, 244, - gMonBackPic_Suicune, 0x800, 245, - gMonBackPic_Larvitar, 0x800, 246, - gMonBackPic_Pupitar, 0x800, 247, - gMonBackPic_Tyranitar, 0x800, 248, - gMonBackPic_Lugia, 0x800, 249, - gMonBackPic_HoOh, 0x800, 250, - gMonBackPic_Celebi, 0x800, 251, - gMonBackPic_DoubleQuestionMark, 0x800, 252, - gMonBackPic_DoubleQuestionMark, 0x800, 253, - gMonBackPic_DoubleQuestionMark, 0x800, 254, - gMonBackPic_DoubleQuestionMark, 0x800, 255, - gMonBackPic_DoubleQuestionMark, 0x800, 256, - gMonBackPic_DoubleQuestionMark, 0x800, 257, - gMonBackPic_DoubleQuestionMark, 0x800, 258, - gMonBackPic_DoubleQuestionMark, 0x800, 259, - gMonBackPic_DoubleQuestionMark, 0x800, 260, - gMonBackPic_DoubleQuestionMark, 0x800, 261, - gMonBackPic_DoubleQuestionMark, 0x800, 262, - gMonBackPic_DoubleQuestionMark, 0x800, 263, - gMonBackPic_DoubleQuestionMark, 0x800, 264, - gMonBackPic_DoubleQuestionMark, 0x800, 265, - gMonBackPic_DoubleQuestionMark, 0x800, 266, - gMonBackPic_DoubleQuestionMark, 0x800, 267, - gMonBackPic_DoubleQuestionMark, 0x800, 268, - gMonBackPic_DoubleQuestionMark, 0x800, 269, - gMonBackPic_DoubleQuestionMark, 0x800, 270, - gMonBackPic_DoubleQuestionMark, 0x800, 271, - gMonBackPic_DoubleQuestionMark, 0x800, 272, - gMonBackPic_DoubleQuestionMark, 0x800, 273, - gMonBackPic_DoubleQuestionMark, 0x800, 274, - gMonBackPic_DoubleQuestionMark, 0x800, 275, - gMonBackPic_DoubleQuestionMark, 0x800, 276, - gMonBackPic_Treecko, 0x800, 277, - gMonBackPic_Grovyle, 0x800, 278, - gMonBackPic_Sceptile, 0x800, 279, - gMonBackPic_Torchic, 0x800, 280, - gMonBackPic_Combusken, 0x800, 281, - gMonBackPic_Blaziken, 0x800, 282, - gMonBackPic_Mudkip, 0x800, 283, - gMonBackPic_Marshtomp, 0x800, 284, - gMonBackPic_Swampert, 0x800, 285, - gMonBackPic_Poochyena, 0x800, 286, - gMonBackPic_Mightyena, 0x800, 287, - gMonBackPic_Zigzagoon, 0x800, 288, - gMonBackPic_Linoone, 0x800, 289, - gMonBackPic_Wurmple, 0x800, 290, - gMonBackPic_Silcoon, 0x800, 291, - gMonBackPic_Beautifly, 0x800, 292, - gMonBackPic_Cascoon, 0x800, 293, - gMonBackPic_Dustox, 0x800, 294, - gMonBackPic_Lotad, 0x800, 295, - gMonBackPic_Lombre, 0x800, 296, - gMonBackPic_Ludicolo, 0x800, 297, - gMonBackPic_Seedot, 0x800, 298, - gMonBackPic_Nuzleaf, 0x800, 299, - gMonBackPic_Shiftry, 0x800, 300, - gMonBackPic_Nincada, 0x800, 301, - gMonBackPic_Ninjask, 0x800, 302, - gMonBackPic_Shedinja, 0x800, 303, - gMonBackPic_Taillow, 0x800, 304, - gMonBackPic_Swellow, 0x800, 305, - gMonBackPic_Shroomish, 0x800, 306, - gMonBackPic_Breloom, 0x800, 307, - gMonBackPic_Spinda, 0x800, 308, - gMonBackPic_Wingull, 0x800, 309, - gMonBackPic_Pelipper, 0x800, 310, - gMonBackPic_Surskit, 0x800, 311, - gMonBackPic_Masquerain, 0x800, 312, - gMonBackPic_Wailmer, 0x800, 313, - gMonBackPic_Wailord, 0x800, 314, - gMonBackPic_Skitty, 0x800, 315, - gMonBackPic_Delcatty, 0x800, 316, - gMonBackPic_Kecleon, 0x800, 317, - gMonBackPic_Baltoy, 0x800, 318, - gMonBackPic_Claydol, 0x800, 319, - gMonBackPic_Nosepass, 0x800, 320, - gMonBackPic_Torkoal, 0x800, 321, - gMonBackPic_Sableye, 0x800, 322, - gMonBackPic_Barboach, 0x800, 323, - gMonBackPic_Whiscash, 0x800, 324, - gMonBackPic_Luvdisc, 0x800, 325, - gMonBackPic_Corphish, 0x800, 326, - gMonBackPic_Crawdaunt, 0x800, 327, - gMonBackPic_Feebas, 0x800, 328, - gMonBackPic_Milotic, 0x800, 329, - gMonBackPic_Carvanha, 0x800, 330, - gMonBackPic_Sharpedo, 0x800, 331, - gMonBackPic_Trapinch, 0x800, 332, - gMonBackPic_Vibrava, 0x800, 333, - gMonBackPic_Flygon, 0x800, 334, - gMonBackPic_Makuhita, 0x800, 335, - gMonBackPic_Hariyama, 0x800, 336, - gMonBackPic_Electrike, 0x800, 337, - gMonBackPic_Manectric, 0x800, 338, - gMonBackPic_Numel, 0x800, 339, - gMonBackPic_Camerupt, 0x800, 340, - gMonBackPic_Spheal, 0x800, 341, - gMonBackPic_Sealeo, 0x800, 342, - gMonBackPic_Walrein, 0x800, 343, - gMonBackPic_Cacnea, 0x800, 344, - gMonBackPic_Cacturne, 0x800, 345, - gMonBackPic_Snorunt, 0x800, 346, - gMonBackPic_Glalie, 0x800, 347, - gMonBackPic_Lunatone, 0x800, 348, - gMonBackPic_Solrock, 0x800, 349, - gMonBackPic_Azurill, 0x800, 350, - gMonBackPic_Spoink, 0x800, 351, - gMonBackPic_Grumpig, 0x800, 352, - gMonBackPic_Plusle, 0x800, 353, - gMonBackPic_Minun, 0x800, 354, - gMonBackPic_Mawile, 0x800, 355, - gMonBackPic_Meditite, 0x800, 356, - gMonBackPic_Medicham, 0x800, 357, - gMonBackPic_Swablu, 0x800, 358, - gMonBackPic_Altaria, 0x800, 359, - gMonBackPic_Wynaut, 0x800, 360, - gMonBackPic_Duskull, 0x800, 361, - gMonBackPic_Dusclops, 0x800, 362, - gMonBackPic_Roselia, 0x800, 363, - gMonBackPic_Slakoth, 0x800, 364, - gMonBackPic_Vigoroth, 0x800, 365, - gMonBackPic_Slaking, 0x800, 366, - gMonBackPic_Gulpin, 0x800, 367, - gMonBackPic_Swalot, 0x800, 368, - gMonBackPic_Tropius, 0x800, 369, - gMonBackPic_Whismur, 0x800, 370, - gMonBackPic_Loudred, 0x800, 371, - gMonBackPic_Exploud, 0x800, 372, - gMonBackPic_Clamperl, 0x800, 373, - gMonBackPic_Huntail, 0x800, 374, - gMonBackPic_Gorebyss, 0x800, 375, - gMonBackPic_Absol, 0x800, 376, - gMonBackPic_Shuppet, 0x800, 377, - gMonBackPic_Banette, 0x800, 378, - gMonBackPic_Seviper, 0x800, 379, - gMonBackPic_Zangoose, 0x800, 380, - gMonBackPic_Relicanth, 0x800, 381, - gMonBackPic_Aron, 0x800, 382, - gMonBackPic_Lairon, 0x800, 383, - gMonBackPic_Aggron, 0x800, 384, - gMonBackPic_Castform, 0x800, 385, - gMonBackPic_Volbeat, 0x800, 386, - gMonBackPic_Illumise, 0x800, 387, - gMonBackPic_Lileep, 0x800, 388, - gMonBackPic_Cradily, 0x800, 389, - gMonBackPic_Anorith, 0x800, 390, - gMonBackPic_Armaldo, 0x800, 391, - gMonBackPic_Ralts, 0x800, 392, - gMonBackPic_Kirlia, 0x800, 393, - gMonBackPic_Gardevoir, 0x800, 394, - gMonBackPic_Bagon, 0x800, 395, - gMonBackPic_Shelgon, 0x800, 396, - gMonBackPic_Salamence, 0x800, 397, - gMonBackPic_Beldum, 0x800, 398, - gMonBackPic_Metang, 0x800, 399, - gMonBackPic_Metagross, 0x800, 400, - gMonBackPic_Regirock, 0x800, 401, - gMonBackPic_Regice, 0x800, 402, - gMonBackPic_Registeel, 0x800, 403, - gMonBackPic_Kyogre, 0x800, 404, - gMonBackPic_Groudon, 0x800, 405, - gMonBackPic_Rayquaza, 0x800, 406, - gMonBackPic_Latias, 0x800, 407, - gMonBackPic_Latios, 0x800, 408, - gMonBackPic_Jirachi, 0x800, 409, - gMonBackPic_Deoxys, 0x800, 410, - gMonBackPic_Chimecho, 0x800, 411, - gMonStillFrontPic_Egg, 0x800, 412, - gMonBackPic_UnownB, 0x800, 413, - gMonBackPic_UnownC, 0x800, 414, - gMonBackPic_UnownD, 0x800, 415, - gMonBackPic_UnownE, 0x800, 416, - gMonBackPic_UnownF, 0x800, 417, - gMonBackPic_UnownG, 0x800, 418, - gMonBackPic_UnownH, 0x800, 419, - gMonBackPic_UnownI, 0x800, 420, - gMonBackPic_UnownJ, 0x800, 421, - gMonBackPic_UnownK, 0x800, 422, - gMonBackPic_UnownL, 0x800, 423, - gMonBackPic_UnownM, 0x800, 424, - gMonBackPic_UnownN, 0x800, 425, - gMonBackPic_UnownO, 0x800, 426, - gMonBackPic_UnownP, 0x800, 427, - gMonBackPic_UnownQ, 0x800, 428, - gMonBackPic_UnownR, 0x800, 429, - gMonBackPic_UnownS, 0x800, 430, - gMonBackPic_UnownT, 0x800, 431, - gMonBackPic_UnownU, 0x800, 432, - gMonBackPic_UnownV, 0x800, 433, - gMonBackPic_UnownW, 0x800, 434, - gMonBackPic_UnownX, 0x800, 435, - gMonBackPic_UnownY, 0x800, 436, - gMonBackPic_UnownZ, 0x800, 437, - gMonBackPic_UnownExclamationMark, 0x800, 438, - gMonBackPic_UnownQuestionMark, 0x800, 439, + [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}, }; + diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index 80e2a415a..c8f079a5c 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -1,417 +1,419 @@ +#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[] = { - 0, // 0 - 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 - 8, // SPECIES_BUTTERFREE - 0, // SPECIES_WEEDLE - 0, // SPECIES_KAKUNA - 8, // SPECIES_BEEDRILL - 16, // SPECIES_PIDGEY - 0, // SPECIES_PIDGEOTTO - 4, // SPECIES_PIDGEOT - 0, // SPECIES_RATTATA - 0, // SPECIES_RATICATE - 0, // SPECIES_SPEAROW - 6, // SPECIES_FEAROW - 0, // 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 - 8, // SPECIES_ZUBAT - 8, // SPECIES_GOLBAT - 0, // SPECIES_ODDISH - 0, // SPECIES_GLOOM - 0, // SPECIES_VILEPLUME - 0, // SPECIES_PARAS - 0, // SPECIES_PARASECT - 0, // SPECIES_VENONAT - 8, // SPECIES_VENOMOTH - 0, // 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 - 16, // SPECIES_GEODUDE - 0, // SPECIES_GRAVELER - 0, // SPECIES_GOLEM - 0, // SPECIES_PONYTA - 0, // SPECIES_RAPIDASH - 0, // SPECIES_SLOWPOKE - 0, // SPECIES_SLOWBRO - 16, // SPECIES_MAGNEMITE - 8, // SPECIES_MAGNETON - 0, // 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 - 4, // SPECIES_GASTLY - 4, // SPECIES_HAUNTER - 0, // SPECIES_GENGAR - 0, // SPECIES_ONIX - 0, // SPECIES_DROWZEE - 0, // SPECIES_HYPNO - 0, // SPECIES_KRABBY - 0, // SPECIES_KINGLER - 10, // SPECIES_VOLTORB - 12, // SPECIES_ELECTRODE - 0, // SPECIES_EXEGGCUTE - 0, // SPECIES_EXEGGUTOR - 0, // SPECIES_CUBONE - 0, // SPECIES_MAROWAK - 0, // SPECIES_HITMONLEE - 0, // SPECIES_HITMONCHAN - 0, // SPECIES_LICKITUNG - 8, // SPECIES_KOFFING - 6, // SPECIES_WEEZING - 0, // 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 - 7, // SPECIES_AERODACTYL - 0, // SPECIES_SNORLAX - 6, // SPECIES_ARTICUNO - 8, // SPECIES_ZAPDOS - 5, // SPECIES_MOLTRES - 0, // SPECIES_DRATINI - 0, // SPECIES_DRAGONAIR - 6, // SPECIES_DRAGONITE - 0, // SPECIES_MEWTWO - 8, // SPECIES_MEW - 0, // 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 - 8, // SPECIES_LEDIAN - 0, // SPECIES_SPINARAK - 0, // SPECIES_ARIADOS - 6, // SPECIES_CROBAT - 0, // 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 - 11, // SPECIES_HOPPIP - 12, // SPECIES_SKIPLOOM - 9, // SPECIES_JUMPLUFF - 0, // SPECIES_AIPOM - 0, // SPECIES_SUNKERN - 0, // SPECIES_SUNFLORA - 8, // SPECIES_YANMA - 0, // SPECIES_WOOPER - 0, // SPECIES_QUAGSIRE - 0, // SPECIES_ESPEON - 0, // SPECIES_UMBREON - 0, // SPECIES_MURKROW - 0, // SPECIES_SLOWKING - 8, // SPECIES_MISDREAVUS - 8, // SPECIES_UNOWN - 0, // SPECIES_WOBBUFFET - 0, // SPECIES_GIRAFARIG - 0, // SPECIES_PINECO - 0, // SPECIES_FORRETRESS - 0, // SPECIES_DUNSPARCE - 6, // SPECIES_GLIGAR - 0, // 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 - 6, // SPECIES_LUGIA - 6, // SPECIES_HO_OH - 15, // SPECIES_CELEBI - 0, // 252 - 0, // 253 - 0, // 254 - 0, // 255 - 0, // 256 - 0, // 257 - 0, // 258 - 0, // 259 - 0, // 260 - 0, // 261 - 0, // 262 - 0, // 263 - 0, // 264 - 0, // 265 - 0, // 266 - 0, // 267 - 0, // 268 - 0, // 269 - 0, // 270 - 0, // 271 - 0, // 272 - 0, // 273 - 0, // 274 - 0, // 275 - 0, // 276 - 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 - 8, // SPECIES_BEAUTIFLY - 0, // SPECIES_CASCOON - 10, // SPECIES_DUSTOX - 0, // SPECIES_LOTAD - 0, // SPECIES_LOMBRE - 0, // SPECIES_LUDICOLO - 0, // SPECIES_SEEDOT - 0, // SPECIES_NUZLEAF - 0, // SPECIES_SHIFTRY - 0, // SPECIES_NINCADA - 10, // SPECIES_NINJASK - 8, // SPECIES_SHEDINJA - 0, // SPECIES_TAILLOW - 0, // SPECIES_SWELLOW - 0, // SPECIES_SHROOMISH - 0, // SPECIES_BRELOOM - 0, // SPECIES_SPINDA - 16, // SPECIES_WINGULL - 8, // SPECIES_PELIPPER - 0, // SPECIES_SURSKIT - 10, // SPECIES_MASQUERAIN - 0, // SPECIES_WAILMER - 0, // SPECIES_WAILORD - 0, // SPECIES_SKITTY - 0, // SPECIES_DELCATTY - 0, // SPECIES_KECLEON - 4, // SPECIES_BALTOY - 10, // SPECIES_CLAYDOL - 0, // 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 - 7, // SPECIES_FLYGON - 0, // 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 - 12, // SPECIES_GLALIE - 13, // SPECIES_LUNATONE - 4, // SPECIES_SOLROCK - 0, // SPECIES_AZURILL - 0, // SPECIES_SPOINK - 0, // SPECIES_GRUMPIG - 0, // SPECIES_PLUSLE - 0, // SPECIES_MINUN - 0, // SPECIES_MAWILE - 0, // SPECIES_MEDITITE - 0, // SPECIES_MEDICHAM - 12, // SPECIES_SWABLU - 8, // SPECIES_ALTARIA - 0, // SPECIES_WYNAUT - 9, // SPECIES_DUSKULL - 0, // 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 - 12, // SPECIES_SHUPPET - 8, // SPECIES_BANETTE - 0, // SPECIES_SEVIPER - 0, // SPECIES_ZANGOOSE - 0, // SPECIES_RELICANTH - 0, // SPECIES_ARON - 0, // SPECIES_LAIRON - 0, // SPECIES_AGGRON - 16, // SPECIES_CASTFORM - 0, // 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 - 8, // SPECIES_BELDUM - 0, // SPECIES_METANG - 0, // SPECIES_METAGROSS - 0, // SPECIES_REGIROCK - 0, // SPECIES_REGICE - 0, // SPECIES_REGISTEEL - 0, // SPECIES_KYOGRE - 0, // SPECIES_GROUDON - 6, // SPECIES_RAYQUAZA - 6, // SPECIES_LATIAS - 6, // SPECIES_LATIOS - 12, // SPECIES_JIRACHI - 8, // SPECIES_DEOXYS - 12, // SPECIES_CHIMECHO + [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, + [SPECIES_JIRACHI] = 12, + [SPECIES_DEOXYS] = 8, + [SPECIES_CHIMECHO] = 12, }; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 923df2cde..a01f0360f 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -1,443 +1,2205 @@ +#include "constants/species.h" + const struct MonCoords gMonFrontPicCoords[] = { - {0x88, 0x00}, // SPECIES_NONE - {0x45, 0x0e}, // SPECIES_BULBASAUR - {0x56, 0x0a}, // SPECIES_IVYSAUR - {0x88, 0x03}, // SPECIES_VENUSAUR - {0x55, 0x0c}, // SPECIES_CHARMANDER - {0x66, 0x09}, // SPECIES_CHARMELEON - {0x88, 0x01}, // SPECIES_CHARIZARD - {0x65, 0x0d}, // SPECIES_SQUIRTLE - {0x66, 0x08}, // SPECIES_WARTORTLE - {0x88, 0x00}, // SPECIES_BLASTOISE - {0x45, 0x10}, // SPECIES_CATERPIE - {0x54, 0x14}, // SPECIES_METAPOD - {0x76, 0x09}, // SPECIES_BUTTERFREE - {0x54, 0x12}, // SPECIES_WEEDLE - {0x45, 0x0e}, // SPECIES_KAKUNA - {0x86, 0x09}, // SPECIES_BEEDRILL - {0x65, 0x0d}, // SPECIES_PIDGEY - {0x67, 0x0b}, // SPECIES_PIDGEOTTO - {0x88, 0x01}, // SPECIES_PIDGEOT - {0x44, 0x10}, // SPECIES_RATTATA - {0x66, 0x0b}, // SPECIES_RATICATE - {0x45, 0x0f}, // SPECIES_SPEAROW - {0x78, 0x00}, // SPECIES_FEAROW - {0x65, 0x0c}, // SPECIES_EKANS - {0x88, 0x02}, // SPECIES_ARBOK - {0x67, 0x09}, // SPECIES_PIKACHU - {0x67, 0x04}, // SPECIES_RAICHU - {0x55, 0x0e}, // SPECIES_SANDSHREW - {0x76, 0x09}, // SPECIES_SANDSLASH - {0x45, 0x0f}, // SPECIES_NIDORAN_F - {0x66, 0x0b}, // SPECIES_NIDORINA - {0x78, 0x03}, // SPECIES_NIDOQUEEN - {0x55, 0x0c}, // SPECIES_NIDORAN_M - {0x66, 0x09}, // SPECIES_NIDORINO - {0x78, 0x02}, // SPECIES_NIDOKING - {0x55, 0x10}, // SPECIES_CLEFAIRY - {0x66, 0x08}, // SPECIES_CLEFABLE - {0x65, 0x0c}, // SPECIES_VULPIX - {0x88, 0x03}, // SPECIES_NINETALES - {0x45, 0x10}, // SPECIES_JIGGLYPUFF - {0x67, 0x08}, // SPECIES_WIGGLYTUFF - {0x67, 0x06}, // SPECIES_ZUBAT - {0x88, 0x03}, // SPECIES_GOLBAT - {0x45, 0x0f}, // SPECIES_ODDISH - {0x66, 0x0a}, // SPECIES_GLOOM - {0x77, 0x06}, // SPECIES_VILEPLUME - {0x55, 0x0f}, // SPECIES_PARAS - {0x86, 0x08}, // SPECIES_PARASECT - {0x66, 0x08}, // SPECIES_VENONAT - {0x88, 0x02}, // SPECIES_VENOMOTH - {0x54, 0x12}, // SPECIES_DIGLETT - {0x75, 0x0d}, // SPECIES_DUGTRIO - {0x55, 0x0c}, // SPECIES_MEOWTH - {0x77, 0x07}, // SPECIES_PERSIAN - {0x56, 0x09}, // SPECIES_PSYDUCK - {0x78, 0x02}, // SPECIES_GOLDUCK - {0x65, 0x0e}, // SPECIES_MANKEY - {0x77, 0x07}, // SPECIES_PRIMEAPE - {0x66, 0x0b}, // SPECIES_GROWLITHE - {0x88, 0x02}, // SPECIES_ARCANINE - {0x74, 0x13}, // SPECIES_POLIWAG - {0x76, 0x0a}, // SPECIES_POLIWHIRL - {0x76, 0x08}, // SPECIES_POLIWRATH - {0x66, 0x0b}, // SPECIES_ABRA - {0x77, 0x05}, // SPECIES_KADABRA - {0x87, 0x04}, // SPECIES_ALAKAZAM - {0x56, 0x0b}, // SPECIES_MACHOP - {0x67, 0x06}, // SPECIES_MACHOKE - {0x88, 0x01}, // SPECIES_MACHAMP - {0x65, 0x0f}, // SPECIES_BELLSPROUT - {0x66, 0x0b}, // SPECIES_WEEPINBELL - {0x77, 0x05}, // SPECIES_VICTREEBEL - {0x46, 0x09}, // SPECIES_TENTACOOL - {0x87, 0x04}, // SPECIES_TENTACRUEL - {0x54, 0x12}, // SPECIES_GEODUDE - {0x87, 0x04}, // SPECIES_GRAVELER - {0x77, 0x05}, // SPECIES_GOLEM - {0x66, 0x08}, // SPECIES_PONYTA - {0x88, 0x01}, // SPECIES_RAPIDASH - {0x66, 0x0b}, // SPECIES_SLOWPOKE - {0x86, 0x08}, // SPECIES_SLOWBRO - {0x43, 0x15}, // SPECIES_MAGNEMITE - {0x76, 0x08}, // SPECIES_MAGNETON - {0x66, 0x09}, // SPECIES_FARFETCHD - {0x57, 0x05}, // SPECIES_DODUO - {0x88, 0x00}, // SPECIES_DODRIO - {0x76, 0x0a}, // SPECIES_SEEL - {0x87, 0x07}, // SPECIES_DEWGONG - {0x65, 0x0c}, // SPECIES_GRIMER - {0x87, 0x04}, // SPECIES_MUK - {0x55, 0x10}, // SPECIES_SHELLDER - {0x87, 0x05}, // SPECIES_CLOYSTER - {0x77, 0x06}, // SPECIES_GASTLY - {0x77, 0x05}, // SPECIES_HAUNTER - {0x77, 0x05}, // SPECIES_GENGAR - {0x78, 0x02}, // SPECIES_ONIX - {0x77, 0x07}, // SPECIES_DROWZEE - {0x77, 0x04}, // SPECIES_HYPNO - {0x65, 0x0d}, // SPECIES_KRABBY - {0x88, 0x03}, // SPECIES_KINGLER - {0x44, 0x13}, // SPECIES_VOLTORB - {0x55, 0x0e}, // SPECIES_ELECTRODE - {0x87, 0x07}, // SPECIES_EXEGGCUTE - {0x88, 0x00}, // SPECIES_EXEGGUTOR - {0x55, 0x0f}, // SPECIES_CUBONE - {0x76, 0x0b}, // SPECIES_MAROWAK - {0x87, 0x04}, // SPECIES_HITMONLEE - {0x67, 0x04}, // SPECIES_HITMONCHAN - {0x86, 0x08}, // SPECIES_LICKITUNG - {0x66, 0x08}, // SPECIES_KOFFING - {0x88, 0x02}, // SPECIES_WEEZING - {0x76, 0x09}, // SPECIES_RHYHORN - {0x88, 0x02}, // SPECIES_RHYDON - {0x76, 0x09}, // SPECIES_CHANSEY - {0x67, 0x07}, // SPECIES_TANGELA - {0x88, 0x00}, // SPECIES_KANGASKHAN - {0x45, 0x0f}, // SPECIES_HORSEA - {0x67, 0x07}, // SPECIES_SEADRA - {0x66, 0x0a}, // SPECIES_GOLDEEN - {0x77, 0x04}, // SPECIES_SEAKING - {0x66, 0x0a}, // SPECIES_STARYU - {0x77, 0x06}, // SPECIES_STARMIE - {0x66, 0x08}, // SPECIES_MR_MIME - {0x88, 0x00}, // SPECIES_SCYTHER - {0x77, 0x04}, // SPECIES_JYNX - {0x78, 0x02}, // SPECIES_ELECTABUZZ - {0x77, 0x04}, // SPECIES_MAGMAR - {0x77, 0x04}, // SPECIES_PINSIR - {0x78, 0x00}, // SPECIES_TAUROS - {0x67, 0x06}, // SPECIES_MAGIKARP - {0x88, 0x08}, // SPECIES_GYARADOS - {0x85, 0x0d}, // SPECIES_LAPRAS - {0x54, 0x11}, // SPECIES_DITTO - {0x56, 0x09}, // SPECIES_EEVEE - {0x67, 0x06}, // SPECIES_VAPOREON - {0x76, 0x09}, // SPECIES_JOLTEON - {0x66, 0x0a}, // SPECIES_FLAREON - {0x55, 0x0d}, // SPECIES_PORYGON - {0x45, 0x0f}, // SPECIES_OMANYTE - {0x67, 0x07}, // SPECIES_OMASTAR - {0x54, 0x11}, // SPECIES_KABUTO - {0x88, 0x03}, // SPECIES_KABUTOPS - {0x88, 0x01}, // SPECIES_AERODACTYL - {0x87, 0x05}, // SPECIES_SNORLAX - {0x88, 0x03}, // SPECIES_ARTICUNO - {0x87, 0x04}, // SPECIES_ZAPDOS - {0x88, 0x00}, // SPECIES_MOLTRES - {0x75, 0x0e}, // SPECIES_DRATINI - {0x87, 0x06}, // SPECIES_DRAGONAIR - {0x88, 0x00}, // SPECIES_DRAGONITE - {0x88, 0x00}, // SPECIES_MEWTWO - {0x55, 0x0d}, // SPECIES_MEW - {0x75, 0x0d}, // SPECIES_CHIKORITA - {0x77, 0x04}, // SPECIES_BAYLEEF - {0x88, 0x00}, // SPECIES_MEGANIUM - {0x55, 0x0e}, // SPECIES_CYNDAQUIL - {0x76, 0x08}, // SPECIES_QUILAVA - {0x78, 0x00}, // SPECIES_TYPHLOSION - {0x55, 0x0f}, // SPECIES_TOTODILE - {0x67, 0x06}, // SPECIES_CROCONAW - {0x88, 0x00}, // SPECIES_FERALIGATR - {0x47, 0x04}, // SPECIES_SENTRET - {0x67, 0x07}, // SPECIES_FURRET - {0x55, 0x0d}, // SPECIES_HOOTHOOT - {0x58, 0x03}, // SPECIES_NOCTOWL - {0x56, 0x0c}, // SPECIES_LEDYBA - {0x67, 0x04}, // SPECIES_LEDIAN - {0x54, 0x13}, // SPECIES_SPINARAK - {0x87, 0x05}, // SPECIES_ARIADOS - {0x88, 0x00}, // SPECIES_CROBAT - {0x75, 0x10}, // SPECIES_CHINCHOU - {0x87, 0x0b}, // SPECIES_LANTURN - {0x45, 0x0c}, // SPECIES_PICHU - {0x44, 0x14}, // SPECIES_CLEFFA - {0x44, 0x12}, // SPECIES_IGGLYBUFF - {0x34, 0x14}, // SPECIES_TOGEPI - {0x46, 0x09}, // SPECIES_TOGETIC - {0x44, 0x14}, // SPECIES_NATU - {0x47, 0x07}, // SPECIES_XATU - {0x55, 0x10}, // SPECIES_MAREEP - {0x56, 0x0a}, // SPECIES_FLAAFFY - {0x77, 0x05}, // SPECIES_AMPHAROS - {0x45, 0x0e}, // SPECIES_BELLOSSOM - {0x65, 0x0e}, // SPECIES_MARILL - {0x76, 0x09}, // SPECIES_AZUMARILL - {0x67, 0x06}, // SPECIES_SUDOWOODO - {0x67, 0x06}, // SPECIES_POLITOED - {0x66, 0x0a}, // SPECIES_HOPPIP - {0x55, 0x0f}, // SPECIES_SKIPLOOM - {0x77, 0x07}, // SPECIES_JUMPLUFF - {0x58, 0x03}, // SPECIES_AIPOM - {0x44, 0x10}, // SPECIES_SUNKERN - {0x56, 0x08}, // SPECIES_SUNFLORA - {0x86, 0x0a}, // SPECIES_YANMA - {0x54, 0x10}, // SPECIES_WOOPER - {0x77, 0x07}, // SPECIES_QUAGSIRE - {0x66, 0x08}, // SPECIES_ESPEON - {0x67, 0x08}, // SPECIES_UMBREON - {0x66, 0x0b}, // SPECIES_MURKROW - {0x58, 0x01}, // SPECIES_SLOWKING - {0x55, 0x0c}, // SPECIES_MISDREAVUS - {0x35, 0x0f}, // SPECIES_UNOWN - {0x77, 0x06}, // SPECIES_WOBBUFFET - {0x88, 0x03}, // SPECIES_GIRAFARIG - {0x56, 0x0a}, // SPECIES_PINECO - {0x76, 0x09}, // SPECIES_FORRETRESS - {0x74, 0x11}, // SPECIES_DUNSPARCE - {0x78, 0x03}, // SPECIES_GLIGAR - {0x88, 0x00}, // SPECIES_STEELIX - {0x55, 0x0d}, // SPECIES_SNUBBULL - {0x57, 0x06}, // SPECIES_GRANBULL - {0x56, 0x0a}, // SPECIES_QWILFISH - {0x88, 0x00}, // SPECIES_SCIZOR - {0x66, 0x09}, // SPECIES_SHUCKLE - {0x88, 0x03}, // SPECIES_HERACROSS - {0x67, 0x05}, // SPECIES_SNEASEL - {0x45, 0x0d}, // SPECIES_TEDDIURSA - {0x78, 0x01}, // SPECIES_URSARING - {0x45, 0x0d}, // SPECIES_SLUGMA - {0x57, 0x0d}, // SPECIES_MAGCARGO - {0x43, 0x14}, // SPECIES_SWINUB - {0x66, 0x08}, // SPECIES_PILOSWINE - {0x65, 0x0c}, // SPECIES_CORSOLA - {0x55, 0x0e}, // SPECIES_REMORAID - {0x66, 0x0a}, // SPECIES_OCTILLERY - {0x56, 0x08}, // SPECIES_DELIBIRD - {0x88, 0x01}, // SPECIES_MANTINE - {0x88, 0x00}, // SPECIES_SKARMORY - {0x56, 0x0b}, // SPECIES_HOUNDOUR - {0x77, 0x05}, // SPECIES_HOUNDOOM - {0x78, 0x04}, // SPECIES_KINGDRA - {0x54, 0x10}, // SPECIES_PHANPY - {0x86, 0x08}, // SPECIES_DONPHAN - {0x55, 0x0f}, // SPECIES_PORYGON2 - {0x88, 0x00}, // SPECIES_STANTLER - {0x77, 0x06}, // SPECIES_SMEARGLE - {0x46, 0x09}, // SPECIES_TYROGUE - {0x67, 0x05}, // SPECIES_HITMONTOP - {0x35, 0x0f}, // SPECIES_SMOOCHUM - {0x76, 0x0a}, // SPECIES_ELEKID - {0x45, 0x0d}, // SPECIES_MAGBY - {0x77, 0x04}, // SPECIES_MILTANK - {0x77, 0x06}, // SPECIES_BLISSEY - {0x88, 0x00}, // SPECIES_RAIKOU - {0x88, 0x00}, // SPECIES_ENTEI - {0x88, 0x00}, // SPECIES_SUICUNE - {0x46, 0x09}, // SPECIES_LARVITAR - {0x56, 0x09}, // SPECIES_PUPITAR - {0x88, 0x00}, // SPECIES_TYRANITAR - {0x88, 0x00}, // SPECIES_LUGIA - {0x88, 0x00}, // SPECIES_HO_OH - {0x55, 0x0e}, // SPECIES_CELEBI - {0x87, 0x04}, // SPECIES_OLD_UNOWN_B - {0x87, 0x04}, // SPECIES_OLD_UNOWN_C - {0x87, 0x04}, // SPECIES_OLD_UNOWN_D - {0x87, 0x04}, // SPECIES_OLD_UNOWN_E - {0x87, 0x04}, // SPECIES_OLD_UNOWN_F - {0x87, 0x04}, // SPECIES_OLD_UNOWN_G - {0x87, 0x04}, // SPECIES_OLD_UNOWN_H - {0x87, 0x04}, // SPECIES_OLD_UNOWN_I - {0x87, 0x04}, // SPECIES_OLD_UNOWN_J - {0x87, 0x04}, // SPECIES_OLD_UNOWN_K - {0x87, 0x04}, // SPECIES_OLD_UNOWN_L - {0x87, 0x04}, // SPECIES_OLD_UNOWN_M - {0x87, 0x04}, // SPECIES_OLD_UNOWN_N - {0x87, 0x04}, // SPECIES_OLD_UNOWN_O - {0x87, 0x04}, // SPECIES_OLD_UNOWN_P - {0x87, 0x04}, // SPECIES_OLD_UNOWN_Q - {0x87, 0x04}, // SPECIES_OLD_UNOWN_R - {0x87, 0x04}, // SPECIES_OLD_UNOWN_S - {0x87, 0x04}, // SPECIES_OLD_UNOWN_T - {0x87, 0x04}, // SPECIES_OLD_UNOWN_U - {0x87, 0x04}, // SPECIES_OLD_UNOWN_V - {0x87, 0x04}, // SPECIES_OLD_UNOWN_W - {0x87, 0x04}, // SPECIES_OLD_UNOWN_X - {0x87, 0x04}, // SPECIES_OLD_UNOWN_Y - {0x87, 0x04}, // SPECIES_OLD_UNOWN_Z - {0x66, 0x08}, // SPECIES_TREECKO - {0x87, 0x04}, // SPECIES_GROVYLE - {0x88, 0x00}, // SPECIES_SCEPTILE - {0x56, 0x08}, // SPECIES_TORCHIC - {0x88, 0x01}, // SPECIES_COMBUSKEN - {0x88, 0x00}, // SPECIES_BLAZIKEN - {0x56, 0x0c}, // SPECIES_MUDKIP - {0x67, 0x06}, // SPECIES_MARSHTOMP - {0x88, 0x00}, // SPECIES_SWAMPERT - {0x55, 0x0c}, // SPECIES_POOCHYENA - {0x87, 0x04}, // SPECIES_MIGHTYENA - {0x85, 0x0f}, // SPECIES_ZIGZAGOON - {0x78, 0x03}, // SPECIES_LINOONE - {0x45, 0x0e}, // SPECIES_WURMPLE - {0x75, 0x11}, // SPECIES_SILCOON - {0x86, 0x09}, // SPECIES_BEAUTIFLY - {0x74, 0x10}, // SPECIES_CASCOON - {0x86, 0x0f}, // SPECIES_DUSTOX - {0x65, 0x0e}, // SPECIES_LOTAD - {0x66, 0x09}, // SPECIES_LOMBRE - {0x88, 0x00}, // SPECIES_LUDICOLO - {0x46, 0x10}, // SPECIES_SEEDOT - {0x56, 0x08}, // SPECIES_NUZLEAF - {0x88, 0x02}, // SPECIES_SHIFTRY - {0x74, 0x12}, // SPECIES_NINCADA - {0x86, 0x0a}, // SPECIES_NINJASK - {0x66, 0x0a}, // SPECIES_SHEDINJA - {0x64, 0x10}, // SPECIES_TAILLOW - {0x87, 0x06}, // SPECIES_SWELLOW - {0x54, 0x10}, // SPECIES_SHROOMISH - {0x77, 0x04}, // SPECIES_BRELOOM - {0x68, 0x08}, // SPECIES_SPINDA - {0x84, 0x18}, // SPECIES_WINGULL - {0x77, 0x04}, // SPECIES_PELIPPER - {0x65, 0x0f}, // SPECIES_SURSKIT - {0x88, 0x01}, // SPECIES_MASQUERAIN - {0x75, 0x0f}, // SPECIES_WAILMER - {0x87, 0x0a}, // SPECIES_WAILORD - {0x66, 0x0b}, // SPECIES_SKITTY - {0x66, 0x08}, // SPECIES_DELCATTY - {0x67, 0x07}, // SPECIES_KECLEON - {0x55, 0x10}, // SPECIES_BALTOY - {0x78, 0x06}, // SPECIES_CLAYDOL - {0x56, 0x0c}, // SPECIES_NOSEPASS - {0x88, 0x02}, // SPECIES_TORKOAL - {0x66, 0x09}, // SPECIES_SABLEYE - {0x46, 0x0b}, // SPECIES_BARBOACH - {0x76, 0x09}, // SPECIES_WHISCASH - {0x46, 0x18}, // SPECIES_LUVDISC - {0x66, 0x0c}, // SPECIES_CORPHISH - {0x88, 0x01}, // SPECIES_CRAWDAUNT - {0x46, 0x0d}, // SPECIES_FEEBAS - {0x88, 0x00}, // SPECIES_MILOTIC - {0x67, 0x06}, // SPECIES_CARVANHA - {0x78, 0x03}, // SPECIES_SHARPEDO - {0x54, 0x10}, // SPECIES_TRAPINCH - {0x86, 0x0c}, // SPECIES_VIBRAVA - {0x88, 0x01}, // SPECIES_FLYGON - {0x65, 0x0c}, // SPECIES_MAKUHITA - {0x88, 0x01}, // SPECIES_HARIYAMA - {0x64, 0x12}, // SPECIES_ELECTRIKE - {0x67, 0x04}, // SPECIES_MANECTRIC - {0x65, 0x0f}, // SPECIES_NUMEL - {0x87, 0x09}, // SPECIES_CAMERUPT - {0x65, 0x10}, // SPECIES_SPHEAL - {0x86, 0x0a}, // SPECIES_SEALEO - {0x88, 0x01}, // SPECIES_WALREIN - {0x74, 0x10}, // SPECIES_CACNEA - {0x88, 0x00}, // SPECIES_CACTURNE - {0x56, 0x0b}, // SPECIES_SNORUNT - {0x76, 0x0a}, // SPECIES_GLALIE - {0x66, 0x09}, // SPECIES_LUNATONE - {0x88, 0x01}, // SPECIES_SOLROCK - {0x55, 0x0f}, // SPECIES_AZURILL - {0x46, 0x09}, // SPECIES_SPOINK - {0x77, 0x05}, // SPECIES_GRUMPIG - {0x56, 0x0e}, // SPECIES_PLUSLE - {0x66, 0x0c}, // SPECIES_MINUN - {0x76, 0x08}, // SPECIES_MAWILE - {0x65, 0x0c}, // SPECIES_MEDITITE - {0x68, 0x01}, // SPECIES_MEDICHAM - {0x76, 0x11}, // SPECIES_SWABLU - {0x88, 0x02}, // SPECIES_ALTARIA - {0x55, 0x0c}, // SPECIES_WYNAUT - {0x66, 0x0a}, // SPECIES_DUSKULL - {0x77, 0x05}, // SPECIES_DUSCLOPS - {0x76, 0x08}, // SPECIES_ROSELIA - {0x74, 0x12}, // SPECIES_SLAKOTH - {0x78, 0x00}, // SPECIES_VIGOROTH - {0x86, 0x08}, // SPECIES_SLAKING - {0x55, 0x12}, // SPECIES_GULPIN - {0x66, 0x08}, // SPECIES_SWALOT - {0x88, 0x00}, // SPECIES_TROPIUS - {0x55, 0x0e}, // SPECIES_WHISMUR - {0x78, 0x03}, // SPECIES_LOUDRED - {0x88, 0x01}, // SPECIES_EXPLOUD - {0x55, 0x0e}, // SPECIES_CLAMPERL - {0x78, 0x03}, // SPECIES_HUNTAIL - {0x86, 0x0b}, // SPECIES_GOREBYSS - {0x68, 0x00}, // SPECIES_ABSOL - {0x56, 0x0e}, // SPECIES_SHUPPET - {0x55, 0x0c}, // SPECIES_BANETTE - {0x77, 0x08}, // SPECIES_SEVIPER - {0x87, 0x05}, // SPECIES_ZANGOOSE - {0x77, 0x0b}, // SPECIES_RELICANTH - {0x43, 0x14}, // SPECIES_ARON - {0x75, 0x0d}, // SPECIES_LAIRON - {0x88, 0x00}, // SPECIES_AGGRON - {0x34, 0x11}, // SPECIES_CASTFORM - {0x66, 0x08}, // SPECIES_VOLBEAT - {0x56, 0x08}, // SPECIES_ILLUMISE - {0x67, 0x07}, // SPECIES_LILEEP - {0x78, 0x00}, // SPECIES_CRADILY - {0x66, 0x08}, // SPECIES_ANORITH - {0x88, 0x00}, // SPECIES_ARMALDO - {0x35, 0x0f}, // SPECIES_RALTS - {0x47, 0x06}, // SPECIES_KIRLIA - {0x78, 0x01}, // SPECIES_GARDEVOIR - {0x56, 0x0b}, // SPECIES_BAGON - {0x66, 0x09}, // SPECIES_SHELGON - {0x87, 0x04}, // SPECIES_SALAMENCE - {0x55, 0x0f}, // SPECIES_BELDUM - {0x87, 0x07}, // SPECIES_METANG - {0x87, 0x06}, // SPECIES_METAGROSS - {0x78, 0x04}, // SPECIES_REGIROCK - {0x88, 0x02}, // SPECIES_REGICE - {0x88, 0x03}, // SPECIES_REGISTEEL - {0x87, 0x04}, // SPECIES_KYOGRE - {0x88, 0x01}, // SPECIES_GROUDON - {0x88, 0x00}, // SPECIES_RAYQUAZA - {0x88, 0x01}, // SPECIES_LATIAS - {0x88, 0x02}, // SPECIES_LATIOS - {0x66, 0x0d}, // SPECIES_JIRACHI - {0x88, 0x01}, // SPECIES_DEOXYS - {0x37, 0x06}, // SPECIES_CHIMECHO - {0x33, 0x14}, // SPECIES_EGG - {0x34, 0x10}, // SPECIES_UNOWN_B - {0x44, 0x10}, // SPECIES_UNOWN_C - {0x44, 0x10}, // SPECIES_UNOWN_D - {0x44, 0x11}, // SPECIES_UNOWN_E - {0x44, 0x11}, // SPECIES_UNOWN_F - {0x35, 0x0e}, // SPECIES_UNOWN_G - {0x44, 0x10}, // SPECIES_UNOWN_H - {0x34, 0x10}, // SPECIES_UNOWN_I - {0x34, 0x11}, // SPECIES_UNOWN_J - {0x44, 0x11}, // SPECIES_UNOWN_K - {0x34, 0x13}, // SPECIES_UNOWN_L - {0x44, 0x13}, // SPECIES_UNOWN_M - {0x43, 0x14}, // SPECIES_UNOWN_N - {0x44, 0x10}, // SPECIES_UNOWN_O - {0x34, 0x13}, // SPECIES_UNOWN_P - {0x43, 0x15}, // SPECIES_UNOWN_Q - {0x34, 0x13}, // SPECIES_UNOWN_R - {0x45, 0x0c}, // SPECIES_UNOWN_S - {0x34, 0x12}, // SPECIES_UNOWN_T - {0x44, 0x12}, // SPECIES_UNOWN_U - {0x44, 0x12}, // SPECIES_UNOWN_V - {0x44, 0x13}, // SPECIES_UNOWN_W - {0x33, 0x15}, // SPECIES_UNOWN_X - {0x34, 0x11}, // SPECIES_UNOWN_Y - {0x34, 0x10}, // SPECIES_UNOWN_Z - {0x35, 0x0f}, // SPECIES_UNOWN_EMARK - {0x35, 0x0d}, // SPECIES_UNOWN_QMARK + [SPECIES_NONE] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_BULBASAUR] = + { + .coords = 0x45, + .y_offset = 0x0e, + }, + [SPECIES_IVYSAUR] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_VENUSAUR] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_CHARMANDER] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_CHARMELEON] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_CHARIZARD] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_SQUIRTLE] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_WARTORTLE] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_BLASTOISE] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CATERPIE] = + { + .coords = 0x45, + .y_offset = 0x10, + }, + [SPECIES_METAPOD] = + { + .coords = 0x54, + .y_offset = 0x14, + }, + [SPECIES_BUTTERFREE] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_WEEDLE] = + { + .coords = 0x54, + .y_offset = 0x12, + }, + [SPECIES_KAKUNA] = + { + .coords = 0x45, + .y_offset = 0x0e, + }, + [SPECIES_BEEDRILL] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_PIDGEY] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_PIDGEOTTO] = + { + .coords = 0x67, + .y_offset = 0x0b, + }, + [SPECIES_PIDGEOT] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_RATTATA] = + { + .coords = 0x44, + .y_offset = 0x10, + }, + [SPECIES_RATICATE] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_SPEAROW] = + { + .coords = 0x45, + .y_offset = 0x0f, + }, + [SPECIES_FEAROW] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_EKANS] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_ARBOK] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_PIKACHU] = + { + .coords = 0x67, + .y_offset = 0x09, + }, + [SPECIES_RAICHU] = + { + .coords = 0x67, + .y_offset = 0x04, + }, + [SPECIES_SANDSHREW] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_SANDSLASH] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_NIDORAN_F] = + { + .coords = 0x45, + .y_offset = 0x0f, + }, + [SPECIES_NIDORINA] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_NIDOQUEEN] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_NIDORAN_M] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_NIDORINO] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_NIDOKING] = + { + .coords = 0x78, + .y_offset = 0x02, + }, + [SPECIES_CLEFAIRY] = + { + .coords = 0x55, + .y_offset = 0x10, + }, + [SPECIES_CLEFABLE] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_VULPIX] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_NINETALES] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_JIGGLYPUFF] = + { + .coords = 0x45, + .y_offset = 0x10, + }, + [SPECIES_WIGGLYTUFF] = + { + .coords = 0x67, + .y_offset = 0x08, + }, + [SPECIES_ZUBAT] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_GOLBAT] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_ODDISH] = + { + .coords = 0x45, + .y_offset = 0x0f, + }, + [SPECIES_GLOOM] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_VILEPLUME] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_PARAS] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_PARASECT] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_VENONAT] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_VENOMOTH] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_DIGLETT] = + { + .coords = 0x54, + .y_offset = 0x12, + }, + [SPECIES_DUGTRIO] = + { + .coords = 0x75, + .y_offset = 0x0d, + }, + [SPECIES_MEOWTH] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_PERSIAN] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_PSYDUCK] = + { + .coords = 0x56, + .y_offset = 0x09, + }, + [SPECIES_GOLDUCK] = + { + .coords = 0x78, + .y_offset = 0x02, + }, + [SPECIES_MANKEY] = + { + .coords = 0x65, + .y_offset = 0x0e, + }, + [SPECIES_PRIMEAPE] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_GROWLITHE] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_ARCANINE] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_POLIWAG] = + { + .coords = 0x74, + .y_offset = 0x13, + }, + [SPECIES_POLIWHIRL] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_POLIWRATH] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_ABRA] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_KADABRA] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_ALAKAZAM] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_MACHOP] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_MACHOKE] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_MACHAMP] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_BELLSPROUT] = + { + .coords = 0x65, + .y_offset = 0x0f, + }, + [SPECIES_WEEPINBELL] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_VICTREEBEL] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_TENTACOOL] = + { + .coords = 0x46, + .y_offset = 0x09, + }, + [SPECIES_TENTACRUEL] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_GEODUDE] = + { + .coords = 0x54, + .y_offset = 0x12, + }, + [SPECIES_GRAVELER] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_GOLEM] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_PONYTA] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_RAPIDASH] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_SLOWPOKE] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_SLOWBRO] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_MAGNEMITE] = + { + .coords = 0x43, + .y_offset = 0x15, + }, + [SPECIES_MAGNETON] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_FARFETCHD] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_DODUO] = + { + .coords = 0x57, + .y_offset = 0x05, + }, + [SPECIES_DODRIO] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SEEL] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_DEWGONG] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_GRIMER] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_MUK] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_SHELLDER] = + { + .coords = 0x55, + .y_offset = 0x10, + }, + [SPECIES_CLOYSTER] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_GASTLY] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_HAUNTER] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_GENGAR] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_ONIX] = + { + .coords = 0x78, + .y_offset = 0x02, + }, + [SPECIES_DROWZEE] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_HYPNO] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_KRABBY] = + { + .coords = 0x65, + .y_offset = 0x0d, + }, + [SPECIES_KINGLER] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_VOLTORB] = + { + .coords = 0x44, + .y_offset = 0x13, + }, + [SPECIES_ELECTRODE] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_EXEGGCUTE] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_EXEGGUTOR] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CUBONE] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_MAROWAK] = + { + .coords = 0x76, + .y_offset = 0x0b, + }, + [SPECIES_HITMONLEE] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_HITMONCHAN] = + { + .coords = 0x67, + .y_offset = 0x04, + }, + [SPECIES_LICKITUNG] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_KOFFING] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_WEEZING] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_RHYHORN] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_RHYDON] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_CHANSEY] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_TANGELA] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_KANGASKHAN] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_HORSEA] = + { + .coords = 0x45, + .y_offset = 0x0f, + }, + [SPECIES_SEADRA] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_GOLDEEN] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_SEAKING] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_STARYU] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_STARMIE] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_MR_MIME] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_SCYTHER] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_JYNX] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_ELECTABUZZ] = + { + .coords = 0x78, + .y_offset = 0x02, + }, + [SPECIES_MAGMAR] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_PINSIR] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_TAUROS] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_MAGIKARP] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_GYARADOS] = + { + .coords = 0x88, + .y_offset = 0x08, + }, + [SPECIES_LAPRAS] = + { + .coords = 0x85, + .y_offset = 0x0d, + }, + [SPECIES_DITTO] = + { + .coords = 0x54, + .y_offset = 0x11, + }, + [SPECIES_EEVEE] = + { + .coords = 0x56, + .y_offset = 0x09, + }, + [SPECIES_VAPOREON] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_JOLTEON] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_FLAREON] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_PORYGON] = + { + .coords = 0x55, + .y_offset = 0x0d, + }, + [SPECIES_OMANYTE] = + { + .coords = 0x45, + .y_offset = 0x0f, + }, + [SPECIES_OMASTAR] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_KABUTO] = + { + .coords = 0x54, + .y_offset = 0x11, + }, + [SPECIES_KABUTOPS] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_AERODACTYL] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_SNORLAX] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_ARTICUNO] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_ZAPDOS] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_MOLTRES] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_DRATINI] = + { + .coords = 0x75, + .y_offset = 0x0e, + }, + [SPECIES_DRAGONAIR] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_DRAGONITE] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_MEWTWO] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_MEW] = + { + .coords = 0x55, + .y_offset = 0x0d, + }, + [SPECIES_CHIKORITA] = + { + .coords = 0x75, + .y_offset = 0x0d, + }, + [SPECIES_BAYLEEF] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_MEGANIUM] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CYNDAQUIL] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_QUILAVA] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_TYPHLOSION] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_TOTODILE] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_CROCONAW] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_FERALIGATR] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SENTRET] = + { + .coords = 0x47, + .y_offset = 0x04, + }, + [SPECIES_FURRET] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_HOOTHOOT] = + { + .coords = 0x55, + .y_offset = 0x0d, + }, + [SPECIES_NOCTOWL] = + { + .coords = 0x58, + .y_offset = 0x03, + }, + [SPECIES_LEDYBA] = + { + .coords = 0x56, + .y_offset = 0x0c, + }, + [SPECIES_LEDIAN] = + { + .coords = 0x67, + .y_offset = 0x04, + }, + [SPECIES_SPINARAK] = + { + .coords = 0x54, + .y_offset = 0x13, + }, + [SPECIES_ARIADOS] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_CROBAT] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CHINCHOU] = + { + .coords = 0x75, + .y_offset = 0x10, + }, + [SPECIES_LANTURN] = + { + .coords = 0x87, + .y_offset = 0x0b, + }, + [SPECIES_PICHU] = + { + .coords = 0x45, + .y_offset = 0x0c, + }, + [SPECIES_CLEFFA] = + { + .coords = 0x44, + .y_offset = 0x14, + }, + [SPECIES_IGGLYBUFF] = + { + .coords = 0x44, + .y_offset = 0x12, + }, + [SPECIES_TOGEPI] = + { + .coords = 0x34, + .y_offset = 0x14, + }, + [SPECIES_TOGETIC] = + { + .coords = 0x46, + .y_offset = 0x09, + }, + [SPECIES_NATU] = + { + .coords = 0x44, + .y_offset = 0x14, + }, + [SPECIES_XATU] = + { + .coords = 0x47, + .y_offset = 0x07, + }, + [SPECIES_MAREEP] = + { + .coords = 0x55, + .y_offset = 0x10, + }, + [SPECIES_FLAAFFY] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_AMPHAROS] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_BELLOSSOM] = + { + .coords = 0x45, + .y_offset = 0x0e, + }, + [SPECIES_MARILL] = + { + .coords = 0x65, + .y_offset = 0x0e, + }, + [SPECIES_AZUMARILL] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_SUDOWOODO] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_POLITOED] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_HOPPIP] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_SKIPLOOM] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_JUMPLUFF] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_AIPOM] = + { + .coords = 0x58, + .y_offset = 0x03, + }, + [SPECIES_SUNKERN] = + { + .coords = 0x44, + .y_offset = 0x10, + }, + [SPECIES_SUNFLORA] = + { + .coords = 0x56, + .y_offset = 0x08, + }, + [SPECIES_YANMA] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_WOOPER] = + { + .coords = 0x54, + .y_offset = 0x10, + }, + [SPECIES_QUAGSIRE] = + { + .coords = 0x77, + .y_offset = 0x07, + }, + [SPECIES_ESPEON] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_UMBREON] = + { + .coords = 0x67, + .y_offset = 0x08, + }, + [SPECIES_MURKROW] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_SLOWKING] = + { + .coords = 0x58, + .y_offset = 0x01, + }, + [SPECIES_MISDREAVUS] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_UNOWN] = + { + .coords = 0x35, + .y_offset = 0x0f, + }, + [SPECIES_WOBBUFFET] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_GIRAFARIG] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_PINECO] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_FORRETRESS] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_DUNSPARCE] = + { + .coords = 0x74, + .y_offset = 0x11, + }, + [SPECIES_GLIGAR] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_STEELIX] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SNUBBULL] = + { + .coords = 0x55, + .y_offset = 0x0d, + }, + [SPECIES_GRANBULL] = + { + .coords = 0x57, + .y_offset = 0x06, + }, + [SPECIES_QWILFISH] = + { + .coords = 0x56, + .y_offset = 0x0a, + }, + [SPECIES_SCIZOR] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SHUCKLE] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_HERACROSS] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_SNEASEL] = + { + .coords = 0x67, + .y_offset = 0x05, + }, + [SPECIES_TEDDIURSA] = + { + .coords = 0x45, + .y_offset = 0x0d, + }, + [SPECIES_URSARING] = + { + .coords = 0x78, + .y_offset = 0x01, + }, + [SPECIES_SLUGMA] = + { + .coords = 0x45, + .y_offset = 0x0d, + }, + [SPECIES_MAGCARGO] = + { + .coords = 0x57, + .y_offset = 0x0d, + }, + [SPECIES_SWINUB] = + { + .coords = 0x43, + .y_offset = 0x14, + }, + [SPECIES_PILOSWINE] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_CORSOLA] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_REMORAID] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_OCTILLERY] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_DELIBIRD] = + { + .coords = 0x56, + .y_offset = 0x08, + }, + [SPECIES_MANTINE] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_SKARMORY] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_HOUNDOUR] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_HOUNDOOM] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_KINGDRA] = + { + .coords = 0x78, + .y_offset = 0x04, + }, + [SPECIES_PHANPY] = + { + .coords = 0x54, + .y_offset = 0x10, + }, + [SPECIES_DONPHAN] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_PORYGON2] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_STANTLER] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SMEARGLE] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_TYROGUE] = + { + .coords = 0x46, + .y_offset = 0x09, + }, + [SPECIES_HITMONTOP] = + { + .coords = 0x67, + .y_offset = 0x05, + }, + [SPECIES_SMOOCHUM] = + { + .coords = 0x35, + .y_offset = 0x0f, + }, + [SPECIES_ELEKID] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_MAGBY] = + { + .coords = 0x45, + .y_offset = 0x0d, + }, + [SPECIES_MILTANK] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_BLISSEY] = + { + .coords = 0x77, + .y_offset = 0x06, + }, + [SPECIES_RAIKOU] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_ENTEI] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SUICUNE] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_LARVITAR] = + { + .coords = 0x46, + .y_offset = 0x09, + }, + [SPECIES_PUPITAR] = + { + .coords = 0x56, + .y_offset = 0x09, + }, + [SPECIES_TYRANITAR] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_LUGIA] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_HO_OH] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CELEBI] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_OLD_UNOWN_B] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_C] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_D] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_E] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_F] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_G] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_H] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_I] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_J] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_K] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_L] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_M] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_N] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_O] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_P] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_Q] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_R] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_S] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_T] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_U] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_V] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_W] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_X] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_Y] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_OLD_UNOWN_Z] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_TREECKO] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_GROVYLE] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_SCEPTILE] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_TORCHIC] = + { + .coords = 0x56, + .y_offset = 0x08, + }, + [SPECIES_COMBUSKEN] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_BLAZIKEN] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_MUDKIP] = + { + .coords = 0x56, + .y_offset = 0x0c, + }, + [SPECIES_MARSHTOMP] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_SWAMPERT] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_POOCHYENA] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_MIGHTYENA] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_ZIGZAGOON] = + { + .coords = 0x85, + .y_offset = 0x0f, + }, + [SPECIES_LINOONE] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_WURMPLE] = + { + .coords = 0x45, + .y_offset = 0x0e, + }, + [SPECIES_SILCOON] = + { + .coords = 0x75, + .y_offset = 0x11, + }, + [SPECIES_BEAUTIFLY] = + { + .coords = 0x86, + .y_offset = 0x09, + }, + [SPECIES_CASCOON] = + { + .coords = 0x74, + .y_offset = 0x10, + }, + [SPECIES_DUSTOX] = + { + .coords = 0x86, + .y_offset = 0x0f, + }, + [SPECIES_LOTAD] = + { + .coords = 0x65, + .y_offset = 0x0e, + }, + [SPECIES_LOMBRE] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_LUDICOLO] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SEEDOT] = + { + .coords = 0x46, + .y_offset = 0x10, + }, + [SPECIES_NUZLEAF] = + { + .coords = 0x56, + .y_offset = 0x08, + }, + [SPECIES_SHIFTRY] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_NINCADA] = + { + .coords = 0x74, + .y_offset = 0x12, + }, + [SPECIES_NINJASK] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_SHEDINJA] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_TAILLOW] = + { + .coords = 0x64, + .y_offset = 0x10, + }, + [SPECIES_SWELLOW] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_SHROOMISH] = + { + .coords = 0x54, + .y_offset = 0x10, + }, + [SPECIES_BRELOOM] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_SPINDA] = + { + .coords = 0x68, + .y_offset = 0x08, + }, + [SPECIES_WINGULL] = + { + .coords = 0x84, + .y_offset = 0x18, + }, + [SPECIES_PELIPPER] = + { + .coords = 0x77, + .y_offset = 0x04, + }, + [SPECIES_SURSKIT] = + { + .coords = 0x65, + .y_offset = 0x0f, + }, + [SPECIES_MASQUERAIN] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_WAILMER] = + { + .coords = 0x75, + .y_offset = 0x0f, + }, + [SPECIES_WAILORD] = + { + .coords = 0x87, + .y_offset = 0x0a, + }, + [SPECIES_SKITTY] = + { + .coords = 0x66, + .y_offset = 0x0b, + }, + [SPECIES_DELCATTY] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_KECLEON] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_BALTOY] = + { + .coords = 0x55, + .y_offset = 0x10, + }, + [SPECIES_CLAYDOL] = + { + .coords = 0x78, + .y_offset = 0x06, + }, + [SPECIES_NOSEPASS] = + { + .coords = 0x56, + .y_offset = 0x0c, + }, + [SPECIES_TORKOAL] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_SABLEYE] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_BARBOACH] = + { + .coords = 0x46, + .y_offset = 0x0b, + }, + [SPECIES_WHISCASH] = + { + .coords = 0x76, + .y_offset = 0x09, + }, + [SPECIES_LUVDISC] = + { + .coords = 0x46, + .y_offset = 0x18, + }, + [SPECIES_CORPHISH] = + { + .coords = 0x66, + .y_offset = 0x0c, + }, + [SPECIES_CRAWDAUNT] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_FEEBAS] = + { + .coords = 0x46, + .y_offset = 0x0d, + }, + [SPECIES_MILOTIC] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CARVANHA] = + { + .coords = 0x67, + .y_offset = 0x06, + }, + [SPECIES_SHARPEDO] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_TRAPINCH] = + { + .coords = 0x54, + .y_offset = 0x10, + }, + [SPECIES_VIBRAVA] = + { + .coords = 0x86, + .y_offset = 0x0c, + }, + [SPECIES_FLYGON] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_MAKUHITA] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_HARIYAMA] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_ELECTRIKE] = + { + .coords = 0x64, + .y_offset = 0x12, + }, + [SPECIES_MANECTRIC] = + { + .coords = 0x67, + .y_offset = 0x04, + }, + [SPECIES_NUMEL] = + { + .coords = 0x65, + .y_offset = 0x0f, + }, + [SPECIES_CAMERUPT] = + { + .coords = 0x87, + .y_offset = 0x09, + }, + [SPECIES_SPHEAL] = + { + .coords = 0x65, + .y_offset = 0x10, + }, + [SPECIES_SEALEO] = + { + .coords = 0x86, + .y_offset = 0x0a, + }, + [SPECIES_WALREIN] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_CACNEA] = + { + .coords = 0x74, + .y_offset = 0x10, + }, + [SPECIES_CACTURNE] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_SNORUNT] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_GLALIE] = + { + .coords = 0x76, + .y_offset = 0x0a, + }, + [SPECIES_LUNATONE] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_SOLROCK] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_AZURILL] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_SPOINK] = + { + .coords = 0x46, + .y_offset = 0x09, + }, + [SPECIES_GRUMPIG] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_PLUSLE] = + { + .coords = 0x56, + .y_offset = 0x0e, + }, + [SPECIES_MINUN] = + { + .coords = 0x66, + .y_offset = 0x0c, + }, + [SPECIES_MAWILE] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_MEDITITE] = + { + .coords = 0x65, + .y_offset = 0x0c, + }, + [SPECIES_MEDICHAM] = + { + .coords = 0x68, + .y_offset = 0x01, + }, + [SPECIES_SWABLU] = + { + .coords = 0x76, + .y_offset = 0x11, + }, + [SPECIES_ALTARIA] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_WYNAUT] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_DUSKULL] = + { + .coords = 0x66, + .y_offset = 0x0a, + }, + [SPECIES_DUSCLOPS] = + { + .coords = 0x77, + .y_offset = 0x05, + }, + [SPECIES_ROSELIA] = + { + .coords = 0x76, + .y_offset = 0x08, + }, + [SPECIES_SLAKOTH] = + { + .coords = 0x74, + .y_offset = 0x12, + }, + [SPECIES_VIGOROTH] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_SLAKING] = + { + .coords = 0x86, + .y_offset = 0x08, + }, + [SPECIES_GULPIN] = + { + .coords = 0x55, + .y_offset = 0x12, + }, + [SPECIES_SWALOT] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_TROPIUS] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_WHISMUR] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_LOUDRED] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_EXPLOUD] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_CLAMPERL] = + { + .coords = 0x55, + .y_offset = 0x0e, + }, + [SPECIES_HUNTAIL] = + { + .coords = 0x78, + .y_offset = 0x03, + }, + [SPECIES_GOREBYSS] = + { + .coords = 0x86, + .y_offset = 0x0b, + }, + [SPECIES_ABSOL] = + { + .coords = 0x68, + .y_offset = 0x00, + }, + [SPECIES_SHUPPET] = + { + .coords = 0x56, + .y_offset = 0x0e, + }, + [SPECIES_BANETTE] = + { + .coords = 0x55, + .y_offset = 0x0c, + }, + [SPECIES_SEVIPER] = + { + .coords = 0x77, + .y_offset = 0x08, + }, + [SPECIES_ZANGOOSE] = + { + .coords = 0x87, + .y_offset = 0x05, + }, + [SPECIES_RELICANTH] = + { + .coords = 0x77, + .y_offset = 0x0b, + }, + [SPECIES_ARON] = + { + .coords = 0x43, + .y_offset = 0x14, + }, + [SPECIES_LAIRON] = + { + .coords = 0x75, + .y_offset = 0x0d, + }, + [SPECIES_AGGRON] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_CASTFORM] = + { + .coords = 0x34, + .y_offset = 0x11, + }, + [SPECIES_VOLBEAT] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_ILLUMISE] = + { + .coords = 0x56, + .y_offset = 0x08, + }, + [SPECIES_LILEEP] = + { + .coords = 0x67, + .y_offset = 0x07, + }, + [SPECIES_CRADILY] = + { + .coords = 0x78, + .y_offset = 0x00, + }, + [SPECIES_ANORITH] = + { + .coords = 0x66, + .y_offset = 0x08, + }, + [SPECIES_ARMALDO] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_RALTS] = + { + .coords = 0x35, + .y_offset = 0x0f, + }, + [SPECIES_KIRLIA] = + { + .coords = 0x47, + .y_offset = 0x06, + }, + [SPECIES_GARDEVOIR] = + { + .coords = 0x78, + .y_offset = 0x01, + }, + [SPECIES_BAGON] = + { + .coords = 0x56, + .y_offset = 0x0b, + }, + [SPECIES_SHELGON] = + { + .coords = 0x66, + .y_offset = 0x09, + }, + [SPECIES_SALAMENCE] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_BELDUM] = + { + .coords = 0x55, + .y_offset = 0x0f, + }, + [SPECIES_METANG] = + { + .coords = 0x87, + .y_offset = 0x07, + }, + [SPECIES_METAGROSS] = + { + .coords = 0x87, + .y_offset = 0x06, + }, + [SPECIES_REGIROCK] = + { + .coords = 0x78, + .y_offset = 0x04, + }, + [SPECIES_REGICE] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_REGISTEEL] = + { + .coords = 0x88, + .y_offset = 0x03, + }, + [SPECIES_KYOGRE] = + { + .coords = 0x87, + .y_offset = 0x04, + }, + [SPECIES_GROUDON] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_RAYQUAZA] = + { + .coords = 0x88, + .y_offset = 0x00, + }, + [SPECIES_LATIAS] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_LATIOS] = + { + .coords = 0x88, + .y_offset = 0x02, + }, + [SPECIES_JIRACHI] = + { + .coords = 0x66, + .y_offset = 0x0d, + }, + [SPECIES_DEOXYS] = + { + .coords = 0x88, + .y_offset = 0x01, + }, + [SPECIES_CHIMECHO] = + { + .coords = 0x37, + .y_offset = 0x06, + }, + [SPECIES_EGG] = + { + .coords = 0x33, + .y_offset = 0x14, + }, + [SPECIES_UNOWN_B] = + { + .coords = 0x34, + .y_offset = 0x10, + }, + [SPECIES_UNOWN_C] = + { + .coords = 0x44, + .y_offset = 0x10, + }, + [SPECIES_UNOWN_D] = + { + .coords = 0x44, + .y_offset = 0x10, + }, + [SPECIES_UNOWN_E] = + { + .coords = 0x44, + .y_offset = 0x11, + }, + [SPECIES_UNOWN_F] = + { + .coords = 0x44, + .y_offset = 0x11, + }, + [SPECIES_UNOWN_G] = + { + .coords = 0x35, + .y_offset = 0x0e, + }, + [SPECIES_UNOWN_H] = + { + .coords = 0x44, + .y_offset = 0x10, + }, + [SPECIES_UNOWN_I] = + { + .coords = 0x34, + .y_offset = 0x10, + }, + [SPECIES_UNOWN_J] = + { + .coords = 0x34, + .y_offset = 0x11, + }, + [SPECIES_UNOWN_K] = + { + .coords = 0x44, + .y_offset = 0x11, + }, + [SPECIES_UNOWN_L] = + { + .coords = 0x34, + .y_offset = 0x13, + }, + [SPECIES_UNOWN_M] = + { + .coords = 0x44, + .y_offset = 0x13, + }, + [SPECIES_UNOWN_N] = + { + .coords = 0x43, + .y_offset = 0x14, + }, + [SPECIES_UNOWN_O] = + { + .coords = 0x44, + .y_offset = 0x10, + }, + [SPECIES_UNOWN_P] = + { + .coords = 0x34, + .y_offset = 0x13, + }, + [SPECIES_UNOWN_Q] = + { + .coords = 0x43, + .y_offset = 0x15, + }, + [SPECIES_UNOWN_R] = + { + .coords = 0x34, + .y_offset = 0x13, + }, + [SPECIES_UNOWN_S] = + { + .coords = 0x45, + .y_offset = 0x0c, + }, + [SPECIES_UNOWN_T] = + { + .coords = 0x34, + .y_offset = 0x12, + }, + [SPECIES_UNOWN_U] = + { + .coords = 0x44, + .y_offset = 0x12, + }, + [SPECIES_UNOWN_V] = + { + .coords = 0x44, + .y_offset = 0x12, + }, + [SPECIES_UNOWN_W] = + { + .coords = 0x44, + .y_offset = 0x13, + }, + [SPECIES_UNOWN_X] = + { + .coords = 0x33, + .y_offset = 0x15, + }, + [SPECIES_UNOWN_Y] = + { + .coords = 0x34, + .y_offset = 0x11, + }, + [SPECIES_UNOWN_Z] = + { + .coords = 0x34, + .y_offset = 0x10, + }, + [SPECIES_UNOWN_EMARK] = + { + .coords = 0x35, + .y_offset = 0x0f, + }, + [SPECIES_UNOWN_QMARK] = + { + .coords = 0x35, + .y_offset = 0x0d, + }, }; diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 5aa22f4f8..92e6bab2e 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -1,446 +1,443 @@ -const struct CompressedSpriteSheet gMonFrontPicTable[] = -{ //.data .size .tag - gMonFrontPic_CircledQuestionMark, 0x800, 0, - gMonFrontPic_Bulbasaur, 0x800, 1, - gMonFrontPic_Ivysaur, 0x800, 2, - gMonFrontPic_Venusaur, 0x800, 3, - gMonFrontPic_Charmander, 0x800, 4, - gMonFrontPic_Charmeleon, 0x800, 5, - gMonFrontPic_Charizard, 0x800, 6, - gMonFrontPic_Squirtle, 0x800, 7, - gMonFrontPic_Wartortle, 0x800, 8, - gMonFrontPic_Blastoise, 0x800, 9, - gMonFrontPic_Caterpie, 0x800, 10, - gMonFrontPic_Metapod, 0x800, 11, - gMonFrontPic_Butterfree, 0x800, 12, - gMonFrontPic_Weedle, 0x800, 13, - gMonFrontPic_Kakuna, 0x800, 14, - gMonFrontPic_Beedrill, 0x800, 15, - gMonFrontPic_Pidgey, 0x800, 16, - gMonFrontPic_Pidgeotto, 0x800, 17, - gMonFrontPic_Pidgeot, 0x800, 18, - gMonFrontPic_Rattata, 0x800, 19, - gMonFrontPic_Raticate, 0x800, 20, - gMonFrontPic_Spearow, 0x800, 21, - gMonFrontPic_Fearow, 0x800, 22, - gMonFrontPic_Ekans, 0x800, 23, - gMonFrontPic_Arbok, 0x800, 24, - gMonFrontPic_Pikachu, 0x800, 25, - gMonFrontPic_Raichu, 0x800, 26, - gMonFrontPic_Sandshrew, 0x800, 27, - gMonFrontPic_Sandslash, 0x800, 28, - gMonFrontPic_NidoranF, 0x800, 29, - gMonFrontPic_Nidorina, 0x800, 30, - gMonFrontPic_Nidoqueen, 0x800, 31, - gMonFrontPic_NidoranM, 0x800, 32, - gMonFrontPic_Nidorino, 0x800, 33, - gMonFrontPic_Nidoking, 0x800, 34, - gMonFrontPic_Clefairy, 0x800, 35, - gMonFrontPic_Clefable, 0x800, 36, - gMonFrontPic_Vulpix, 0x800, 37, - gMonFrontPic_Ninetales, 0x800, 38, - gMonFrontPic_Jigglypuff, 0x800, 39, - gMonFrontPic_Wigglytuff, 0x800, 40, - gMonFrontPic_Zubat, 0x800, 41, - gMonFrontPic_Golbat, 0x800, 42, - gMonFrontPic_Oddish, 0x800, 43, - gMonFrontPic_Gloom, 0x800, 44, - gMonFrontPic_Vileplume, 0x800, 45, - gMonFrontPic_Paras, 0x800, 46, - gMonFrontPic_Parasect, 0x800, 47, - gMonFrontPic_Venonat, 0x800, 48, - gMonFrontPic_Venomoth, 0x800, 49, - gMonFrontPic_Diglett, 0x800, 50, - gMonFrontPic_Dugtrio, 0x800, 51, - gMonFrontPic_Meowth, 0x800, 52, - gMonFrontPic_Persian, 0x800, 53, - gMonFrontPic_Psyduck, 0x800, 54, - gMonFrontPic_Golduck, 0x800, 55, - gMonFrontPic_Mankey, 0x800, 56, - gMonFrontPic_Primeape, 0x800, 57, - gMonFrontPic_Growlithe, 0x800, 58, - gMonFrontPic_Arcanine, 0x800, 59, - gMonFrontPic_Poliwag, 0x800, 60, - gMonFrontPic_Poliwhirl, 0x800, 61, - gMonFrontPic_Poliwrath, 0x800, 62, - gMonFrontPic_Abra, 0x800, 63, - gMonFrontPic_Kadabra, 0x800, 64, - gMonFrontPic_Alakazam, 0x800, 65, - gMonFrontPic_Machop, 0x800, 66, - gMonFrontPic_Machoke, 0x800, 67, - gMonFrontPic_Machamp, 0x800, 68, - gMonFrontPic_Bellsprout, 0x800, 69, - gMonFrontPic_Weepinbell, 0x800, 70, - gMonFrontPic_Victreebel, 0x800, 71, - gMonFrontPic_Tentacool, 0x800, 72, - gMonFrontPic_Tentacruel, 0x800, 73, - gMonFrontPic_Geodude, 0x800, 74, - gMonFrontPic_Graveler, 0x800, 75, - gMonFrontPic_Golem, 0x800, 76, - gMonFrontPic_Ponyta, 0x800, 77, - gMonFrontPic_Rapidash, 0x800, 78, - gMonFrontPic_Slowpoke, 0x800, 79, - gMonFrontPic_Slowbro, 0x800, 80, - gMonFrontPic_Magnemite, 0x800, 81, - gMonFrontPic_Magneton, 0x800, 82, - gMonFrontPic_Farfetchd, 0x800, 83, - gMonFrontPic_Doduo, 0x800, 84, - gMonFrontPic_Dodrio, 0x800, 85, - gMonFrontPic_Seel, 0x800, 86, - gMonFrontPic_Dewgong, 0x800, 87, - gMonFrontPic_Grimer, 0x800, 88, - gMonFrontPic_Muk, 0x800, 89, - gMonFrontPic_Shellder, 0x800, 90, - gMonFrontPic_Cloyster, 0x800, 91, - gMonFrontPic_Gastly, 0x800, 92, - gMonFrontPic_Haunter, 0x800, 93, - gMonFrontPic_Gengar, 0x800, 94, - gMonFrontPic_Onix, 0x800, 95, - gMonFrontPic_Drowzee, 0x800, 96, - gMonFrontPic_Hypno, 0x800, 97, - gMonFrontPic_Krabby, 0x800, 98, - gMonFrontPic_Kingler, 0x800, 99, - gMonFrontPic_Voltorb, 0x800, 100, - gMonFrontPic_Electrode, 0x800, 101, - gMonFrontPic_Exeggcute, 0x800, 102, - gMonFrontPic_Exeggutor, 0x800, 103, - gMonFrontPic_Cubone, 0x800, 104, - gMonFrontPic_Marowak, 0x800, 105, - gMonFrontPic_Hitmonlee, 0x800, 106, - gMonFrontPic_Hitmonchan, 0x800, 107, - gMonFrontPic_Lickitung, 0x800, 108, - gMonFrontPic_Koffing, 0x800, 109, - gMonFrontPic_Weezing, 0x800, 110, - gMonFrontPic_Rhyhorn, 0x800, 111, - gMonFrontPic_Rhydon, 0x800, 112, - gMonFrontPic_Chansey, 0x800, 113, - gMonFrontPic_Tangela, 0x800, 114, - gMonFrontPic_Kangaskhan, 0x800, 115, - gMonFrontPic_Horsea, 0x800, 116, - gMonFrontPic_Seadra, 0x800, 117, - gMonFrontPic_Goldeen, 0x800, 118, - gMonFrontPic_Seaking, 0x800, 119, - gMonFrontPic_Staryu, 0x800, 120, - gMonFrontPic_Starmie, 0x800, 121, - gMonFrontPic_Mrmime, 0x800, 122, - gMonFrontPic_Scyther, 0x800, 123, - gMonFrontPic_Jynx, 0x800, 124, - gMonFrontPic_Electabuzz, 0x800, 125, - gMonFrontPic_Magmar, 0x800, 126, - gMonFrontPic_Pinsir, 0x800, 127, - gMonFrontPic_Tauros, 0x800, 128, - gMonFrontPic_Magikarp, 0x800, 129, - gMonFrontPic_Gyarados, 0x800, 130, - gMonFrontPic_Lapras, 0x800, 131, - gMonFrontPic_Ditto, 0x800, 132, - gMonFrontPic_Eevee, 0x800, 133, - gMonFrontPic_Vaporeon, 0x800, 134, - gMonFrontPic_Jolteon, 0x800, 135, - gMonFrontPic_Flareon, 0x800, 136, - gMonFrontPic_Porygon, 0x800, 137, - gMonFrontPic_Omanyte, 0x800, 138, - gMonFrontPic_Omastar, 0x800, 139, - gMonFrontPic_Kabuto, 0x800, 140, - gMonFrontPic_Kabutops, 0x800, 141, - gMonFrontPic_Aerodactyl, 0x800, 142, - gMonFrontPic_Snorlax, 0x800, 143, - gMonFrontPic_Articuno, 0x800, 144, - gMonFrontPic_Zapdos, 0x800, 145, - gMonFrontPic_Moltres, 0x800, 146, - gMonFrontPic_Dratini, 0x800, 147, - gMonFrontPic_Dragonair, 0x800, 148, - gMonFrontPic_Dragonite, 0x800, 149, - gMonFrontPic_Mewtwo, 0x800, 150, - gMonFrontPic_Mew, 0x800, 151, -// Gen II - gMonFrontPic_Chikorita, 0x800, 152, - gMonFrontPic_Bayleef, 0x800, 153, - gMonFrontPic_Meganium, 0x800, 154, - gMonFrontPic_Cyndaquil, 0x800, 155, - gMonFrontPic_Quilava, 0x800, 156, - gMonFrontPic_Typhlosion, 0x800, 157, - gMonFrontPic_Totodile, 0x800, 158, - gMonFrontPic_Croconaw, 0x800, 159, - gMonFrontPic_Feraligatr, 0x800, 160, - gMonFrontPic_Sentret, 0x800, 161, - gMonFrontPic_Furret, 0x800, 162, - gMonFrontPic_Hoothoot, 0x800, 163, - gMonFrontPic_Noctowl, 0x800, 164, - gMonFrontPic_Ledyba, 0x800, 165, - gMonFrontPic_Ledian, 0x800, 166, - gMonFrontPic_Spinarak, 0x800, 167, - gMonFrontPic_Ariados, 0x800, 168, - gMonFrontPic_Crobat, 0x800, 169, - gMonFrontPic_Chinchou, 0x800, 170, - gMonFrontPic_Lanturn, 0x800, 171, - gMonFrontPic_Pichu, 0x800, 172, - gMonFrontPic_Cleffa, 0x800, 173, - gMonFrontPic_Igglybuff, 0x800, 174, - gMonFrontPic_Togepi, 0x800, 175, - gMonFrontPic_Togetic, 0x800, 176, - gMonFrontPic_Natu, 0x800, 177, - gMonFrontPic_Xatu, 0x800, 178, - gMonFrontPic_Mareep, 0x800, 179, - gMonFrontPic_Flaaffy, 0x800, 180, - gMonFrontPic_Ampharos, 0x800, 181, - gMonFrontPic_Bellossom, 0x800, 182, - gMonFrontPic_Marill, 0x800, 183, - gMonFrontPic_Azumarill, 0x800, 184, - gMonFrontPic_Sudowoodo, 0x800, 185, - gMonFrontPic_Politoed, 0x800, 186, - gMonFrontPic_Hoppip, 0x800, 187, - gMonFrontPic_Skiploom, 0x800, 188, - gMonFrontPic_Jumpluff, 0x800, 189, - gMonFrontPic_Aipom, 0x800, 190, - gMonFrontPic_Sunkern, 0x800, 191, - gMonFrontPic_Sunflora, 0x800, 192, - gMonFrontPic_Yanma, 0x800, 193, - gMonFrontPic_Wooper, 0x800, 194, - gMonFrontPic_Quagsire, 0x800, 195, - gMonFrontPic_Espeon, 0x800, 196, - gMonFrontPic_Umbreon, 0x800, 197, - gMonFrontPic_Murkrow, 0x800, 198, - gMonFrontPic_Slowking, 0x800, 199, - gMonFrontPic_Misdreavus, 0x800, 200, - gMonFrontPic_UnownA, 0x800, 201, - gMonFrontPic_Wobbuffet, 0x800, 202, - gMonFrontPic_Girafarig, 0x800, 203, - gMonFrontPic_Pineco, 0x800, 204, - gMonFrontPic_Forretress, 0x800, 205, - gMonFrontPic_Dunsparce, 0x800, 206, - gMonFrontPic_Gligar, 0x800, 207, - gMonFrontPic_Steelix, 0x800, 208, - gMonFrontPic_Snubbull, 0x800, 209, - gMonFrontPic_Granbull, 0x800, 210, - gMonFrontPic_Qwilfish, 0x800, 211, - gMonFrontPic_Scizor, 0x800, 212, - gMonFrontPic_Shuckle, 0x800, 213, - gMonFrontPic_Heracross, 0x800, 214, - gMonFrontPic_Sneasel, 0x800, 215, - gMonFrontPic_Teddiursa, 0x800, 216, - gMonFrontPic_Ursaring, 0x800, 217, - gMonFrontPic_Slugma, 0x800, 218, - gMonFrontPic_Magcargo, 0x800, 219, - gMonFrontPic_Swinub, 0x800, 220, - gMonFrontPic_Piloswine, 0x800, 221, - gMonFrontPic_Corsola, 0x800, 222, - gMonFrontPic_Remoraid, 0x800, 223, - gMonFrontPic_Octillery, 0x800, 224, - gMonFrontPic_Delibird, 0x800, 225, - gMonFrontPic_Mantine, 0x800, 226, - gMonFrontPic_Skarmory, 0x800, 227, - gMonFrontPic_Houndour, 0x800, 228, - gMonFrontPic_Houndoom, 0x800, 229, - gMonFrontPic_Kingdra, 0x800, 230, - gMonFrontPic_Phanpy, 0x800, 231, - gMonFrontPic_Donphan, 0x800, 232, - gMonFrontPic_Porygon2, 0x800, 233, - gMonFrontPic_Stantler, 0x800, 234, - gMonFrontPic_Smeargle, 0x800, 235, - gMonFrontPic_Tyrogue, 0x800, 236, - gMonFrontPic_Hitmontop, 0x800, 237, - gMonFrontPic_Smoochum, 0x800, 238, - gMonFrontPic_Elekid, 0x800, 239, - gMonFrontPic_Magby, 0x800, 240, - gMonFrontPic_Miltank, 0x800, 241, - gMonFrontPic_Blissey, 0x800, 242, - gMonFrontPic_Raikou, 0x800, 243, - gMonFrontPic_Entei, 0x800, 244, - gMonFrontPic_Suicune, 0x800, 245, - gMonFrontPic_Larvitar, 0x800, 246, - gMonFrontPic_Pupitar, 0x800, 247, - gMonFrontPic_Tyranitar, 0x800, 248, - gMonFrontPic_Lugia, 0x800, 249, - gMonFrontPic_HoOh, 0x800, 250, - gMonFrontPic_Celebi, 0x800, 251, -// Empty slots - gMonFrontPic_DoubleQuestionMark, 0x800, 252, - gMonFrontPic_DoubleQuestionMark, 0x800, 253, - gMonFrontPic_DoubleQuestionMark, 0x800, 254, - gMonFrontPic_DoubleQuestionMark, 0x800, 255, - gMonFrontPic_DoubleQuestionMark, 0x800, 256, - gMonFrontPic_DoubleQuestionMark, 0x800, 257, - gMonFrontPic_DoubleQuestionMark, 0x800, 258, - gMonFrontPic_DoubleQuestionMark, 0x800, 259, - gMonFrontPic_DoubleQuestionMark, 0x800, 260, - gMonFrontPic_DoubleQuestionMark, 0x800, 261, - gMonFrontPic_DoubleQuestionMark, 0x800, 262, - gMonFrontPic_DoubleQuestionMark, 0x800, 263, - gMonFrontPic_DoubleQuestionMark, 0x800, 264, - gMonFrontPic_DoubleQuestionMark, 0x800, 265, - gMonFrontPic_DoubleQuestionMark, 0x800, 266, - gMonFrontPic_DoubleQuestionMark, 0x800, 267, - gMonFrontPic_DoubleQuestionMark, 0x800, 268, - gMonFrontPic_DoubleQuestionMark, 0x800, 269, - gMonFrontPic_DoubleQuestionMark, 0x800, 270, - gMonFrontPic_DoubleQuestionMark, 0x800, 271, - gMonFrontPic_DoubleQuestionMark, 0x800, 272, - gMonFrontPic_DoubleQuestionMark, 0x800, 273, - gMonFrontPic_DoubleQuestionMark, 0x800, 274, - gMonFrontPic_DoubleQuestionMark, 0x800, 275, - gMonFrontPic_DoubleQuestionMark, 0x800, 276, -// Gen III - gMonFrontPic_Treecko, 0x800, 277, - gMonFrontPic_Grovyle, 0x800, 278, - gMonFrontPic_Sceptile, 0x800, 279, - gMonFrontPic_Torchic, 0x800, 280, - gMonFrontPic_Combusken, 0x800, 281, - gMonFrontPic_Blaziken, 0x800, 282, - gMonFrontPic_Mudkip, 0x800, 283, - gMonFrontPic_Marshtomp, 0x800, 284, - gMonFrontPic_Swampert, 0x800, 285, - gMonFrontPic_Poochyena, 0x800, 286, - gMonFrontPic_Mightyena, 0x800, 287, - gMonFrontPic_Zigzagoon, 0x800, 288, - gMonFrontPic_Linoone, 0x800, 289, - gMonFrontPic_Wurmple, 0x800, 290, - gMonFrontPic_Silcoon, 0x800, 291, - gMonFrontPic_Beautifly, 0x800, 292, - gMonFrontPic_Cascoon, 0x800, 293, - gMonFrontPic_Dustox, 0x800, 294, - gMonFrontPic_Lotad, 0x800, 295, - gMonFrontPic_Lombre, 0x800, 296, - gMonFrontPic_Ludicolo, 0x800, 297, - gMonFrontPic_Seedot, 0x800, 298, - gMonFrontPic_Nuzleaf, 0x800, 299, - gMonFrontPic_Shiftry, 0x800, 300, - gMonFrontPic_Nincada, 0x800, 301, - gMonFrontPic_Ninjask, 0x800, 302, - gMonFrontPic_Shedinja, 0x800, 303, - gMonFrontPic_Taillow, 0x800, 304, - gMonFrontPic_Swellow, 0x800, 305, - gMonFrontPic_Shroomish, 0x800, 306, - gMonFrontPic_Breloom, 0x800, 307, - gMonFrontPic_Spinda, 0x800, 308, - gMonFrontPic_Wingull, 0x800, 309, - gMonFrontPic_Pelipper, 0x800, 310, - gMonFrontPic_Surskit, 0x800, 311, - gMonFrontPic_Masquerain, 0x800, 312, - gMonFrontPic_Wailmer, 0x800, 313, - gMonFrontPic_Wailord, 0x800, 314, - gMonFrontPic_Skitty, 0x800, 315, - gMonFrontPic_Delcatty, 0x800, 316, - gMonFrontPic_Kecleon, 0x800, 317, - gMonFrontPic_Baltoy, 0x800, 318, - gMonFrontPic_Claydol, 0x800, 319, - gMonFrontPic_Nosepass, 0x800, 320, - gMonFrontPic_Torkoal, 0x800, 321, - gMonFrontPic_Sableye, 0x800, 322, - gMonFrontPic_Barboach, 0x800, 323, - gMonFrontPic_Whiscash, 0x800, 324, - gMonFrontPic_Luvdisc, 0x800, 325, - gMonFrontPic_Corphish, 0x800, 326, - gMonFrontPic_Crawdaunt, 0x800, 327, - gMonFrontPic_Feebas, 0x800, 328, - gMonFrontPic_Milotic, 0x800, 329, - gMonFrontPic_Carvanha, 0x800, 330, - gMonFrontPic_Sharpedo, 0x800, 331, - gMonFrontPic_Trapinch, 0x800, 332, - gMonFrontPic_Vibrava, 0x800, 333, - gMonFrontPic_Flygon, 0x800, 334, - gMonFrontPic_Makuhita, 0x800, 335, - gMonFrontPic_Hariyama, 0x800, 336, - gMonFrontPic_Electrike, 0x800, 337, - gMonFrontPic_Manectric, 0x800, 338, - gMonFrontPic_Numel, 0x800, 339, - gMonFrontPic_Camerupt, 0x800, 340, - gMonFrontPic_Spheal, 0x800, 341, - gMonFrontPic_Sealeo, 0x800, 342, - gMonFrontPic_Walrein, 0x800, 343, - gMonFrontPic_Cacnea, 0x800, 344, - gMonFrontPic_Cacturne, 0x800, 345, - gMonFrontPic_Snorunt, 0x800, 346, - gMonFrontPic_Glalie, 0x800, 347, - gMonFrontPic_Lunatone, 0x800, 348, - gMonFrontPic_Solrock, 0x800, 349, - gMonFrontPic_Azurill, 0x800, 350, - gMonFrontPic_Spoink, 0x800, 351, - gMonFrontPic_Grumpig, 0x800, 352, - gMonFrontPic_Plusle, 0x800, 353, - gMonFrontPic_Minun, 0x800, 354, - gMonFrontPic_Mawile, 0x800, 355, - gMonFrontPic_Meditite, 0x800, 356, - gMonFrontPic_Medicham, 0x800, 357, - gMonFrontPic_Swablu, 0x800, 358, - gMonFrontPic_Altaria, 0x800, 359, - gMonFrontPic_Wynaut, 0x800, 360, - gMonFrontPic_Duskull, 0x800, 361, - gMonFrontPic_Dusclops, 0x800, 362, - gMonFrontPic_Roselia, 0x800, 363, - gMonFrontPic_Slakoth, 0x800, 364, - gMonFrontPic_Vigoroth, 0x800, 365, - gMonFrontPic_Slaking, 0x800, 366, - gMonFrontPic_Gulpin, 0x800, 367, - gMonFrontPic_Swalot, 0x800, 368, - gMonFrontPic_Tropius, 0x800, 369, - gMonFrontPic_Whismur, 0x800, 370, - gMonFrontPic_Loudred, 0x800, 371, - gMonFrontPic_Exploud, 0x800, 372, - gMonFrontPic_Clamperl, 0x800, 373, - gMonFrontPic_Huntail, 0x800, 374, - gMonFrontPic_Gorebyss, 0x800, 375, - gMonFrontPic_Absol, 0x800, 376, - gMonFrontPic_Shuppet, 0x800, 377, - gMonFrontPic_Banette, 0x800, 378, - gMonFrontPic_Seviper, 0x800, 379, - gMonFrontPic_Zangoose, 0x800, 380, - gMonFrontPic_Relicanth, 0x800, 381, - gMonFrontPic_Aron, 0x800, 382, - gMonFrontPic_Lairon, 0x800, 383, - gMonFrontPic_Aggron, 0x800, 384, - gMonFrontPic_Castform, 0x800, 385, - gMonFrontPic_Volbeat, 0x800, 386, - gMonFrontPic_Illumise, 0x800, 387, - gMonFrontPic_Lileep, 0x800, 388, - gMonFrontPic_Cradily, 0x800, 389, - gMonFrontPic_Anorith, 0x800, 390, - gMonFrontPic_Armaldo, 0x800, 391, - gMonFrontPic_Ralts, 0x800, 392, - gMonFrontPic_Kirlia, 0x800, 393, - gMonFrontPic_Gardevoir, 0x800, 394, - gMonFrontPic_Bagon, 0x800, 395, - gMonFrontPic_Shelgon, 0x800, 396, - gMonFrontPic_Salamence, 0x800, 397, - gMonFrontPic_Beldum, 0x800, 398, - gMonFrontPic_Metang, 0x800, 399, - gMonFrontPic_Metagross, 0x800, 400, - gMonFrontPic_Regirock, 0x800, 401, - gMonFrontPic_Regice, 0x800, 402, - gMonFrontPic_Registeel, 0x800, 403, - gMonFrontPic_Kyogre, 0x800, 404, - gMonFrontPic_Groudon, 0x800, 405, - gMonFrontPic_Rayquaza, 0x800, 406, - gMonFrontPic_Latias, 0x800, 407, - gMonFrontPic_Latios, 0x800, 408, - gMonFrontPic_Jirachi, 0x800, 409, - gMonFrontPic_Deoxys, 0x800, 410, - gMonFrontPic_Chimecho, 0x800, 411, - gMonFrontPic_Egg, 0x800, 412, - gMonFrontPic_UnownB, 0x800, 413, - gMonFrontPic_UnownC, 0x800, 414, - gMonFrontPic_UnownD, 0x800, 415, - gMonFrontPic_UnownE, 0x800, 416, - gMonFrontPic_UnownF, 0x800, 417, - gMonFrontPic_UnownG, 0x800, 418, - gMonFrontPic_UnownH, 0x800, 419, - gMonFrontPic_UnownI, 0x800, 420, - gMonFrontPic_UnownJ, 0x800, 421, - gMonFrontPic_UnownK, 0x800, 422, - gMonFrontPic_UnownL, 0x800, 423, - gMonFrontPic_UnownM, 0x800, 424, - gMonFrontPic_UnownN, 0x800, 425, - gMonFrontPic_UnownO, 0x800, 426, - gMonFrontPic_UnownP, 0x800, 427, - gMonFrontPic_UnownQ, 0x800, 428, - gMonFrontPic_UnownR, 0x800, 429, - gMonFrontPic_UnownS, 0x800, 430, - gMonFrontPic_UnownT, 0x800, 431, - gMonFrontPic_UnownU, 0x800, 432, - gMonFrontPic_UnownV, 0x800, 433, - gMonFrontPic_UnownW, 0x800, 434, - gMonFrontPic_UnownX, 0x800, 435, - gMonFrontPic_UnownY, 0x800, 436, - gMonFrontPic_UnownZ, 0x800, 437, - gMonFrontPic_UnownExclamationMark, 0x800, 438, - gMonFrontPic_UnownQuestionMark, 0x800, 439, +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}, }; diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index 99412daa5..3b60d8567 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[] = { - gMonPalette_CircledQuestionMark, 0, - gMonPalette_Bulbasaur, 1, - gMonPalette_Ivysaur, 2, - gMonPalette_Venusaur, 3, - gMonPalette_Charmander, 4, - gMonPalette_Charmeleon, 5, - gMonPalette_Charizard, 6, - gMonPalette_Squirtle, 7, - gMonPalette_Wartortle, 8, - gMonPalette_Blastoise, 9, - gMonPalette_Caterpie, 10, - gMonPalette_Metapod, 11, - gMonPalette_Butterfree, 12, - gMonPalette_Weedle, 13, - gMonPalette_Kakuna, 14, - gMonPalette_Beedrill, 15, - gMonPalette_Pidgey, 16, - gMonPalette_Pidgeotto, 17, - gMonPalette_Pidgeot, 18, - gMonPalette_Rattata, 19, - gMonPalette_Raticate, 20, - gMonPalette_Spearow, 21, - gMonPalette_Fearow, 22, - gMonPalette_Ekans, 23, - gMonPalette_Arbok, 24, - gMonPalette_Pikachu, 25, - gMonPalette_Raichu, 26, - gMonPalette_Sandshrew, 27, - gMonPalette_Sandslash, 28, - gMonPalette_NidoranF, 29, - gMonPalette_Nidorina, 30, - gMonPalette_Nidoqueen, 31, - gMonPalette_NidoranM, 32, - gMonPalette_Nidorino, 33, - gMonPalette_Nidoking, 34, - gMonPalette_Clefairy, 35, - gMonPalette_Clefable, 36, - gMonPalette_Vulpix, 37, - gMonPalette_Ninetales, 38, - gMonPalette_Jigglypuff, 39, - gMonPalette_Wigglytuff, 40, - gMonPalette_Zubat, 41, - gMonPalette_Golbat, 42, - gMonPalette_Oddish, 43, - gMonPalette_Gloom, 44, - gMonPalette_Vileplume, 45, - gMonPalette_Paras, 46, - gMonPalette_Parasect, 47, - gMonPalette_Venonat, 48, - gMonPalette_Venomoth, 49, - gMonPalette_Diglett, 50, - gMonPalette_Dugtrio, 51, - gMonPalette_Meowth, 52, - gMonPalette_Persian, 53, - gMonPalette_Psyduck, 54, - gMonPalette_Golduck, 55, - gMonPalette_Mankey, 56, - gMonPalette_Primeape, 57, - gMonPalette_Growlithe, 58, - gMonPalette_Arcanine, 59, - gMonPalette_Poliwag, 60, - gMonPalette_Poliwhirl, 61, - gMonPalette_Poliwrath, 62, - gMonPalette_Abra, 63, - gMonPalette_Kadabra, 64, - gMonPalette_Alakazam, 65, - gMonPalette_Machop, 66, - gMonPalette_Machoke, 67, - gMonPalette_Machamp, 68, - gMonPalette_Bellsprout, 69, - gMonPalette_Weepinbell, 70, - gMonPalette_Victreebel, 71, - gMonPalette_Tentacool, 72, - gMonPalette_Tentacruel, 73, - gMonPalette_Geodude, 74, - gMonPalette_Graveler, 75, - gMonPalette_Golem, 76, - gMonPalette_Ponyta, 77, - gMonPalette_Rapidash, 78, - gMonPalette_Slowpoke, 79, - gMonPalette_Slowbro, 80, - gMonPalette_Magnemite, 81, - gMonPalette_Magneton, 82, - gMonPalette_Farfetchd, 83, - gMonPalette_Doduo, 84, - gMonPalette_Dodrio, 85, - gMonPalette_Seel, 86, - gMonPalette_Dewgong, 87, - gMonPalette_Grimer, 88, - gMonPalette_Muk, 89, - gMonPalette_Shellder, 90, - gMonPalette_Cloyster, 91, - gMonPalette_Gastly, 92, - gMonPalette_Haunter, 93, - gMonPalette_Gengar, 94, - gMonPalette_Onix, 95, - gMonPalette_Drowzee, 96, - gMonPalette_Hypno, 97, - gMonPalette_Krabby, 98, - gMonPalette_Kingler, 99, - gMonPalette_Voltorb, 100, - gMonPalette_Electrode, 101, - gMonPalette_Exeggcute, 102, - gMonPalette_Exeggutor, 103, - gMonPalette_Cubone, 104, - gMonPalette_Marowak, 105, - gMonPalette_Hitmonlee, 106, - gMonPalette_Hitmonchan, 107, - gMonPalette_Lickitung, 108, - gMonPalette_Koffing, 109, - gMonPalette_Weezing, 110, - gMonPalette_Rhyhorn, 111, - gMonPalette_Rhydon, 112, - gMonPalette_Chansey, 113, - gMonPalette_Tangela, 114, - gMonPalette_Kangaskhan, 115, - gMonPalette_Horsea, 116, - gMonPalette_Seadra, 117, - gMonPalette_Goldeen, 118, - gMonPalette_Seaking, 119, - gMonPalette_Staryu, 120, - gMonPalette_Starmie, 121, - gMonPalette_Mrmime, 122, - gMonPalette_Scyther, 123, - gMonPalette_Jynx, 124, - gMonPalette_Electabuzz, 125, - gMonPalette_Magmar, 126, - gMonPalette_Pinsir, 127, - gMonPalette_Tauros, 128, - gMonPalette_Magikarp, 129, - gMonPalette_Gyarados, 130, - gMonPalette_Lapras, 131, - gMonPalette_Ditto, 132, - gMonPalette_Eevee, 133, - gMonPalette_Vaporeon, 134, - gMonPalette_Jolteon, 135, - gMonPalette_Flareon, 136, - gMonPalette_Porygon, 137, - gMonPalette_Omanyte, 138, - gMonPalette_Omastar, 139, - gMonPalette_Kabuto, 140, - gMonPalette_Kabutops, 141, - gMonPalette_Aerodactyl, 142, - gMonPalette_Snorlax, 143, - gMonPalette_Articuno, 144, - gMonPalette_Zapdos, 145, - gMonPalette_Moltres, 146, - gMonPalette_Dratini, 147, - gMonPalette_Dragonair, 148, - gMonPalette_Dragonite, 149, - gMonPalette_Mewtwo, 150, - gMonPalette_Mew, 151, - gMonPalette_Chikorita, 152, - gMonPalette_Bayleef, 153, - gMonPalette_Meganium, 154, - gMonPalette_Cyndaquil, 155, - gMonPalette_Quilava, 156, - gMonPalette_Typhlosion, 157, - gMonPalette_Totodile, 158, - gMonPalette_Croconaw, 159, - gMonPalette_Feraligatr, 160, - gMonPalette_Sentret, 161, - gMonPalette_Furret, 162, - gMonPalette_Hoothoot, 163, - gMonPalette_Noctowl, 164, - gMonPalette_Ledyba, 165, - gMonPalette_Ledian, 166, - gMonPalette_Spinarak, 167, - gMonPalette_Ariados, 168, - gMonPalette_Crobat, 169, - gMonPalette_Chinchou, 170, - gMonPalette_Lanturn, 171, - gMonPalette_Pichu, 172, - gMonPalette_Cleffa, 173, - gMonPalette_Igglybuff, 174, - gMonPalette_Togepi, 175, - gMonPalette_Togetic, 176, - gMonPalette_Natu, 177, - gMonPalette_Xatu, 178, - gMonPalette_Mareep, 179, - gMonPalette_Flaaffy, 180, - gMonPalette_Ampharos, 181, - gMonPalette_Bellossom, 182, - gMonPalette_Marill, 183, - gMonPalette_Azumarill, 184, - gMonPalette_Sudowoodo, 185, - gMonPalette_Politoed, 186, - gMonPalette_Hoppip, 187, - gMonPalette_Skiploom, 188, - gMonPalette_Jumpluff, 189, - gMonPalette_Aipom, 190, - gMonPalette_Sunkern, 191, - gMonPalette_Sunflora, 192, - gMonPalette_Yanma, 193, - gMonPalette_Wooper, 194, - gMonPalette_Quagsire, 195, - gMonPalette_Espeon, 196, - gMonPalette_Umbreon, 197, - gMonPalette_Murkrow, 198, - gMonPalette_Slowking, 199, - gMonPalette_Misdreavus, 200, - gMonPalette_Unown, 201, - gMonPalette_Wobbuffet, 202, - gMonPalette_Girafarig, 203, - gMonPalette_Pineco, 204, - gMonPalette_Forretress, 205, - gMonPalette_Dunsparce, 206, - gMonPalette_Gligar, 207, - gMonPalette_Steelix, 208, - gMonPalette_Snubbull, 209, - gMonPalette_Granbull, 210, - gMonPalette_Qwilfish, 211, - gMonPalette_Scizor, 212, - gMonPalette_Shuckle, 213, - gMonPalette_Heracross, 214, - gMonPalette_Sneasel, 215, - gMonPalette_Teddiursa, 216, - gMonPalette_Ursaring, 217, - gMonPalette_Slugma, 218, - gMonPalette_Magcargo, 219, - gMonPalette_Swinub, 220, - gMonPalette_Piloswine, 221, - gMonPalette_Corsola, 222, - gMonPalette_Remoraid, 223, - gMonPalette_Octillery, 224, - gMonPalette_Delibird, 225, - gMonPalette_Mantine, 226, - gMonPalette_Skarmory, 227, - gMonPalette_Houndour, 228, - gMonPalette_Houndoom, 229, - gMonPalette_Kingdra, 230, - gMonPalette_Phanpy, 231, - gMonPalette_Donphan, 232, - gMonPalette_Porygon2, 233, - gMonPalette_Stantler, 234, - gMonPalette_Smeargle, 235, - gMonPalette_Tyrogue, 236, - gMonPalette_Hitmontop, 237, - gMonPalette_Smoochum, 238, - gMonPalette_Elekid, 239, - gMonPalette_Magby, 240, - gMonPalette_Miltank, 241, - gMonPalette_Blissey, 242, - gMonPalette_Raikou, 243, - gMonPalette_Entei, 244, - gMonPalette_Suicune, 245, - gMonPalette_Larvitar, 246, - gMonPalette_Pupitar, 247, - gMonPalette_Tyranitar, 248, - gMonPalette_Lugia, 249, - gMonPalette_HoOh, 250, - gMonPalette_Celebi, 251, - gMonPalette_DoubleQuestionMark, 252, - gMonPalette_DoubleQuestionMark, 253, - gMonPalette_DoubleQuestionMark, 254, - gMonPalette_DoubleQuestionMark, 255, - gMonPalette_DoubleQuestionMark, 256, - gMonPalette_DoubleQuestionMark, 257, - gMonPalette_DoubleQuestionMark, 258, - gMonPalette_DoubleQuestionMark, 259, - gMonPalette_DoubleQuestionMark, 260, - gMonPalette_DoubleQuestionMark, 261, - gMonPalette_DoubleQuestionMark, 262, - gMonPalette_DoubleQuestionMark, 263, - gMonPalette_DoubleQuestionMark, 264, - gMonPalette_DoubleQuestionMark, 265, - gMonPalette_DoubleQuestionMark, 266, - gMonPalette_DoubleQuestionMark, 267, - gMonPalette_DoubleQuestionMark, 268, - gMonPalette_DoubleQuestionMark, 269, - gMonPalette_DoubleQuestionMark, 270, - gMonPalette_DoubleQuestionMark, 271, - gMonPalette_DoubleQuestionMark, 272, - gMonPalette_DoubleQuestionMark, 273, - gMonPalette_DoubleQuestionMark, 274, - gMonPalette_DoubleQuestionMark, 275, - gMonPalette_DoubleQuestionMark, 276, - gMonPalette_Treecko, 277, - gMonPalette_Grovyle, 278, - gMonPalette_Sceptile, 279, - gMonPalette_Torchic, 280, - gMonPalette_Combusken, 281, - gMonPalette_Blaziken, 282, - gMonPalette_Mudkip, 283, - gMonPalette_Marshtomp, 284, - gMonPalette_Swampert, 285, - gMonPalette_Poochyena, 286, - gMonPalette_Mightyena, 287, - gMonPalette_Zigzagoon, 288, - gMonPalette_Linoone, 289, - gMonPalette_Wurmple, 290, - gMonPalette_Silcoon, 291, - gMonPalette_Beautifly, 292, - gMonPalette_Cascoon, 293, - gMonPalette_Dustox, 294, - gMonPalette_Lotad, 295, - gMonPalette_Lombre, 296, - gMonPalette_Ludicolo, 297, - gMonPalette_Seedot, 298, - gMonPalette_Nuzleaf, 299, - gMonPalette_Shiftry, 300, - gMonPalette_Nincada, 301, - gMonPalette_Ninjask, 302, - gMonPalette_Shedinja, 303, - gMonPalette_Taillow, 304, - gMonPalette_Swellow, 305, - gMonPalette_Shroomish, 306, - gMonPalette_Breloom, 307, - gMonPalette_Spinda, 308, - gMonPalette_Wingull, 309, - gMonPalette_Pelipper, 310, - gMonPalette_Surskit, 311, - gMonPalette_Masquerain, 312, - gMonPalette_Wailmer, 313, - gMonPalette_Wailord, 314, - gMonPalette_Skitty, 315, - gMonPalette_Delcatty, 316, - gMonPalette_Kecleon, 317, - gMonPalette_Baltoy, 318, - gMonPalette_Claydol, 319, - gMonPalette_Nosepass, 320, - gMonPalette_Torkoal, 321, - gMonPalette_Sableye, 322, - gMonPalette_Barboach, 323, - gMonPalette_Whiscash, 324, - gMonPalette_Luvdisc, 325, - gMonPalette_Corphish, 326, - gMonPalette_Crawdaunt, 327, - gMonPalette_Feebas, 328, - gMonPalette_Milotic, 329, - gMonPalette_Carvanha, 330, - gMonPalette_Sharpedo, 331, - gMonPalette_Trapinch, 332, - gMonPalette_Vibrava, 333, - gMonPalette_Flygon, 334, - gMonPalette_Makuhita, 335, - gMonPalette_Hariyama, 336, - gMonPalette_Electrike, 337, - gMonPalette_Manectric, 338, - gMonPalette_Numel, 339, - gMonPalette_Camerupt, 340, - gMonPalette_Spheal, 341, - gMonPalette_Sealeo, 342, - gMonPalette_Walrein, 343, - gMonPalette_Cacnea, 344, - gMonPalette_Cacturne, 345, - gMonPalette_Snorunt, 346, - gMonPalette_Glalie, 347, - gMonPalette_Lunatone, 348, - gMonPalette_Solrock, 349, - gMonPalette_Azurill, 350, - gMonPalette_Spoink, 351, - gMonPalette_Grumpig, 352, - gMonPalette_Plusle, 353, - gMonPalette_Minun, 354, - gMonPalette_Mawile, 355, - gMonPalette_Meditite, 356, - gMonPalette_Medicham, 357, - gMonPalette_Swablu, 358, - gMonPalette_Altaria, 359, - gMonPalette_Wynaut, 360, - gMonPalette_Duskull, 361, - gMonPalette_Dusclops, 362, - gMonPalette_Roselia, 363, - gMonPalette_Slakoth, 364, - gMonPalette_Vigoroth, 365, - gMonPalette_Slaking, 366, - gMonPalette_Gulpin, 367, - gMonPalette_Swalot, 368, - gMonPalette_Tropius, 369, - gMonPalette_Whismur, 370, - gMonPalette_Loudred, 371, - gMonPalette_Exploud, 372, - gMonPalette_Clamperl, 373, - gMonPalette_Huntail, 374, - gMonPalette_Gorebyss, 375, - gMonPalette_Absol, 376, - gMonPalette_Shuppet, 377, - gMonPalette_Banette, 378, - gMonPalette_Seviper, 379, - gMonPalette_Zangoose, 380, - gMonPalette_Relicanth, 381, - gMonPalette_Aron, 382, - gMonPalette_Lairon, 383, - gMonPalette_Aggron, 384, - gMonPalette_Castform, 385, - gMonPalette_Volbeat, 386, - gMonPalette_Illumise, 387, - gMonPalette_Lileep, 388, - gMonPalette_Cradily, 389, - gMonPalette_Anorith, 390, - gMonPalette_Armaldo, 391, - gMonPalette_Ralts, 392, - gMonPalette_Kirlia, 393, - gMonPalette_Gardevoir, 394, - gMonPalette_Bagon, 395, - gMonPalette_Shelgon, 396, - gMonPalette_Salamence, 397, - gMonPalette_Beldum, 398, - gMonPalette_Metang, 399, - gMonPalette_Metagross, 400, - gMonPalette_Regirock, 401, - gMonPalette_Regice, 402, - gMonPalette_Registeel, 403, - gMonPalette_Kyogre, 404, - gMonPalette_Groudon, 405, - gMonPalette_Rayquaza, 406, - gMonPalette_Latias, 407, - gMonPalette_Latios, 408, - gMonPalette_Jirachi, 409, - gMonPalette_Deoxys, 410, - gMonPalette_Chimecho, 411, - gMonPalette_Egg, 412, - gMonPalette_Unown, 413, - gMonPalette_Unown, 414, - gMonPalette_Unown, 415, - gMonPalette_Unown, 416, - gMonPalette_Unown, 417, - gMonPalette_Unown, 418, - gMonPalette_Unown, 419, - gMonPalette_Unown, 420, - gMonPalette_Unown, 421, - gMonPalette_Unown, 422, - gMonPalette_Unown, 423, - gMonPalette_Unown, 424, - gMonPalette_Unown, 425, - gMonPalette_Unown, 426, - gMonPalette_Unown, 427, - gMonPalette_Unown, 428, - gMonPalette_Unown, 429, - gMonPalette_Unown, 430, - gMonPalette_Unown, 431, - gMonPalette_Unown, 432, - gMonPalette_Unown, 433, - gMonPalette_Unown, 434, - gMonPalette_Unown, 435, - gMonPalette_Unown, 436, - gMonPalette_Unown, 437, - gMonPalette_Unown, 438, - gMonPalette_Unown, 439, + [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}, }; diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 91708fafa..0c3f990cf 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[] = { - gMonShinyPalette_CircledQuestionMark, 500, - gMonShinyPalette_Bulbasaur, 501, - gMonShinyPalette_Ivysaur, 502, - gMonShinyPalette_Venusaur, 503, - gMonShinyPalette_Charmander, 504, - gMonShinyPalette_Charmeleon, 505, - gMonShinyPalette_Charizard, 506, - gMonShinyPalette_Squirtle, 507, - gMonShinyPalette_Wartortle, 508, - gMonShinyPalette_Blastoise, 509, - gMonShinyPalette_Caterpie, 510, - gMonShinyPalette_Metapod, 511, - gMonShinyPalette_Butterfree, 512, - gMonShinyPalette_Weedle, 513, - gMonShinyPalette_Kakuna, 514, - gMonShinyPalette_Beedrill, 515, - gMonShinyPalette_Pidgey, 516, - gMonShinyPalette_Pidgeotto, 517, - gMonShinyPalette_Pidgeot, 518, - gMonShinyPalette_Rattata, 519, - gMonShinyPalette_Raticate, 520, - gMonShinyPalette_Spearow, 521, - gMonShinyPalette_Fearow, 522, - gMonShinyPalette_Ekans, 523, - gMonShinyPalette_Arbok, 524, - gMonShinyPalette_Pikachu, 525, - gMonShinyPalette_Raichu, 526, - gMonShinyPalette_Sandshrew, 527, - gMonShinyPalette_Sandslash, 528, - gMonShinyPalette_NidoranF, 529, - gMonShinyPalette_Nidorina, 530, - gMonShinyPalette_Nidoqueen, 531, - gMonShinyPalette_NidoranM, 532, - gMonShinyPalette_Nidorino, 533, - gMonShinyPalette_Nidoking, 534, - gMonShinyPalette_Clefairy, 535, - gMonShinyPalette_Clefable, 536, - gMonShinyPalette_Vulpix, 537, - gMonShinyPalette_Ninetales, 538, - gMonShinyPalette_Jigglypuff, 539, - gMonShinyPalette_Wigglytuff, 540, - gMonShinyPalette_Zubat, 541, - gMonShinyPalette_Golbat, 542, - gMonShinyPalette_Oddish, 543, - gMonShinyPalette_Gloom, 544, - gMonShinyPalette_Vileplume, 545, - gMonShinyPalette_Paras, 546, - gMonShinyPalette_Parasect, 547, - gMonShinyPalette_Venonat, 548, - gMonShinyPalette_Venomoth, 549, - gMonShinyPalette_Diglett, 550, - gMonShinyPalette_Dugtrio, 551, - gMonShinyPalette_Meowth, 552, - gMonShinyPalette_Persian, 553, - gMonShinyPalette_Psyduck, 554, - gMonShinyPalette_Golduck, 555, - gMonShinyPalette_Mankey, 556, - gMonShinyPalette_Primeape, 557, - gMonShinyPalette_Growlithe, 558, - gMonShinyPalette_Arcanine, 559, - gMonShinyPalette_Poliwag, 560, - gMonShinyPalette_Poliwhirl, 561, - gMonShinyPalette_Poliwrath, 562, - gMonShinyPalette_Abra, 563, - gMonShinyPalette_Kadabra, 564, - gMonShinyPalette_Alakazam, 565, - gMonShinyPalette_Machop, 566, - gMonShinyPalette_Machoke, 567, - gMonShinyPalette_Machamp, 568, - gMonShinyPalette_Bellsprout, 569, - gMonShinyPalette_Weepinbell, 570, - gMonShinyPalette_Victreebel, 571, - gMonShinyPalette_Tentacool, 572, - gMonShinyPalette_Tentacruel, 573, - gMonShinyPalette_Geodude, 574, - gMonShinyPalette_Graveler, 575, - gMonShinyPalette_Golem, 576, - gMonShinyPalette_Ponyta, 577, - gMonShinyPalette_Rapidash, 578, - gMonShinyPalette_Slowpoke, 579, - gMonShinyPalette_Slowbro, 580, - gMonShinyPalette_Magnemite, 581, - gMonShinyPalette_Magneton, 582, - gMonShinyPalette_Farfetchd, 583, - gMonShinyPalette_Doduo, 584, - gMonShinyPalette_Dodrio, 585, - gMonShinyPalette_Seel, 586, - gMonShinyPalette_Dewgong, 587, - gMonShinyPalette_Grimer, 588, - gMonShinyPalette_Muk, 589, - gMonShinyPalette_Shellder, 590, - gMonShinyPalette_Cloyster, 591, - gMonShinyPalette_Gastly, 592, - gMonShinyPalette_Haunter, 593, - gMonShinyPalette_Gengar, 594, - gMonShinyPalette_Onix, 595, - gMonShinyPalette_Drowzee, 596, - gMonShinyPalette_Hypno, 597, - gMonShinyPalette_Krabby, 598, - gMonShinyPalette_Kingler, 599, - gMonShinyPalette_Voltorb, 600, - gMonShinyPalette_Electrode, 601, - gMonShinyPalette_Exeggcute, 602, - gMonShinyPalette_Exeggutor, 603, - gMonShinyPalette_Cubone, 604, - gMonShinyPalette_Marowak, 605, - gMonShinyPalette_Hitmonlee, 606, - gMonShinyPalette_Hitmonchan, 607, - gMonShinyPalette_Lickitung, 608, - gMonShinyPalette_Koffing, 609, - gMonShinyPalette_Weezing, 610, - gMonShinyPalette_Rhyhorn, 611, - gMonShinyPalette_Rhydon, 612, - gMonShinyPalette_Chansey, 613, - gMonShinyPalette_Tangela, 614, - gMonShinyPalette_Kangaskhan, 615, - gMonShinyPalette_Horsea, 616, - gMonShinyPalette_Seadra, 617, - gMonShinyPalette_Goldeen, 618, - gMonShinyPalette_Seaking, 619, - gMonShinyPalette_Staryu, 620, - gMonShinyPalette_Starmie, 621, - gMonShinyPalette_Mrmime, 622, - gMonShinyPalette_Scyther, 623, - gMonShinyPalette_Jynx, 624, - gMonShinyPalette_Electabuzz, 625, - gMonShinyPalette_Magmar, 626, - gMonShinyPalette_Pinsir, 627, - gMonShinyPalette_Tauros, 628, - gMonShinyPalette_Magikarp, 629, - gMonShinyPalette_Gyarados, 630, - gMonShinyPalette_Lapras, 631, - gMonShinyPalette_Ditto, 632, - gMonShinyPalette_Eevee, 633, - gMonShinyPalette_Vaporeon, 634, - gMonShinyPalette_Jolteon, 635, - gMonShinyPalette_Flareon, 636, - gMonShinyPalette_Porygon, 637, - gMonShinyPalette_Omanyte, 638, - gMonShinyPalette_Omastar, 639, - gMonShinyPalette_Kabuto, 640, - gMonShinyPalette_Kabutops, 641, - gMonShinyPalette_Aerodactyl, 642, - gMonShinyPalette_Snorlax, 643, - gMonShinyPalette_Articuno, 644, - gMonShinyPalette_Zapdos, 645, - gMonShinyPalette_Moltres, 646, - gMonShinyPalette_Dratini, 647, - gMonShinyPalette_Dragonair, 648, - gMonShinyPalette_Dragonite, 649, - gMonShinyPalette_Mewtwo, 650, - gMonShinyPalette_Mew, 651, - gMonShinyPalette_Chikorita, 652, - gMonShinyPalette_Bayleef, 653, - gMonShinyPalette_Meganium, 654, - gMonShinyPalette_Cyndaquil, 655, - gMonShinyPalette_Quilava, 656, - gMonShinyPalette_Typhlosion, 657, - gMonShinyPalette_Totodile, 658, - gMonShinyPalette_Croconaw, 659, - gMonShinyPalette_Feraligatr, 660, - gMonShinyPalette_Sentret, 661, - gMonShinyPalette_Furret, 662, - gMonShinyPalette_Hoothoot, 663, - gMonShinyPalette_Noctowl, 664, - gMonShinyPalette_Ledyba, 665, - gMonShinyPalette_Ledian, 666, - gMonShinyPalette_Spinarak, 667, - gMonShinyPalette_Ariados, 668, - gMonShinyPalette_Crobat, 669, - gMonShinyPalette_Chinchou, 670, - gMonShinyPalette_Lanturn, 671, - gMonShinyPalette_Pichu, 672, - gMonShinyPalette_Cleffa, 673, - gMonShinyPalette_Igglybuff, 674, - gMonShinyPalette_Togepi, 675, - gMonShinyPalette_Togetic, 676, - gMonShinyPalette_Natu, 677, - gMonShinyPalette_Xatu, 678, - gMonShinyPalette_Mareep, 679, - gMonShinyPalette_Flaaffy, 680, - gMonShinyPalette_Ampharos, 681, - gMonShinyPalette_Bellossom, 682, - gMonShinyPalette_Marill, 683, - gMonShinyPalette_Azumarill, 684, - gMonShinyPalette_Sudowoodo, 685, - gMonShinyPalette_Politoed, 686, - gMonShinyPalette_Hoppip, 687, - gMonShinyPalette_Skiploom, 688, - gMonShinyPalette_Jumpluff, 689, - gMonShinyPalette_Aipom, 690, - gMonShinyPalette_Sunkern, 691, - gMonShinyPalette_Sunflora, 692, - gMonShinyPalette_Yanma, 693, - gMonShinyPalette_Wooper, 694, - gMonShinyPalette_Quagsire, 695, - gMonShinyPalette_Espeon, 696, - gMonShinyPalette_Umbreon, 697, - gMonShinyPalette_Murkrow, 698, - gMonShinyPalette_Slowking, 699, - gMonShinyPalette_Misdreavus, 700, - gMonShinyPalette_Unown, 701, - gMonShinyPalette_Wobbuffet, 702, - gMonShinyPalette_Girafarig, 703, - gMonShinyPalette_Pineco, 704, - gMonShinyPalette_Forretress, 705, - gMonShinyPalette_Dunsparce, 706, - gMonShinyPalette_Gligar, 707, - gMonShinyPalette_Steelix, 708, - gMonShinyPalette_Snubbull, 709, - gMonShinyPalette_Granbull, 710, - gMonShinyPalette_Qwilfish, 711, - gMonShinyPalette_Scizor, 712, - gMonShinyPalette_Shuckle, 713, - gMonShinyPalette_Heracross, 714, - gMonShinyPalette_Sneasel, 715, - gMonShinyPalette_Teddiursa, 716, - gMonShinyPalette_Ursaring, 717, - gMonShinyPalette_Slugma, 718, - gMonShinyPalette_Magcargo, 719, - gMonShinyPalette_Swinub, 720, - gMonShinyPalette_Piloswine, 721, - gMonShinyPalette_Corsola, 722, - gMonShinyPalette_Remoraid, 723, - gMonShinyPalette_Octillery, 724, - gMonShinyPalette_Delibird, 725, - gMonShinyPalette_Mantine, 726, - gMonShinyPalette_Skarmory, 727, - gMonShinyPalette_Houndour, 728, - gMonShinyPalette_Houndoom, 729, - gMonShinyPalette_Kingdra, 730, - gMonShinyPalette_Phanpy, 731, - gMonShinyPalette_Donphan, 732, - gMonShinyPalette_Porygon2, 733, - gMonShinyPalette_Stantler, 734, - gMonShinyPalette_Smeargle, 735, - gMonShinyPalette_Tyrogue, 736, - gMonShinyPalette_Hitmontop, 737, - gMonShinyPalette_Smoochum, 738, - gMonShinyPalette_Elekid, 739, - gMonShinyPalette_Magby, 740, - gMonShinyPalette_Miltank, 741, - gMonShinyPalette_Blissey, 742, - gMonShinyPalette_Raikou, 743, - gMonShinyPalette_Entei, 744, - gMonShinyPalette_Suicune, 745, - gMonShinyPalette_Larvitar, 746, - gMonShinyPalette_Pupitar, 747, - gMonShinyPalette_Tyranitar, 748, - gMonShinyPalette_Lugia, 749, - gMonShinyPalette_HoOh, 750, - gMonShinyPalette_Celebi, 751, - gMonShinyPalette_DoubleQuestionMark, 752, - gMonShinyPalette_DoubleQuestionMark, 753, - gMonShinyPalette_DoubleQuestionMark, 754, - gMonShinyPalette_DoubleQuestionMark, 755, - gMonShinyPalette_DoubleQuestionMark, 756, - gMonShinyPalette_DoubleQuestionMark, 757, - gMonShinyPalette_DoubleQuestionMark, 758, - gMonShinyPalette_DoubleQuestionMark, 759, - gMonShinyPalette_DoubleQuestionMark, 760, - gMonShinyPalette_DoubleQuestionMark, 761, - gMonShinyPalette_DoubleQuestionMark, 762, - gMonShinyPalette_DoubleQuestionMark, 763, - gMonShinyPalette_DoubleQuestionMark, 764, - gMonShinyPalette_DoubleQuestionMark, 765, - gMonShinyPalette_DoubleQuestionMark, 766, - gMonShinyPalette_DoubleQuestionMark, 767, - gMonShinyPalette_DoubleQuestionMark, 768, - gMonShinyPalette_DoubleQuestionMark, 769, - gMonShinyPalette_DoubleQuestionMark, 770, - gMonShinyPalette_DoubleQuestionMark, 771, - gMonShinyPalette_DoubleQuestionMark, 772, - gMonShinyPalette_DoubleQuestionMark, 773, - gMonShinyPalette_DoubleQuestionMark, 774, - gMonShinyPalette_DoubleQuestionMark, 775, - gMonShinyPalette_DoubleQuestionMark, 776, - gMonShinyPalette_Treecko, 777, - gMonShinyPalette_Grovyle, 778, - gMonShinyPalette_Sceptile, 779, - gMonShinyPalette_Torchic, 780, - gMonShinyPalette_Combusken, 781, - gMonShinyPalette_Blaziken, 782, - gMonShinyPalette_Mudkip, 783, - gMonShinyPalette_Marshtomp, 784, - gMonShinyPalette_Swampert, 785, - gMonShinyPalette_Poochyena, 786, - gMonShinyPalette_Mightyena, 787, - gMonShinyPalette_Zigzagoon, 788, - gMonShinyPalette_Linoone, 789, - gMonShinyPalette_Wurmple, 790, - gMonShinyPalette_Silcoon, 791, - gMonShinyPalette_Beautifly, 792, - gMonShinyPalette_Cascoon, 793, - gMonShinyPalette_Dustox, 794, - gMonShinyPalette_Lotad, 795, - gMonShinyPalette_Lombre, 796, - gMonShinyPalette_Ludicolo, 797, - gMonShinyPalette_Seedot, 798, - gMonShinyPalette_Nuzleaf, 799, - gMonShinyPalette_Shiftry, 800, - gMonShinyPalette_Nincada, 801, - gMonShinyPalette_Ninjask, 802, - gMonShinyPalette_Shedinja, 803, - gMonShinyPalette_Taillow, 804, - gMonShinyPalette_Swellow, 805, - gMonShinyPalette_Shroomish, 806, - gMonShinyPalette_Breloom, 807, - gMonShinyPalette_Spinda, 808, - gMonShinyPalette_Wingull, 809, - gMonShinyPalette_Pelipper, 810, - gMonShinyPalette_Surskit, 811, - gMonShinyPalette_Masquerain, 812, - gMonShinyPalette_Wailmer, 813, - gMonShinyPalette_Wailord, 814, - gMonShinyPalette_Skitty, 815, - gMonShinyPalette_Delcatty, 816, - gMonShinyPalette_Kecleon, 817, - gMonShinyPalette_Baltoy, 818, - gMonShinyPalette_Claydol, 819, - gMonShinyPalette_Nosepass, 820, - gMonShinyPalette_Torkoal, 821, - gMonShinyPalette_Sableye, 822, - gMonShinyPalette_Barboach, 823, - gMonShinyPalette_Whiscash, 824, - gMonShinyPalette_Luvdisc, 825, - gMonShinyPalette_Corphish, 826, - gMonShinyPalette_Crawdaunt, 827, - gMonShinyPalette_Feebas, 828, - gMonShinyPalette_Milotic, 829, - gMonShinyPalette_Carvanha, 830, - gMonShinyPalette_Sharpedo, 831, - gMonShinyPalette_Trapinch, 832, - gMonShinyPalette_Vibrava, 833, - gMonShinyPalette_Flygon, 834, - gMonShinyPalette_Makuhita, 835, - gMonShinyPalette_Hariyama, 836, - gMonShinyPalette_Electrike, 837, - gMonShinyPalette_Manectric, 838, - gMonShinyPalette_Numel, 839, - gMonShinyPalette_Camerupt, 840, - gMonShinyPalette_Spheal, 841, - gMonShinyPalette_Sealeo, 842, - gMonShinyPalette_Walrein, 843, - gMonShinyPalette_Cacnea, 844, - gMonShinyPalette_Cacturne, 845, - gMonShinyPalette_Snorunt, 846, - gMonShinyPalette_Glalie, 847, - gMonShinyPalette_Lunatone, 848, - gMonShinyPalette_Solrock, 849, - gMonShinyPalette_Azurill, 850, - gMonShinyPalette_Spoink, 851, - gMonShinyPalette_Grumpig, 852, - gMonShinyPalette_Plusle, 853, - gMonShinyPalette_Minun, 854, - gMonShinyPalette_Mawile, 855, - gMonShinyPalette_Meditite, 856, - gMonShinyPalette_Medicham, 857, - gMonShinyPalette_Swablu, 858, - gMonShinyPalette_Altaria, 859, - gMonShinyPalette_Wynaut, 860, - gMonShinyPalette_Duskull, 861, - gMonShinyPalette_Dusclops, 862, - gMonShinyPalette_Roselia, 863, - gMonShinyPalette_Slakoth, 864, - gMonShinyPalette_Vigoroth, 865, - gMonShinyPalette_Slaking, 866, - gMonShinyPalette_Gulpin, 867, - gMonShinyPalette_Swalot, 868, - gMonShinyPalette_Tropius, 869, - gMonShinyPalette_Whismur, 870, - gMonShinyPalette_Loudred, 871, - gMonShinyPalette_Exploud, 872, - gMonShinyPalette_Clamperl, 873, - gMonShinyPalette_Huntail, 874, - gMonShinyPalette_Gorebyss, 875, - gMonShinyPalette_Absol, 876, - gMonShinyPalette_Shuppet, 877, - gMonShinyPalette_Banette, 878, - gMonShinyPalette_Seviper, 879, - gMonShinyPalette_Zangoose, 880, - gMonShinyPalette_Relicanth, 881, - gMonShinyPalette_Aron, 882, - gMonShinyPalette_Lairon, 883, - gMonShinyPalette_Aggron, 884, - gMonShinyPalette_Castform, 885, - gMonShinyPalette_Volbeat, 886, - gMonShinyPalette_Illumise, 887, - gMonShinyPalette_Lileep, 888, - gMonShinyPalette_Cradily, 889, - gMonShinyPalette_Anorith, 890, - gMonShinyPalette_Armaldo, 891, - gMonShinyPalette_Ralts, 892, - gMonShinyPalette_Kirlia, 893, - gMonShinyPalette_Gardevoir, 894, - gMonShinyPalette_Bagon, 895, - gMonShinyPalette_Shelgon, 896, - gMonShinyPalette_Salamence, 897, - gMonShinyPalette_Beldum, 898, - gMonShinyPalette_Metang, 899, - gMonShinyPalette_Metagross, 900, - gMonShinyPalette_Regirock, 901, - gMonShinyPalette_Regice, 902, - gMonShinyPalette_Registeel, 903, - gMonShinyPalette_Kyogre, 904, - gMonShinyPalette_Groudon, 905, - gMonShinyPalette_Rayquaza, 906, - gMonShinyPalette_Latias, 907, - gMonShinyPalette_Latios, 908, - gMonShinyPalette_Jirachi, 909, - gMonShinyPalette_Deoxys, 910, - gMonShinyPalette_Chimecho, 911, - gMonPalette_Egg, 912, - gMonShinyPalette_Unown, 913, - gMonShinyPalette_Unown, 914, - gMonShinyPalette_Unown, 915, - gMonShinyPalette_Unown, 916, - gMonShinyPalette_Unown, 917, - gMonShinyPalette_Unown, 918, - gMonShinyPalette_Unown, 919, - gMonShinyPalette_Unown, 920, - gMonShinyPalette_Unown, 921, - gMonShinyPalette_Unown, 922, - gMonShinyPalette_Unown, 923, - gMonShinyPalette_Unown, 924, - gMonShinyPalette_Unown, 925, - gMonShinyPalette_Unown, 926, - gMonShinyPalette_Unown, 927, - gMonShinyPalette_Unown, 928, - gMonShinyPalette_Unown, 929, - gMonShinyPalette_Unown, 930, - gMonShinyPalette_Unown, 931, - gMonShinyPalette_Unown, 932, - gMonShinyPalette_Unown, 933, - gMonShinyPalette_Unown, 934, - gMonShinyPalette_Unown, 935, - gMonShinyPalette_Unown, 936, - gMonShinyPalette_Unown, 937, - gMonShinyPalette_Unown, 938, - gMonShinyPalette_Unown, 939, + [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}, }; diff --git a/src/data/region_map/region_map_entries.h b/src/data/region_map/region_map_entries.h index 9c7e3f2fc..0c79c04ac 100644 --- a/src/data/region_map/region_map_entries.h +++ b/src/data/region_map/region_map_entries.h @@ -126,7 +126,7 @@ static const u8 sMapName_MtMoon[] = _("MT. MOON"); static const u8 sMapName_SSAnne[] = _("S.S. ANNE"); static const u8 sMapName_UndergroundPath[] = _("UNDERGROUND PATH"); static const u8 sMapName_UndergroundPath2[] = _("UNDERGROUND PATH"); -static const u8 sMapName_DiglettsCave[] = _("DIGLETT’S CAVE"); +static const u8 sMapName_DiglettsCave[] = _("DIGLETT'S CAVE"); static const u8 sMapName_KantoVictoryRoad[] = _("VICTORY ROAD"); static const u8 sMapName_RocketHideout[] = _("ROCKET HIDEOUT"); static const u8 sMapName_SilphCo[] = _("SILPH CO."); diff --git a/src/data/text/abilities.h b/src/data/text/abilities.h index 97c29f9ee..093119726 100644 --- a/src/data/text/abilities.h +++ b/src/data/text/abilities.h @@ -14,14 +14,14 @@ static const u8 sObliviousDescription[] = _("Prevents attraction."); static const u8 sCloudNineDescription[] = _("Negates weather effects."); static const u8 sCompoundEyesDescription[] = _("Raises accuracy."); static const u8 sInsomniaDescription[] = _("Prevents sleep."); -static const u8 sColorChangeDescription[] = _("Changes type to foe’s move."); +static const u8 sColorChangeDescription[] = _("Changes type to foe's move."); static const u8 sImmunityDescription[] = _("Prevents poisoning."); static const u8 sFlashFireDescription[] = _("Powers up if hit by fire."); static const u8 sShieldDustDescription[] = _("Prevents added effects."); static const u8 sOwnTempoDescription[] = _("Prevents confusion."); static const u8 sSuctionCupsDescription[] = _("Firmly anchors the body."); -static const u8 sIntimidateDescription[] = _("Lowers the foe’s ATTACK."); -static const u8 sShadowTagDescription[] = _("Prevents the foe’s escape."); +static const u8 sIntimidateDescription[] = _("Lowers the foe's ATTACK."); +static const u8 sShadowTagDescription[] = _("Prevents the foe's escape."); static const u8 sRoughSkinDescription[] = _("Hurts to touch."); static const u8 sWonderGuardDescription[] = _("“Super effective” hits."); static const u8 sLevitateDescription[] = _("Not hit by GROUND attacks."); @@ -44,7 +44,7 @@ static const u8 sMagnetPullDescription[] = _("Traps STEEL-type POKéMON."); static const u8 sSoundproofDescription[] = _("Avoids sound-based moves."); static const u8 sRainDishDescription[] = _("Slight HP recovery in rain."); static const u8 sSandStreamDescription[] = _("Summons a sandstorm."); -static const u8 sPressureDescription[] = _("Raises foe’s PP usage."); +static const u8 sPressureDescription[] = _("Raises foe's PP usage."); static const u8 sThickFatDescription[] = _("Heat-and-cold protection."); static const u8 sEarlyBirdDescription[] = _("Awakens quickly from sleep."); static const u8 sFlameBodyDescription[] = _("Burns the foe on contact."); diff --git a/src/data/text/item_descriptions.h b/src/data/text/item_descriptions.h index 8683978d7..1f048e440 100644 --- a/src/data/text/item_descriptions.h +++ b/src/data/text/item_descriptions.h @@ -1,7 +1,5 @@ -#ifndef POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H -#define POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H const u8 gDummyItemDescription[] = _("?????"); -//Pokeballs +// Pokeballs const u8 gMasterBallItemDescription[] = _("The best BALL that\ncatches a POKéMON\nwithout fail."); const u8 gUltraBallItemDescription[] = _("A better BALL with\na higher catch rate\nthan a GREAT BALL."); const u8 gGreatBallItemDescription[] = _("A good BALL with a\nhigher catch rate\nthan a POKé BALL."); @@ -9,12 +7,12 @@ const u8 gPokeBallItemDescription[] = _("A tool used for\ncatching wild\nPOKéMO const u8 gSafariBallItemDescription[] = _("A special BALL that\nis used only in the\nSAFARI ZONE."); const u8 gNetBallItemDescription[] = _("A BALL that works\nwell on WATER- and\nBUG-type POKéMON."); const u8 gDiveBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\non the ocean floor."); -const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON."); +const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON."); const u8 gRepeatBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\ncaught before."); const u8 gTimerBallItemDescription[] = _("A BALL that gains\npower in battles\ntaking many turns."); const u8 gLuxuryBallItemDescription[] = _("A cozy BALL that\nmakes POKéMON\nmore friendly."); const u8 gPremierBallItemDescription[] = _("A rare BALL made\nin commemoration\nof some event."); -//Medicine +// Medicine const u8 gPotionItemDescription[] = _("Restores the HP of\na POKéMON by\n20 points."); const u8 gAntidoteItemDescription[] = _("Heals a poisoned\nPOKéMON."); const u8 gBurnHealItemDescription[] = _("Heals POKéMON\nof a burn."); @@ -39,7 +37,7 @@ const u8 gRevivalHerbItemDescription[] = _("A very bitter herb\nthat revives a\n const u8 gEtherItemDescription[] = _("Restores the PP\nof a selected move\nby 10."); const u8 gMaxEtherItemDescription[] = _("Fully restores the\nPP of a selected\nmove."); const u8 gElixirItemDescription[] = _("Restores the PP\nof all moves by 10."); -const u8 gMaxElixirItemDescription[] = _("Fully restores the\nPP of a POKéMON’s\nmoves."); +const u8 gMaxElixirItemDescription[] = _("Fully restores the\nPP of a POKéMON's\nmoves."); const u8 gLavaCookieItemDescription[] = _("A local specialty\nthat heals all\nstatus problems."); const u8 gBlueFluteItemDescription[] = _("A glass flute that\nawakens sleeping\nPOKéMON."); const u8 gYellowFluteItemDescription[] = _("A glass flute that\nsnaps POKéMON\nout of confusion."); @@ -48,14 +46,14 @@ const u8 gBlackFluteItemDescription[] = _("A glass flute that\nkeeps away wild\n const u8 gWhiteFluteItemDescription[] = _("A glass flute that\nlures wild POKéMON."); const u8 gBerryJuiceItemDescription[] = _("A 100% pure juice\nthat restores HP\nby 20 points."); const u8 gSacredAshItemDescription[] = _("Fully revives and\nrestores all\nfainted POKéMON."); -//Collectibles +// Collectibles const u8 gShoalSaltItemDescription[] = _("Salt obtained from\ndeep inside the\nSHOAL CAVE."); const u8 gShoalShellItemDescription[] = _("A seashell found\ndeep inside the\nSHOAL CAVE."); const u8 gRedShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); const u8 gBlueShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); const u8 gYellowShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); const u8 gGreenShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); -//Vitamins +// Vitamins const u8 gHPUpItemDescription[] = _("Raises the base HP\nof one POKéMON."); const u8 gProteinItemDescription[] = _("Raises the base\nATTACK stat of one\nPOKéMON."); const u8 gIronItemDescription[] = _("Raises the base\nDEFENSE stat of\none POKéMON."); @@ -65,7 +63,7 @@ const u8 gRareCandyItemDescription[] = _("Raises the level\nof a POKéMON by\non const u8 gPPUpItemDescription[] = _("Raises the maximum\nPP of a selected\nmove."); const u8 gZincItemDescription[] = _("Raises the base\nSP. DEF stat of one\nPOKéMON."); const u8 gPPMaxItemDescription[] = _("Raises the PP of a\nmove to its maximum\npoints."); -//Battle items +// Battle items const u8 gGuardSpecItemDescription[] = _("Prevents stat\nreduction when\nused in battle."); const u8 gDireHitItemDescription[] = _("Raises the\ncritical-hit ratio\nduring one battle."); const u8 gXAttackItemDescription[] = _("Raises the stat\nATTACK during one\nbattle."); @@ -75,19 +73,19 @@ const u8 gXAccuracyItemDescription[] = _("Raises accuracy\nof attack moves\nduri const u8 gXSpecialItemDescription[] = _("Raises the stat\nSP. ATK during one\nbattle."); const u8 gPokeDollItemDescription[] = _("Use to flee from\nany battle with\na wild POKéMON."); const u8 gFluffyTailItemDescription[] = _("Use to flee from\nany battle with\na wild POKéMON."); -//Field items +// Field items const u8 gSuperRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 200\nsteps."); const u8 gMaxRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 250\nsteps."); const u8 gEscapeRopeItemDescription[] = _("Use to escape\ninstantly from a\ncave or a dungeon."); const u8 gRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 100\nsteps."); -//Evolution stones +// Evolution stones const u8 gSunStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); const u8 gMoonStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); const u8 gFireStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); const u8 gThunderStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); const u8 gWaterStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); const u8 gLeafStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); -//Valuable items +// Valuable items const u8 gTinyMushroomItemDescription[] = _("A plain mushroom\nthat would sell\nat a cheap price."); const u8 gBigMushroomItemDescription[] = _("A rare mushroom\nthat would sell at a\nhigh price."); const u8 gPearlItemDescription[] = _("A pretty pearl\nthat would sell at a\ncheap price."); @@ -96,7 +94,7 @@ const u8 gStardustItemDescription[] = _("Beautiful red sand.\nCan be sold at a\n const u8 gStarPieceItemDescription[] = _("A red gem shard.\nIt would sell for a\nvery high price."); const u8 gNuggetItemDescription[] = _("A nugget of pure\ngold. Can be sold at\na high price."); const u8 gHeartScaleItemDescription[] = _("A lovely scale.\nIt is coveted by\ncollectors."); -//Mail +// Mail const u8 gOrangeMailItemDescription[] = _("A ZIGZAGOON-print\nMAIL to be held by\na POKéMON."); const u8 gHarborMailItemDescription[] = _("A WINGULL-print\nMAIL to be held by\na POKéMON."); const u8 gGlitterMailItemDescription[] = _("A PIKACHU-print\nMAIL to be held by\na POKéMON."); @@ -109,7 +107,7 @@ const u8 gTropicMailItemDescription[] = _("A BELLOSSOM-print\nMAIL to be held by const u8 gDreamMailItemDescription[] = _("MAIL featuring a\nsketch of the\nholding POKéMON."); const u8 gFabMailItemDescription[] = _("A gorgeous-print\nMAIL to be held\nby a POKéMON."); const u8 gRetroMailItemDescription[] = _("MAIL featuring the\ndrawings of three\nPOKéMON."); -//Berries +// Berries const u8 gCheriBerryItemDescription[] = _("A hold item that\nheals paralysis\nin battle."); const u8 gChestoBerryItemDescription[] = _("A hold item that\nawakens POKéMON\nin battle."); const u8 gPechaBerryItemDescription[] = _("A hold item that\nheals poisoning\nin battle."); @@ -153,7 +151,7 @@ const u8 gApicotBerryItemDescription[] = _("A hold item that\nraises SP. DEF in\ const u8 gLansatBerryItemDescription[] = _("A hold item that\nups the critical-\nhit rate in a pinch."); const u8 gStarfBerryItemDescription[] = _("A hold item that\nsharply boosts a\nstat in a pinch."); const u8 gEnigmaBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow a mystery."); -//Hold items +// Hold items const u8 gBrightPowderItemDescription[] = _("A hold item that\ncasts a glare to\nreduce accuracy."); const u8 gWhiteHerbItemDescription[] = _("A hold item that\nrestores any\nlowered stat."); const u8 gMachoBraceItemDescription[] = _("A hold item that\npromotes growth,\nbut reduces SPEED."); @@ -161,7 +159,7 @@ const u8 gExpShareItemDescription[] = _("A hold item that\ngets EXP. points\nfro const u8 gQuickClawItemDescription[] = _("A hold item that\noccasionally allows\nthe first strike."); const u8 gSootheBellItemDescription[] = _("A hold item that\ncalms spirits and\nfosters friendship."); const u8 gMentalHerbItemDescription[] = _("A hold item that\nsnaps POKéMON out\nof infatuation."); -const u8 gChoiceBandItemDescription[] = _("Raises a move’s\npower, but permits\nonly that move."); +const u8 gChoiceBandItemDescription[] = _("Raises a move's\npower, but permits\nonly that move."); const u8 gKingsRockItemDescription[] = _("A hold item that\nmay cause flinching\nwhen the foe is hit."); const u8 gSilverPowderItemDescription[] = _("A hold item that\nraises the power of\nBUG-type moves."); const u8 gAmuletCoinItemDescription[] = _("Doubles money in\nbattle if the\nholder takes part."); @@ -196,17 +194,17 @@ const u8 gSilkScarfItemDescription[] = _("A hold item that\nraises the power of\ const u8 gUpGradeItemDescription[] = _("A peculiar box made\nby SILPH CO."); const u8 gShellBellItemDescription[] = _("A hold item that\nrestores HP upon\nstriking the foe."); const u8 gSeaIncenseItemDescription[] = _("A hold item that\nslightly boosts\nWATER-type moves."); -const u8 gLaxIncenseItemDescription[] = _("A hold item that\nslightly lowers the\nfoe’s accuracy."); -const u8 gLuckyPunchItemDescription[] = _("A hold item that\nraises CHANSEY’s\ncritical-hit rate."); -const u8 gMetalPowderItemDescription[] = _("A hold item that\nraises DITTO’s\nDEFENSE."); -const u8 gThickClubItemDescription[] = _("A hold item that \nraises CUBONE or\nMAROWAK’s ATTACK."); -const u8 gStickItemDescription[] = _("A hold item that\nraises FARFETCH’D’s\ncritical-hit ratio."); +const u8 gLaxIncenseItemDescription[] = _("A hold item that\nslightly lowers the\nfoe's accuracy."); +const u8 gLuckyPunchItemDescription[] = _("A hold item that\nraises CHANSEY's\ncritical-hit rate."); +const u8 gMetalPowderItemDescription[] = _("A hold item that\nraises DITTO's\nDEFENSE."); +const u8 gThickClubItemDescription[] = _("A hold item that \nraises CUBONE or\nMAROWAK's ATTACK."); +const u8 gStickItemDescription[] = _("A hold item that\nraises FARFETCH'D's\ncritical-hit ratio."); const u8 gRedScarfItemDescription[] = _("A hold item that\nraises COOL in\nCONTESTS."); const u8 gBlueScarfItemDescription[] = _("A hold item that\nraises BEAUTY in\nCONTESTS."); const u8 gPinkScarfItemDescription[] = _("A hold item that\nraises CUTE in\nCONTESTS."); const u8 gGreenScarfItemDescription[] = _("A hold item that\nraises SMART in\nCONTESTS."); const u8 gYellowScarfItemDescription[] = _("A hold item that\nraises TOUGH in\nCONTESTS."); -//Key items +// Key items const u8 gMachBikeItemDescription[] = _("A folding bicycle\nthat doubles your\nspeed or better."); const u8 gCoinCaseItemDescription[] = _("A case that holds\nup to 9,999 COINS."); const u8 gItemfinderItemDescription[] = _("A device that\nsignals an invisible\nitem by sound."); @@ -216,7 +214,7 @@ const u8 gSuperRodItemDescription[] = _("The best fishing\nrod for catching\nwil const u8 gSSTicketItemDescription[] = _("The ticket required\nfor sailing on a\nferry."); const u8 gContestPassItemDescription[] = _("The pass required\nfor entering\nPOKéMON CONTESTS."); const u8 gWailmerPailItemDescription[] = _("A tool used for\nwatering BERRIES\nand plants."); -const u8 gDevonGoodsItemDescription[] = _("A package that\ncontains DEVON’s\nmachine parts."); +const u8 gDevonGoodsItemDescription[] = _("A package that\ncontains DEVON's\nmachine parts."); const u8 gSootSackItemDescription[] = _("A sack used to\ngather and hold\nvolcanic ash."); const u8 gBasementKeyItemDescription[] = _("The key for NEW\nMAUVILLE beneath\nMAUVILLE CITY."); const u8 gAcroBikeItemDescription[] = _("A folding bicycle\ncapable of jumps\nand wheelies."); @@ -236,7 +234,7 @@ const u8 gStorageKeyItemDescription[] = _("The key to the\nstorage inside the\nA const u8 gRootFossilItemDescription[] = _("A fossil of an\nancient, seafloor-\ndwelling POKéMON."); const u8 gClawFossilItemDescription[] = _("A fossil of an\nancient, seafloor-\ndwelling POKéMON."); const u8 gDevonScopeItemDescription[] = _("A device by DEVON\nthat signals any\nunseeable POKéMON."); -//TMs/HMs +// TMs/HMs const u8 gTM01ItemDescription[] = _("Powerful, but makes\nthe user flinch if\nhit by the foe."); const u8 gTM02ItemDescription[] = _("Hooks and slashes\nthe foe with long,\nsharp claws."); const u8 gTM03ItemDescription[] = _("Generates an\nultrasonic wave\nthat may confuse."); @@ -276,13 +274,13 @@ const u8 gTM36ItemDescription[] = _("Hurls sludge at the\nfoe. It may poison\nth const u8 gTM37ItemDescription[] = _("Causes a sandstorm\nthat hits the foe\nover several turns."); const u8 gTM38ItemDescription[] = _("A powerful fire\nattack that may\nburn the foe."); const u8 gTM39ItemDescription[] = _("Stops the foe from\nmoving with rocks.\nMay lower SPEED."); -const u8 gTM40ItemDescription[] = _("An extremely fast\nattack that can’t\nbe avoided."); +const u8 gTM40ItemDescription[] = _("An extremely fast\nattack that can't\nbe avoided."); const u8 gTM41ItemDescription[] = _("Prevents the foe\nfrom using the same\nmove in a row."); const u8 gTM42ItemDescription[] = _("Raises ATTACK when\npoisoned, burned,\nor paralyzed."); const u8 gTM43ItemDescription[] = _("Adds an effect to\nattack depending\non the location."); const u8 gTM44ItemDescription[] = _("The user sleeps for\n2 turns to restore\nhealth and status."); const u8 gTM45ItemDescription[] = _("Makes it tough to\nattack a foe of the\nopposite gender."); -const u8 gTM46ItemDescription[] = _("While attacking,\nit may steal the\nfoe’s held item."); +const u8 gTM46ItemDescription[] = _("While attacking,\nit may steal the\nfoe's held item."); const u8 gTM47ItemDescription[] = _("Spreads hard-\nedged wings and\nslams into the foe."); const u8 gTM48ItemDescription[] = _("Switches abilities\nwith the foe on the\nturn this is used."); const u8 gTM49ItemDescription[] = _("Steals the effects\nof the move the foe\nis trying to use."); @@ -296,18 +294,18 @@ const u8 gHM05ItemDescription[] = _("Looses a powerful\nblast of light that\nred const u8 gHM06ItemDescription[] = _("A rock-crushingly\ntough attack that\nmay lower DEFENSE."); const u8 gHM07ItemDescription[] = _("Attacks the foe\nwith enough power\nto climb waterfalls."); const u8 gHM08ItemDescription[] = _("Dives underwater\nthe 1st turn, then\nattacks next turn."); -//FireRed/LeafGreen key items -const u8 gOaksParcelItemDescription[] = _("A parcel for PROF.\nOAK from a POKéMON\nMART’s clerk."); +// FireRed/LeafGreen key items +const u8 gOaksParcelItemDescription[] = _("A parcel for PROF.\nOAK from a POKéMON\nMART's clerk."); const u8 gPokeFluteItemDescription[] = _("A sweet-sounding\nflute that awakens\nPOKéMON."); -const u8 gSecretKeyItemDescription[] = _("The key to the\nCINNABAR ISLAND\nGYM’s entrance."); +const u8 gSecretKeyItemDescription[] = _("The key to the\nCINNABAR ISLAND\nGYM's entrance."); const u8 gBikeVoucherItemDescription[] = _("A voucher for\nobtaining a bicycle\nfrom the BIKE SHOP."); -const u8 gGoldTeethItemDescription[] = _("Gold dentures lost\nby the SAFARI\nZONE’s WARDEN."); +const u8 gGoldTeethItemDescription[] = _("Gold dentures lost\nby the SAFARI\nZONE's WARDEN."); const u8 gOldAmberItemDescription[] = _("A stone containing\nthe genes of an\nancient POKéMON."); -const u8 gCardKeyItemDescription[] = _("A card-type door\nkey used in SILPH\nCO’s office."); -const u8 gLiftKeyItemDescription[] = _("An elevator key\nused in TEAM\nROCKET’s HIDEOUT."); -const u8 gHelixFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON’s seashell."); -const u8 gDomeFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON’s shell."); -const u8 gSilphScopeItemDescription[] = _("SILPH CO’s scope\nmakes unseeable\nPOKéMON visible."); +const u8 gCardKeyItemDescription[] = _("A card-type door\nkey used in SILPH\nCO's office."); +const u8 gLiftKeyItemDescription[] = _("An elevator key\nused in TEAM\nROCKET's HIDEOUT."); +const u8 gHelixFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON's seashell."); +const u8 gDomeFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON's shell."); +const u8 gSilphScopeItemDescription[] = _("SILPH CO's scope\nmakes unseeable\nPOKéMON visible."); const u8 gBicycleItemDescription[] = _("A folding bicycle\nthat is faster than\nthe RUNNING SHOES."); const u8 gTownMapItemDescription[] = _("Can be viewed\nanytime. Shows your\npresent location."); const u8 gVSSeekerItemDescription[] = _("A rechargeable unit\nthat flags battle-\nready TRAINERS."); @@ -323,7 +321,6 @@ const u8 gAuroraTicketItemDescription[] = _("A ticket required\nto board the shi const u8 gPowderJarItemDescription[] = _("Stores BERRY\nPOWDER made using\na BERRY CRUSHER."); const u8 gRubyItemDescription[] = _("An exquisite, red-\nglowing gem that\nsymbolizes passion."); const u8 gSapphireItemDescription[] = _("A brilliant blue gem\nthat symbolizes\nhonesty."); -//Emerald-specific key items -const u8 gMagmaEmblemItemDescription[] = _("A medal-like item in\nthe same shape as\nTEAM MAGMA’s mark."); +// Emerald-specific key items +const u8 gMagmaEmblemItemDescription[] = _("A medal-like item in\nthe same shape as\nTEAM MAGMA's mark."); const u8 gOldSeaMapItemDescription[] = _("A faded sea chart\nthat shows the way\nto a certain island."); -#endif // POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index 3642f66b1..34880f16d 100644 --- a/src/data/text/move_descriptions.h +++ b/src/data/text/move_descriptions.h @@ -1,1421 +1,1421 @@ static const u8 sNullDescription[] = _( - ""); + ""); static const u8 sPoundDescription[] = _( - "Pounds the foe with\n" - "forelegs or tail."); + "Pounds the foe with\n" + "forelegs or tail."); static const u8 sKarateChopDescription[] = _( - "A chopping attack with a\n" - "high critical-hit ratio."); + "A chopping attack with a\n" + "high critical-hit ratio."); static const u8 sDoubleSlapDescription[] = _( - "Repeatedly slaps the foe\n" - "2 to 5 times."); + "Repeatedly slaps the foe\n" + "2 to 5 times."); static const u8 sCometPunchDescription[] = _( - "Repeatedly punches the foe\n" - "2 to 5 times."); + "Repeatedly punches the foe\n" + "2 to 5 times."); static const u8 sMegaPunchDescription[] = _( - "A strong punch thrown with\n" - "incredible power."); + "A strong punch thrown with\n" + "incredible power."); static const u8 sPayDayDescription[] = _( - "Throws coins at the foe.\n" - "Money is recovered after."); + "Throws coins at the foe.\n" + "Money is recovered after."); static const u8 sFirePunchDescription[] = _( - "A fiery punch that may burn\n" - "the foe."); + "A fiery punch that may burn\n" + "the foe."); static const u8 sIcePunchDescription[] = _( - "An icy punch that may\n" - "freeze the foe."); + "An icy punch that may\n" + "freeze the foe."); static const u8 sThunderPunchDescription[] = _( - "An electrified punch that\n" - "may paralyze the foe."); + "An electrified punch that\n" + "may paralyze the foe."); static const u8 sScratchDescription[] = _( - "Scratches the foe with\n" - "sharp claws."); + "Scratches the foe with\n" + "sharp claws."); static const u8 sViceGripDescription[] = _( - "Grips the foe with large and\n" - "powerful pincers."); + "Grips the foe with large and\n" + "powerful pincers."); static const u8 sGuillotineDescription[] = _( - "A powerful pincer attack\n" - "that may cause fainting."); + "A powerful pincer attack\n" + "that may cause fainting."); static const u8 sRazorWindDescription[] = _( - "A 2-turn move that strikes\n" - "the foe on the 2nd turn."); + "A 2-turn move that strikes\n" + "the foe on the 2nd turn."); static const u8 sSwordsDanceDescription[] = _( - "A fighting dance that\n" - "sharply raises ATTACK."); + "A fighting dance that\n" + "sharply raises ATTACK."); static const u8 sCutDescription[] = _( - "Cuts the foe with sharp\n" - "scythes, claws, etc."); + "Cuts the foe with sharp\n" + "scythes, claws, etc."); static const u8 sGustDescription[] = _( - "Strikes the foe with a gust\n" - "of wind whipped up by wings."); + "Strikes the foe with a gust\n" + "of wind whipped up by wings."); static const u8 sWingAttackDescription[] = _( - "Strikes the foe with wings\n" - "spread wide."); + "Strikes the foe with wings\n" + "spread wide."); static const u8 sWhirlwindDescription[] = _( - "Blows away the foe with\n" - "wind and ends the battle."); + "Blows away the foe with\n" + "wind and ends the battle."); static const u8 sFlyDescription[] = _( - "Flies up on the first turn,\n" - "then strikes the next turn."); + "Flies up on the first turn,\n" + "then strikes the next turn."); static const u8 sBindDescription[] = _( - "Binds and squeezes the foe\n" - "for 2 to 5 turns."); + "Binds and squeezes the foe\n" + "for 2 to 5 turns."); static const u8 sSlamDescription[] = _( - "Slams the foe with a long\n" - "tail, vine, etc."); + "Slams the foe with a long\n" + "tail, vine, etc."); static const u8 sVineWhipDescription[] = _( - "Strikes the foe with\n" - "slender, whiplike vines."); + "Strikes the foe with\n" + "slender, whiplike vines."); static const u8 sStompDescription[] = _( - "Stomps the enemy with a big\n" - "foot. May cause flinching."); + "Stomps the enemy with a big\n" + "foot. May cause flinching."); static const u8 sDoubleKickDescription[] = _( - "A double-kicking attack\n" - "that strikes the foe twice."); + "A double-kicking attack\n" + "that strikes the foe twice."); static const u8 sMegaKickDescription[] = _( - "An extremely powerful kick\n" - "with intense force."); + "An extremely powerful kick\n" + "with intense force."); static const u8 sJumpKickDescription[] = _( - "A strong jumping kick. May\n" - "miss and hurt the kicker."); + "A strong jumping kick. May\n" + "miss and hurt the kicker."); static const u8 sRollingKickDescription[] = _( - "A fast kick delivered from\n" - "a rapid spin."); + "A fast kick delivered from\n" + "a rapid spin."); static const u8 sSandAttackDescription[] = _( - "Reduces the foe’s accuracy\n" - "by hurling sand in its face."); + "Reduces the foe's accuracy\n" + "by hurling sand in its face."); static const u8 sHeadbuttDescription[] = _( - "A ramming attack that may\n" - "cause flinching."); + "A ramming attack that may\n" + "cause flinching."); static const u8 sHornAttackDescription[] = _( - "Jabs the foe with sharp\n" - "horns."); + "Jabs the foe with sharp\n" + "horns."); static const u8 sFuryAttackDescription[] = _( - "Jabs the foe 2 to 5 times\n" - "with sharp horns, etc."); + "Jabs the foe 2 to 5 times\n" + "with sharp horns, etc."); static const u8 sHornDrillDescription[] = _( - "A one-hit KO attack that\n" - "uses a horn like a drill."); + "A one-hit KO attack that\n" + "uses a horn like a drill."); static const u8 sTackleDescription[] = _( - "Charges the foe with a full-\n" - "body tackle."); + "Charges the foe with a full-\n" + "body tackle."); static const u8 sBodySlamDescription[] = _( - "A full-body slam that may\n" - "cause paralysis."); + "A full-body slam that may\n" + "cause paralysis."); static const u8 sWrapDescription[] = _( - "Wraps and squeezes the foe\n" - "2 to 5 times with vines, etc."); + "Wraps and squeezes the foe\n" + "2 to 5 times with vines, etc."); static const u8 sTakeDownDescription[] = _( - "A reckless charge attack\n" - "that also hurts the user."); + "A reckless charge attack\n" + "that also hurts the user."); static const u8 sThrashDescription[] = _( - "A rampage of 2 to 3 turns\n" - "that confuses the user."); + "A rampage of 2 to 3 turns\n" + "that confuses the user."); static const u8 sDoubleEdgeDescription[] = _( - "A life-risking tackle that\n" - "also hurts the user."); + "A life-risking tackle that\n" + "also hurts the user."); static const u8 sTailWhipDescription[] = _( - "Wags the tail to lower the\n" - "foe’s DEFENSE."); + "Wags the tail to lower the\n" + "foe's DEFENSE."); static const u8 sPoisonStingDescription[] = _( - "A toxic attack with barbs,\n" - "etc., that may poison."); + "A toxic attack with barbs,\n" + "etc., that may poison."); static const u8 sTwineedleDescription[] = _( - "Stingers on the forelegs\n" - "jab the foe twice."); + "Stingers on the forelegs\n" + "jab the foe twice."); static const u8 sPinMissileDescription[] = _( - "Sharp pins are fired to\n" - "strike 2 to 5 times."); + "Sharp pins are fired to\n" + "strike 2 to 5 times."); static const u8 sLeerDescription[] = _( - "Frightens the foe with a\n" - "leer to lower DEFENSE."); + "Frightens the foe with a\n" + "leer to lower DEFENSE."); static const u8 sBiteDescription[] = _( - "Bites with vicious fangs.\n" - "May cause flinching."); + "Bites with vicious fangs.\n" + "May cause flinching."); static const u8 sGrowlDescription[] = _( - "Growls cutely to reduce the\n" - "foe’s ATTACK."); + "Growls cutely to reduce the\n" + "foe's ATTACK."); static const u8 sRoarDescription[] = _( - "Makes the foe flee to end\n" - "the battle."); + "Makes the foe flee to end\n" + "the battle."); static const u8 sSingDescription[] = _( - "A soothing song lulls the\n" - "foe into a deep slumber."); + "A soothing song lulls the\n" + "foe into a deep slumber."); static const u8 sSupersonicDescription[] = _( - "Emits bizarre sound waves\n" - "that may confuse the foe."); + "Emits bizarre sound waves\n" + "that may confuse the foe."); static const u8 sSonicBoomDescription[] = _( - "Launches shock waves that\n" - "always inflict 20 HP damage."); + "Launches shock waves that\n" + "always inflict 20 HP damage."); static const u8 sDisableDescription[] = _( - "Psychically disables one of\n" - "the foe’s moves."); + "Psychically disables one of\n" + "the foe's moves."); static const u8 sAcidDescription[] = _( - "Sprays a hide-melting acid.\n" - "May lower DEFENSE."); + "Sprays a hide-melting acid.\n" + "May lower DEFENSE."); static const u8 sEmberDescription[] = _( - "A weak fire attack that may\n" - "inflict a burn."); + "A weak fire attack that may\n" + "inflict a burn."); static const u8 sFlamethrowerDescription[] = _( - "A powerful fire attack that\n" - "may inflict a burn."); + "A powerful fire attack that\n" + "may inflict a burn."); static const u8 sMistDescription[] = _( - "Creates a mist that stops\n" - "reduction of abilities."); + "Creates a mist that stops\n" + "reduction of abilities."); static const u8 sWaterGunDescription[] = _( - "Squirts water to attack\n" - "the foe."); + "Squirts water to attack\n" + "the foe."); static const u8 sHydroPumpDescription[] = _( - "Blasts water at high power\n" - "to strike the foe."); + "Blasts water at high power\n" + "to strike the foe."); static const u8 sSurfDescription[] = _( - "Creates a huge wave, then\n" - "crashes it down on the foe."); + "Creates a huge wave, then\n" + "crashes it down on the foe."); static const u8 sIceBeamDescription[] = _( - "Blasts the foe with an icy\n" - "beam that may freeze it."); + "Blasts the foe with an icy\n" + "beam that may freeze it."); static const u8 sBlizzardDescription[] = _( - "Hits the foe with an icy\n" - "storm that may freeze it."); + "Hits the foe with an icy\n" + "storm that may freeze it."); static const u8 sPsybeamDescription[] = _( - "Fires a peculiar ray that\n" - "may confuse the foe."); + "Fires a peculiar ray that\n" + "may confuse the foe."); static const u8 sBubbleBeamDescription[] = _( - "Forcefully sprays bubbles\n" - "that may lower SPEED."); + "Forcefully sprays bubbles\n" + "that may lower SPEED."); static const u8 sAuroraBeamDescription[] = _( - "Fires a rainbow-colored\n" - "beam that may lower ATTACK."); + "Fires a rainbow-colored\n" + "beam that may lower ATTACK."); static const u8 sHyperBeamDescription[] = _( - "Powerful, but leaves the\n" - "user immobile the next turn."); + "Powerful, but leaves the\n" + "user immobile the next turn."); static const u8 sPeckDescription[] = _( - "Attacks the foe with a\n" - "jabbing beak, etc."); + "Attacks the foe with a\n" + "jabbing beak, etc."); static const u8 sDrillPeckDescription[] = _( - "A corkscrewing attack with\n" - "the beak acting as a drill."); + "A corkscrewing attack with\n" + "the beak acting as a drill."); static const u8 sSubmissionDescription[] = _( - "A reckless body slam that\n" - "also hurts the user."); + "A reckless body slam that\n" + "also hurts the user."); static const u8 sLowKickDescription[] = _( - "A kick that inflicts more\n" - "damage on heavier foes."); + "A kick that inflicts more\n" + "damage on heavier foes."); static const u8 sCounterDescription[] = _( - "Retaliates any physical hit\n" - "with double the power."); + "Retaliates any physical hit\n" + "with double the power."); static const u8 sSeismicTossDescription[] = _( - "Inflicts damage identical\n" - "to the user’s level."); + "Inflicts damage identical\n" + "to the user's level."); static const u8 sStrengthDescription[] = _( - "Builds enormous power,\n" - "then slams the foe."); + "Builds enormous power,\n" + "then slams the foe."); static const u8 sAbsorbDescription[] = _( - "An attack that absorbs\n" - "half the damage inflicted."); + "An attack that absorbs\n" + "half the damage inflicted."); static const u8 sMegaDrainDescription[] = _( - "An attack that absorbs\n" - "half the damage inflicted."); + "An attack that absorbs\n" + "half the damage inflicted."); static const u8 sLeechSeedDescription[] = _( - "Plants a seed on the foe to\n" - "steal HP on every turn."); + "Plants a seed on the foe to\n" + "steal HP on every turn."); static const u8 sGrowthDescription[] = _( - "Forces the body to grow\n" - "and heightens SP. ATK."); + "Forces the body to grow\n" + "and heightens SP. ATK."); static const u8 sRazorLeafDescription[] = _( - "Cuts the enemy with leaves.\n" - "High critical-hit ratio."); + "Cuts the enemy with leaves.\n" + "High critical-hit ratio."); static const u8 sSolarBeamDescription[] = _( - "Absorbs light in one turn,\n" - "then attacks next turn."); + "Absorbs light in one turn,\n" + "then attacks next turn."); static const u8 sPoisonPowderDescription[] = _( - "Scatters a toxic powder\n" - "that may poison the foe."); + "Scatters a toxic powder\n" + "that may poison the foe."); static const u8 sStunSporeDescription[] = _( - "Scatters a powder that may\n" - "paralyze the foe."); + "Scatters a powder that may\n" + "paralyze the foe."); static const u8 sSleepPowderDescription[] = _( - "Scatters a powder that may\n" - "cause the foe to sleep."); + "Scatters a powder that may\n" + "cause the foe to sleep."); static const u8 sPetalDanceDescription[] = _( - "A rampage of 2 to 3 turns\n" - "that confuses the user."); + "A rampage of 2 to 3 turns\n" + "that confuses the user."); static const u8 sStringShotDescription[] = _( - "Binds the foe with string\n" - "to reduce its SPEED."); + "Binds the foe with string\n" + "to reduce its SPEED."); static const u8 sDragonRageDescription[] = _( - "Launches shock waves that\n" - "always inflict 40 HP damage."); + "Launches shock waves that\n" + "always inflict 40 HP damage."); static const u8 sFireSpinDescription[] = _( - "Traps the foe in a ring of\n" - "fire for 2 to 5 turns."); + "Traps the foe in a ring of\n" + "fire for 2 to 5 turns."); static const u8 sThunderShockDescription[] = _( - "An electrical attack that\n" - "may paralyze the foe."); + "An electrical attack that\n" + "may paralyze the foe."); static const u8 sThunderboltDescription[] = _( - "A strong electrical attack\n" - "that may paralyze the foe."); + "A strong electrical attack\n" + "that may paralyze the foe."); static const u8 sThunderWaveDescription[] = _( - "A weak jolt of electricity\n" - "that paralyzes the foe."); + "A weak jolt of electricity\n" + "that paralyzes the foe."); static const u8 sThunderDescription[] = _( - "A lightning attack that may\n" - "cause paralysis."); + "A lightning attack that may\n" + "cause paralysis."); static const u8 sRockThrowDescription[] = _( - "Throws small rocks to\n" - "strike the foe."); + "Throws small rocks to\n" + "strike the foe."); static const u8 sEarthquakeDescription[] = _( - "A powerful quake, but has\n" - "no effect on flying foes."); + "A powerful quake, but has\n" + "no effect on flying foes."); static const u8 sFissureDescription[] = _( - "A one-hit KO move that\n" - "drops the foe in a fissure."); + "A one-hit KO move that\n" + "drops the foe in a fissure."); static const u8 sDigDescription[] = _( - "Digs underground the first\n" - "turn and strikes next turn."); + "Digs underground the first\n" + "turn and strikes next turn."); static const u8 sToxicDescription[] = _( - "Poisons the foe with an\n" - "intensifying toxin."); + "Poisons the foe with an\n" + "intensifying toxin."); static const u8 sConfusionDescription[] = _( - "A psychic attack that may\n" - "cause confusion."); + "A psychic attack that may\n" + "cause confusion."); static const u8 sPsychicDescription[] = _( - "A powerful psychic attack\n" - "that may lower SP. DEF."); + "A powerful psychic attack\n" + "that may lower SP. DEF."); static const u8 sHypnosisDescription[] = _( - "A hypnotizing move that\n" - "may induce sleep."); + "A hypnotizing move that\n" + "may induce sleep."); static const u8 sMeditateDescription[] = _( - "Meditates in a peaceful\n" - "fashion to raise ATTACK."); + "Meditates in a peaceful\n" + "fashion to raise ATTACK."); static const u8 sAgilityDescription[] = _( - "Relaxes the body to sharply\n" - "boost SPEED."); + "Relaxes the body to sharply\n" + "boost SPEED."); static const u8 sQuickAttackDescription[] = _( - "An extremely fast attack\n" - "that always strikes first."); + "An extremely fast attack\n" + "that always strikes first."); static const u8 sRageDescription[] = _( - "Raises the user’s ATTACK\n" - "every time it is hit."); + "Raises the user's ATTACK\n" + "every time it is hit."); static const u8 sTeleportDescription[] = _( - "A psychic move for fleeing\n" - "from battle instantly."); + "A psychic move for fleeing\n" + "from battle instantly."); static const u8 sNightShadeDescription[] = _( - "Inflicts damage identical\n" - "to the user’s level."); + "Inflicts damage identical\n" + "to the user's level."); static const u8 sMimicDescription[] = _( - "Copies a move used by the\n" - "foe during one battle."); + "Copies a move used by the\n" + "foe during one battle."); static const u8 sScreechDescription[] = _( - "Emits a screech to sharply\n" - "reduce the foe’s DEFENSE."); + "Emits a screech to sharply\n" + "reduce the foe's DEFENSE."); static const u8 sDoubleTeamDescription[] = _( - "Creates illusory copies to\n" - "raise evasiveness."); + "Creates illusory copies to\n" + "raise evasiveness."); static const u8 sRecoverDescription[] = _( - "Recovers up to half the\n" - "user’s maximum HP."); + "Recovers up to half the\n" + "user's maximum HP."); static const u8 sHardenDescription[] = _( - "Stiffens the body’s \n" - "muscles to raise DEFENSE."); + "Stiffens the body's \n" + "muscles to raise DEFENSE."); static const u8 sMinimizeDescription[] = _( - "Minimizes the user’s size\n" - "to raise evasiveness."); + "Minimizes the user's size\n" + "to raise evasiveness."); static const u8 sSmokescreenDescription[] = _( - "Lowers the foe’s accuracy\n" - "using smoke, ink, etc."); + "Lowers the foe's accuracy\n" + "using smoke, ink, etc."); static const u8 sConfuseRayDescription[] = _( - "A sinister ray that\n" - "confuses the foe."); + "A sinister ray that\n" + "confuses the foe."); static const u8 sWithdrawDescription[] = _( - "Withdraws the body into its\n" - "hard shell to raise DEFENSE."); + "Withdraws the body into its\n" + "hard shell to raise DEFENSE."); static const u8 sDefenseCurlDescription[] = _( - "Curls up to conceal weak\n" - "spots and raise DEFENSE."); + "Curls up to conceal weak\n" + "spots and raise DEFENSE."); static const u8 sBarrierDescription[] = _( - "Creates a barrier that\n" - "sharply raises DEFENSE."); + "Creates a barrier that\n" + "sharply raises DEFENSE."); static const u8 sLightScreenDescription[] = _( - "Creates a wall of light that\n" - "lowers SP. ATK damage."); + "Creates a wall of light that\n" + "lowers SP. ATK damage."); static const u8 sHazeDescription[] = _( - "Creates a black haze that\n" - "eliminates all stat changes."); + "Creates a black haze that\n" + "eliminates all stat changes."); static const u8 sReflectDescription[] = _( - "Creates a wall of light that\n" - "weakens physical attacks."); + "Creates a wall of light that\n" + "weakens physical attacks."); static const u8 sFocusEnergyDescription[] = _( - "Focuses power to raise the\n" - "critical-hit ratio."); + "Focuses power to raise the\n" + "critical-hit ratio."); static const u8 sBideDescription[] = _( - "Endures attack for 2\n" - "turns to retaliate double."); + "Endures attack for 2\n" + "turns to retaliate double."); static const u8 sMetronomeDescription[] = _( - "Waggles a finger to use any\n" - "POKéMON move at random."); + "Waggles a finger to use any\n" + "POKéMON move at random."); static const u8 sMirrorMoveDescription[] = _( - "Counters the foe’s attack\n" - "with the same move."); + "Counters the foe's attack\n" + "with the same move."); static const u8 sSelfDestructDescription[] = _( - "Inflicts severe damage but\n" - "makes the user faint."); + "Inflicts severe damage but\n" + "makes the user faint."); static const u8 sEggBombDescription[] = _( - "An egg is forcibly hurled at\n" - "the foe."); + "An egg is forcibly hurled at\n" + "the foe."); static const u8 sLickDescription[] = _( - "Licks with a long tongue to\n" - "injure. May also paralyze."); + "Licks with a long tongue to\n" + "injure. May also paralyze."); static const u8 sSmogDescription[] = _( - "An exhaust-gas attack\n" - "that may also poison."); + "An exhaust-gas attack\n" + "that may also poison."); static const u8 sSludgeDescription[] = _( - "Sludge is hurled to inflict\n" - "damage. May also poison."); + "Sludge is hurled to inflict\n" + "damage. May also poison."); static const u8 sBoneClubDescription[] = _( - "Clubs the foe with a bone.\n" - "May cause flinching."); + "Clubs the foe with a bone.\n" + "May cause flinching."); static const u8 sFireBlastDescription[] = _( - "Incinerates everything it\n" - "strikes. May cause a burn."); + "Incinerates everything it\n" + "strikes. May cause a burn."); static const u8 sWaterfallDescription[] = _( - "Charges the foe with speed\n" - "to climb waterfalls."); + "Charges the foe with speed\n" + "to climb waterfalls."); static const u8 sClampDescription[] = _( - "Traps and squeezes the\n" - "foe for 2 to 5 turns."); + "Traps and squeezes the\n" + "foe for 2 to 5 turns."); static const u8 sSwiftDescription[] = _( - "Sprays star-shaped rays\n" - "that never miss."); + "Sprays star-shaped rays\n" + "that never miss."); static const u8 sSkullBashDescription[] = _( - "Tucks in the head, then\n" - "attacks on the next turn."); + "Tucks in the head, then\n" + "attacks on the next turn."); static const u8 sSpikeCannonDescription[] = _( - "Launches sharp spikes that\n" - "strike 2 to 5 times."); + "Launches sharp spikes that\n" + "strike 2 to 5 times."); static const u8 sConstrictDescription[] = _( - "Constricts to inflict pain.\n" - "May lower SPEED."); + "Constricts to inflict pain.\n" + "May lower SPEED."); static const u8 sAmnesiaDescription[] = _( - "Forgets about something\n" - "and sharply raises SP. DEF."); + "Forgets about something\n" + "and sharply raises SP. DEF."); static const u8 sKinesisDescription[] = _( - "Distracts the foe.\n" - "May lower accuracy."); + "Distracts the foe.\n" + "May lower accuracy."); static const u8 sSoftBoiledDescription[] = _( - "Recovers up to half the\n" - "user’s maximum HP."); + "Recovers up to half the\n" + "user's maximum HP."); static const u8 sHiJumpKickDescription[] = _( - "A jumping knee kick. If it\n" - "misses, the user is hurt."); + "A jumping knee kick. If it\n" + "misses, the user is hurt."); static const u8 sGlareDescription[] = _( - "Intimidates and frightens\n" - "the foe into paralysis."); + "Intimidates and frightens\n" + "the foe into paralysis."); static const u8 sDreamEaterDescription[] = _( - "Takes one half the damage\n" - "inflicted on a sleeping foe."); + "Takes one half the damage\n" + "inflicted on a sleeping foe."); static const u8 sPoisonGasDescription[] = _( - "Envelops the foe in a toxic\n" - "gas that may poison."); + "Envelops the foe in a toxic\n" + "gas that may poison."); static const u8 sBarrageDescription[] = _( - "Hurls round objects at the\n" - "foe 2 to 5 times."); + "Hurls round objects at the\n" + "foe 2 to 5 times."); static const u8 sLeechLifeDescription[] = _( - "An attack that steals half\n" - "the damage inflicted."); + "An attack that steals half\n" + "the damage inflicted."); static const u8 sLovelyKissDescription[] = _( - "Demands a kiss with a scary\n" - "face that induces sleep."); + "Demands a kiss with a scary\n" + "face that induces sleep."); static const u8 sSkyAttackDescription[] = _( - "Searches out weak spots,\n" - "then strikes the next turn."); + "Searches out weak spots,\n" + "then strikes the next turn."); static const u8 sTransformDescription[] = _( - "Alters the user’s cells to\n" - "become a copy of the foe."); + "Alters the user's cells to\n" + "become a copy of the foe."); static const u8 sBubbleDescription[] = _( - "An attack using bubbles.\n" - "May lower the foe’s SPEED."); + "An attack using bubbles.\n" + "May lower the foe's SPEED."); static const u8 sDizzyPunchDescription[] = _( - "A rhythmic punch that may\n" - "confuse the foe."); + "A rhythmic punch that may\n" + "confuse the foe."); static const u8 sSporeDescription[] = _( - "Scatters a cloud of spores\n" - "that always induce sleep."); + "Scatters a cloud of spores\n" + "that always induce sleep."); static const u8 sFlashDescription[] = _( - "Looses a powerful blast of\n" - "light that cuts accuracy."); + "Looses a powerful blast of\n" + "light that cuts accuracy."); static const u8 sPsywaveDescription[] = _( - "Attacks with a psychic\n" - "wave of varying intensity."); + "Attacks with a psychic\n" + "wave of varying intensity."); static const u8 sSplashDescription[] = _( - "It’s just a splash...\n" - "Has no effect whatsoever."); + "It's just a splash...\n" + "Has no effect whatsoever."); static const u8 sAcidArmorDescription[] = _( - "Liquifies the user’s body\n" - "to sharply raise DEFENSE."); + "Liquifies the user's body\n" + "to sharply raise DEFENSE."); static const u8 sCrabhammerDescription[] = _( - "Hammers with a pincer. Has a\n" - "high critical-hit ratio."); + "Hammers with a pincer. Has a\n" + "high critical-hit ratio."); static const u8 sExplosionDescription[] = _( - "Inflicts severe damage but\n" - "makes the user faint."); + "Inflicts severe damage but\n" + "makes the user faint."); static const u8 sFurySwipesDescription[] = _( - "Rakes the foe with sharp\n" - "claws, etc., 2 to 5 times."); + "Rakes the foe with sharp\n" + "claws, etc., 2 to 5 times."); static const u8 sBonemerangDescription[] = _( - "Throws a bone boomerang\n" - "that strikes twice."); + "Throws a bone boomerang\n" + "that strikes twice."); static const u8 sRestDescription[] = _( - "The user sleeps for 2 turns,\n" - "restoring HP and status."); + "The user sleeps for 2 turns,\n" + "restoring HP and status."); static const u8 sRockSlideDescription[] = _( - "Large boulders are hurled.\n" - "May cause flinching."); + "Large boulders are hurled.\n" + "May cause flinching."); static const u8 sHyperFangDescription[] = _( - "Attacks with sharp fangs.\n" - "May cause flinching."); + "Attacks with sharp fangs.\n" + "May cause flinching."); static const u8 sSharpenDescription[] = _( - "Reduces the polygon count\n" - "and raises ATTACK."); + "Reduces the polygon count\n" + "and raises ATTACK."); static const u8 sConversionDescription[] = _( - "Changes the user’s type\n" - "into a known move’s type."); + "Changes the user's type\n" + "into a known move's type."); static const u8 sTriAttackDescription[] = _( - "Fires three types of beams\n" - "at the same time."); + "Fires three types of beams\n" + "at the same time."); static const u8 sSuperFangDescription[] = _( - "Attacks with sharp fangs\n" - "and cuts half the foe’s HP."); + "Attacks with sharp fangs\n" + "and cuts half the foe's HP."); static const u8 sSlashDescription[] = _( - "Slashes with claws, etc. Has\n" - "a high critical-hit ratio."); + "Slashes with claws, etc. Has\n" + "a high critical-hit ratio."); static const u8 sSubstituteDescription[] = _( - "Creates a decoy using 1/4\n" - "of the user’s maximum HP."); + "Creates a decoy using 1/4\n" + "of the user's maximum HP."); static const u8 sStruggleDescription[] = _( - "Used only if all PP are gone.\n" - "Also hurts the user a little."); + "Used only if all PP are gone.\n" + "Also hurts the user a little."); static const u8 sSketchDescription[] = _( - "Copies the foe’s last move\n" - "permanently."); + "Copies the foe's last move\n" + "permanently."); static const u8 sTripleKickDescription[] = _( - "Kicks the foe 3 times in a\n" - "row with rising intensity."); + "Kicks the foe 3 times in a\n" + "row with rising intensity."); static const u8 sThiefDescription[] = _( - "While attacking, it may\n" - "steal the foe’s held item."); + "While attacking, it may\n" + "steal the foe's held item."); static const u8 sSpiderWebDescription[] = _( - "Ensnares the foe to stop it\n" - "from fleeing or switching."); + "Ensnares the foe to stop it\n" + "from fleeing or switching."); static const u8 sMindReaderDescription[] = _( - "Senses the foe’s action to\n" - "ensure the next move’s hit."); + "Senses the foe's action to\n" + "ensure the next move's hit."); static const u8 sNightmareDescription[] = _( - "Inflicts 1/4 damage on a\n" - "sleeping foe every turn."); + "Inflicts 1/4 damage on a\n" + "sleeping foe every turn."); static const u8 sFlameWheelDescription[] = _( - "A fiery charge attack that\n" - "may inflict a burn."); + "A fiery charge attack that\n" + "may inflict a burn."); static const u8 sSnoreDescription[] = _( - "A loud attack that can be\n" - "used only while asleep."); + "A loud attack that can be\n" + "used only while asleep."); static const u8 sCurseDescription[] = _( - "A move that functions\n" - "differently for GHOSTS."); + "A move that functions\n" + "differently for GHOSTS."); static const u8 sFlailDescription[] = _( - "Inflicts more damage when\n" - "the user’s HP is down."); + "Inflicts more damage when\n" + "the user's HP is down."); static const u8 sConversion2Description[] = _( - "Makes the user resistant\n" - "to the last attack’s type."); + "Makes the user resistant\n" + "to the last attack's type."); static const u8 sAeroblastDescription[] = _( - "Launches a vacuumed blast.\n" - "High critical-hit ratio."); + "Launches a vacuumed blast.\n" + "High critical-hit ratio."); static const u8 sCottonSporeDescription[] = _( - "Spores cling to the foe,\n" - "sharply reducing SPEED."); + "Spores cling to the foe,\n" + "sharply reducing SPEED."); static const u8 sReversalDescription[] = _( - "Inflicts more damage when\n" - "the user’s HP is down."); + "Inflicts more damage when\n" + "the user's HP is down."); static const u8 sSpiteDescription[] = _( - "Spitefully cuts the PP\n" - "of the foe’s last move."); + "Spitefully cuts the PP\n" + "of the foe's last move."); static const u8 sPowderSnowDescription[] = _( - "Blasts the foe with a snowy\n" - "gust. May cause freezing."); + "Blasts the foe with a snowy\n" + "gust. May cause freezing."); static const u8 sProtectDescription[] = _( - "Evades attack, but may fail\n" - "if used in succession."); + "Evades attack, but may fail\n" + "if used in succession."); static const u8 sMachPunchDescription[] = _( - "A punch is thrown at wicked\n" - "speed to strike first."); + "A punch is thrown at wicked\n" + "speed to strike first."); static const u8 sScaryFaceDescription[] = _( - "Frightens with a scary face\n" - "to sharply reduce SPEED."); + "Frightens with a scary face\n" + "to sharply reduce SPEED."); static const u8 sFaintAttackDescription[] = _( - "Draws the foe close, then\n" - "strikes without fail."); + "Draws the foe close, then\n" + "strikes without fail."); static const u8 sSweetKissDescription[] = _( - "Demands a kiss with a cute\n" - "look. May cause confusion."); + "Demands a kiss with a cute\n" + "look. May cause confusion."); static const u8 sBellyDrumDescription[] = _( - "Maximizes ATTACK while\n" - "sacrificing HP."); + "Maximizes ATTACK while\n" + "sacrificing HP."); static const u8 sSludgeBombDescription[] = _( - "Sludge is hurled to inflict\n" - "damage. May also poison."); + "Sludge is hurled to inflict\n" + "damage. May also poison."); static const u8 sMudSlapDescription[] = _( - "Hurls mud in the foe’s face\n" - "to reduce its accuracy."); + "Hurls mud in the foe's face\n" + "to reduce its accuracy."); static const u8 sOctazookaDescription[] = _( - "Fires a lump of ink to\n" - "damage and cut accuracy."); + "Fires a lump of ink to\n" + "damage and cut accuracy."); static const u8 sSpikesDescription[] = _( - "Sets spikes that hurt a \n" - "foe switching in."); + "Sets spikes that hurt a \n" + "foe switching in."); static const u8 sZapCannonDescription[] = _( - "Powerful and sure to cause\n" - "paralysis, but inaccurate."); + "Powerful and sure to cause\n" + "paralysis, but inaccurate."); static const u8 sForesightDescription[] = _( - "Negates the foe’s efforts\n" - "to heighten evasiveness."); + "Negates the foe's efforts\n" + "to heighten evasiveness."); static const u8 sDestinyBondDescription[] = _( - "If the user faints, the foe\n" - "is also made to faint."); + "If the user faints, the foe\n" + "is also made to faint."); static const u8 sPerishSongDescription[] = _( - "Any POKéMON hearing this\n" - "song faints in 3 turns."); + "Any POKéMON hearing this\n" + "song faints in 3 turns."); static const u8 sIcyWindDescription[] = _( - "A chilling attack that\n" - "lowers the foe’s SPEED."); + "A chilling attack that\n" + "lowers the foe's SPEED."); static const u8 sDetectDescription[] = _( - "Evades attack, but may fail\n" - "if used in succession."); + "Evades attack, but may fail\n" + "if used in succession."); static const u8 sBoneRushDescription[] = _( - "Strikes the foe with a bone\n" - "in hand 2 to 5 times."); + "Strikes the foe with a bone\n" + "in hand 2 to 5 times."); static const u8 sLockOnDescription[] = _( - "Locks on to the foe to\n" - "ensure the next move hits."); + "Locks on to the foe to\n" + "ensure the next move hits."); static const u8 sOutrageDescription[] = _( - "A rampage of 2 to 3 turns\n" - "that confuses the user."); + "A rampage of 2 to 3 turns\n" + "that confuses the user."); static const u8 sSandstormDescription[] = _( - "Causes a sandstorm that\n" - "rages for several turns."); + "Causes a sandstorm that\n" + "rages for several turns."); static const u8 sGigaDrainDescription[] = _( - "An attack that steals half\n" - "the damage inflicted."); + "An attack that steals half\n" + "the damage inflicted."); static const u8 sEndureDescription[] = _( - "Endures any attack for\n" - "1 turn, leaving at least 1HP."); + "Endures any attack for\n" + "1 turn, leaving at least 1HP."); static const u8 sCharmDescription[] = _( - "Charms the foe and sharply\n" - "reduces its ATTACK."); + "Charms the foe and sharply\n" + "reduces its ATTACK."); static const u8 sRolloutDescription[] = _( - "An attack lasting 5 turns\n" - "with rising intensity."); + "An attack lasting 5 turns\n" + "with rising intensity."); static const u8 sFalseSwipeDescription[] = _( - "An attack that leaves the\n" - "foe with at least 1 HP."); + "An attack that leaves the\n" + "foe with at least 1 HP."); static const u8 sSwaggerDescription[] = _( - "Confuses the foe, but also\n" - "sharply raises ATTACK."); + "Confuses the foe, but also\n" + "sharply raises ATTACK."); static const u8 sMilkDrinkDescription[] = _( - "Recovers up to half the\n" - "user’s maximum HP."); + "Recovers up to half the\n" + "user's maximum HP."); static const u8 sSparkDescription[] = _( - "An electrified tackle that\n" - "may paralyze the foe."); + "An electrified tackle that\n" + "may paralyze the foe."); static const u8 sFuryCutterDescription[] = _( - "An attack that intensifies\n" - "on each successive hit."); + "An attack that intensifies\n" + "on each successive hit."); static const u8 sSteelWingDescription[] = _( - "Strikes the foe with hard\n" - "wings spread wide."); + "Strikes the foe with hard\n" + "wings spread wide."); static const u8 sMeanLookDescription[] = _( - "Fixes the foe with a mean\n" - "look that prevents escape."); + "Fixes the foe with a mean\n" + "look that prevents escape."); static const u8 sAttractDescription[] = _( - "Makes the opposite gender\n" - "less likely to attack."); + "Makes the opposite gender\n" + "less likely to attack."); static const u8 sSleepTalkDescription[] = _( - "Uses an available move\n" - "randomly while asleep."); + "Uses an available move\n" + "randomly while asleep."); static const u8 sHealBellDescription[] = _( - "Chimes soothingly to heal\n" - "all status abnormalities."); + "Chimes soothingly to heal\n" + "all status abnormalities."); static const u8 sReturnDescription[] = _( - "An attack that increases\n" - "in power with friendship."); + "An attack that increases\n" + "in power with friendship."); static const u8 sPresentDescription[] = _( - "A gift in the form of a\n" - "bomb. May restore HP."); + "A gift in the form of a\n" + "bomb. May restore HP."); static const u8 sFrustrationDescription[] = _( - "An attack that is stronger\n" - "if the TRAINER is disliked."); + "An attack that is stronger\n" + "if the TRAINER is disliked."); static const u8 sSafeguardDescription[] = _( - "A mystical force prevents\n" - "all status problems."); + "A mystical force prevents\n" + "all status problems."); static const u8 sPainSplitDescription[] = _( - "Adds the user and foe’s HP,\n" - "then shares them equally."); + "Adds the user and foe's HP,\n" + "then shares them equally."); static const u8 sSacredFireDescription[] = _( - "A mystical fire attack that\n" - "may inflict a burn."); + "A mystical fire attack that\n" + "may inflict a burn."); static const u8 sMagnitudeDescription[] = _( - "A ground-shaking attack\n" - "of random intensity."); + "A ground-shaking attack\n" + "of random intensity."); static const u8 sDynamicPunchDescription[] = _( - "Powerful and sure to cause\n" - "confusion, but inaccurate."); + "Powerful and sure to cause\n" + "confusion, but inaccurate."); static const u8 sMegahornDescription[] = _( - "A brutal ramming attack\n" - "using out-thrust horns."); + "A brutal ramming attack\n" + "using out-thrust horns."); static const u8 sDragonBreathDescription[] = _( - "Strikes the foe with an\n" - "incredible blast of breath."); + "Strikes the foe with an\n" + "incredible blast of breath."); static const u8 sBatonPassDescription[] = _( - "Switches out the user while\n" - "keeping effects in play."); + "Switches out the user while\n" + "keeping effects in play."); static const u8 sEncoreDescription[] = _( - "Makes the foe repeat its\n" - "last move over 2 to 6 turns."); + "Makes the foe repeat its\n" + "last move over 2 to 6 turns."); static const u8 sPursuitDescription[] = _( - "Inflicts bad damage if used\n" - "on a foe switching out."); + "Inflicts bad damage if used\n" + "on a foe switching out."); static const u8 sRapidSpinDescription[] = _( - "Spins the body at high\n" - "speed to strike the foe."); + "Spins the body at high\n" + "speed to strike the foe."); static const u8 sSweetScentDescription[] = _( - "Allures the foe to reduce\n" - "evasiveness."); + "Allures the foe to reduce\n" + "evasiveness."); static const u8 sIronTailDescription[] = _( - "Attacks with a rock-hard\n" - "tail. May lower DEFENSE."); + "Attacks with a rock-hard\n" + "tail. May lower DEFENSE."); static const u8 sMetalClawDescription[] = _( - "A claw attack that may\n" - "raise the user’s ATTACK."); + "A claw attack that may\n" + "raise the user's ATTACK."); static const u8 sVitalThrowDescription[] = _( - "Makes the user’s move last,\n" - "but it never misses."); + "Makes the user's move last,\n" + "but it never misses."); static const u8 sMorningSunDescription[] = _( - "Restores HP. The amount\n" - "varies with the weather."); + "Restores HP. The amount\n" + "varies with the weather."); static const u8 sSynthesisDescription[] = _( - "Restores HP. The amount\n" - "varies with the weather."); + "Restores HP. The amount\n" + "varies with the weather."); static const u8 sMoonlightDescription[] = _( - "Restores HP. The amount\n" - "varies with the weather."); + "Restores HP. The amount\n" + "varies with the weather."); static const u8 sHiddenPowerDescription[] = _( - "The effectiveness varies\n" - "with the user."); + "The effectiveness varies\n" + "with the user."); static const u8 sCrossChopDescription[] = _( - "A double-chopping attack.\n" - "High critical-hit ratio."); + "A double-chopping attack.\n" + "High critical-hit ratio."); static const u8 sTwisterDescription[] = _( - "Whips up a vicious twister\n" - "to tear at the foe."); + "Whips up a vicious twister\n" + "to tear at the foe."); static const u8 sRainDanceDescription[] = _( - "Boosts the power of WATER-\n" - "type moves for 5 turns."); + "Boosts the power of WATER-\n" + "type moves for 5 turns."); static const u8 sSunnyDayDescription[] = _( - "Boosts the power of FIRE-\n" - "type moves for 5 turns."); + "Boosts the power of FIRE-\n" + "type moves for 5 turns."); static const u8 sCrunchDescription[] = _( - "Crunches with sharp fangs.\n" - "May lower SP. DEF."); + "Crunches with sharp fangs.\n" + "May lower SP. DEF."); static const u8 sMirrorCoatDescription[] = _( - "Counters the foe’s special\n" - "attack at double the power."); + "Counters the foe's special\n" + "attack at double the power."); static const u8 sPsychUpDescription[] = _( - "Copies the foe’s effect(s)\n" - "and gives to the user."); + "Copies the foe's effect(s)\n" + "and gives to the user."); static const u8 sExtremeSpeedDescription[] = _( - "An extremely fast and\n" - "powerful attack."); + "An extremely fast and\n" + "powerful attack."); static const u8 sAncientPowerDescription[] = _( - "An attack that may raise\n" - "all stats."); + "An attack that may raise\n" + "all stats."); static const u8 sShadowBallDescription[] = _( - "Hurls a black blob that may\n" - "lower the foe’s SP. DEF."); + "Hurls a black blob that may\n" + "lower the foe's SP. DEF."); static const u8 sFutureSightDescription[] = _( - "Heightens inner power to\n" - "strike 2 turns later."); + "Heightens inner power to\n" + "strike 2 turns later."); static const u8 sRockSmashDescription[] = _( - "A rock-crushing attack\n" - "that may lower DEFENSE."); + "A rock-crushing attack\n" + "that may lower DEFENSE."); static const u8 sWhirlpoolDescription[] = _( - "Traps and hurts the foe in\n" - "a whirlpool for 2 to 5 turns."); + "Traps and hurts the foe in\n" + "a whirlpool for 2 to 5 turns."); static const u8 sBeatUpDescription[] = _( - "Summons party POKéMON to\n" - "join in the attack."); + "Summons party POKéMON to\n" + "join in the attack."); static const u8 sFakeOutDescription[] = _( - "A 1st-turn, 1st-strike move\n" - "that causes flinching."); + "A 1st-turn, 1st-strike move\n" + "that causes flinching."); static const u8 sUproarDescription[] = _( - "Causes an uproar for 2 to 5\n" - "turns and prevents sleep."); + "Causes an uproar for 2 to 5\n" + "turns and prevents sleep."); static const u8 sStockpileDescription[] = _( - "Charges up power for up to\n" - "3 turns."); + "Charges up power for up to\n" + "3 turns."); static const u8 sSpitUpDescription[] = _( - "Releases stockpiled power\n" - "(the more the better)."); + "Releases stockpiled power\n" + "(the more the better)."); static const u8 sSwallowDescription[] = _( - "Absorbs stockpiled power\n" - "and restores HP."); + "Absorbs stockpiled power\n" + "and restores HP."); static const u8 sHeatWaveDescription[] = _( - "Exhales a hot breath on the\n" - "foe. May inflict a burn."); + "Exhales a hot breath on the\n" + "foe. May inflict a burn."); static const u8 sHailDescription[] = _( - "Summons a hailstorm that\n" - "strikes every turn."); + "Summons a hailstorm that\n" + "strikes every turn."); static const u8 sTormentDescription[] = _( - "Torments the foe and stops\n" - "successive use of a move."); + "Torments the foe and stops\n" + "successive use of a move."); static const u8 sFlatterDescription[] = _( - "Confuses the foe, but\n" - "raises its SP. ATK."); + "Confuses the foe, but\n" + "raises its SP. ATK."); static const u8 sWillOWispDescription[] = _( - "Inflicts a burn on the foe\n" - "with intense fire."); + "Inflicts a burn on the foe\n" + "with intense fire."); static const u8 sMementoDescription[] = _( - "The user faints and lowers\n" - "the foe’s abilities."); + "The user faints and lowers\n" + "the foe's abilities."); static const u8 sFacadeDescription[] = _( - "Boosts ATTACK when burned,\n" - "paralyzed, or poisoned."); + "Boosts ATTACK when burned,\n" + "paralyzed, or poisoned."); static const u8 sFocusPunchDescription[] = _( - "A powerful loyalty attack.\n" - "The user flinches if hit."); + "A powerful loyalty attack.\n" + "The user flinches if hit."); static const u8 sSmellingSaltDescription[] = _( - "Powerful against paralyzed\n" - "foes, but also heals them."); + "Powerful against paralyzed\n" + "foes, but also heals them."); static const u8 sFollowMeDescription[] = _( - "Draws attention to make\n" - "foes attack only the user."); + "Draws attention to make\n" + "foes attack only the user."); static const u8 sNaturePowerDescription[] = _( - "The type of attack varies\n" - "depending on the location."); + "The type of attack varies\n" + "depending on the location."); static const u8 sChargeDescription[] = _( - "Charges power to boost the\n" - "electric move used next."); + "Charges power to boost the\n" + "electric move used next."); static const u8 sTauntDescription[] = _( - "Taunts the foe into only\n" - "using attack moves."); + "Taunts the foe into only\n" + "using attack moves."); static const u8 sHelpingHandDescription[] = _( - "Boosts the power of the\n" - "recipient’s moves."); + "Boosts the power of the\n" + "recipient's moves."); static const u8 sTrickDescription[] = _( - "Tricks the foe into trading\n" - "held items."); + "Tricks the foe into trading\n" + "held items."); static const u8 sRolePlayDescription[] = _( - "Mimics the target and\n" - "copies its special ability."); + "Mimics the target and\n" + "copies its special ability."); static const u8 sWishDescription[] = _( - "A wish that restores HP.\n" - "It takes time to work."); + "A wish that restores HP.\n" + "It takes time to work."); static const u8 sAssistDescription[] = _( - "Attacks randomly with one\n" - "of the partner’s moves."); + "Attacks randomly with one\n" + "of the partner's moves."); static const u8 sIngrainDescription[] = _( - "Lays roots that restore HP.\n" - "The user can’t switch out."); + "Lays roots that restore HP.\n" + "The user can't switch out."); static const u8 sSuperpowerDescription[] = _( - "Boosts strength sharply,\n" - "but lowers abilities."); + "Boosts strength sharply,\n" + "but lowers abilities."); static const u8 sMagicCoatDescription[] = _( - "Reflects special effects\n" - "back to the attacker."); + "Reflects special effects\n" + "back to the attacker."); static const u8 sRecycleDescription[] = _( - "Recycles a used item for\n" - "one more use."); + "Recycles a used item for\n" + "one more use."); static const u8 sRevengeDescription[] = _( - "An attack that gains power\n" - "if injured by the foe."); + "An attack that gains power\n" + "if injured by the foe."); static const u8 sBrickBreakDescription[] = _( - "Destroys barriers such as\n" - "REFLECT and causes damage."); + "Destroys barriers such as\n" + "REFLECT and causes damage."); static const u8 sYawnDescription[] = _( - "Lulls the foe into yawning,\n" - "then sleeping next turn."); + "Lulls the foe into yawning,\n" + "then sleeping next turn."); static const u8 sKnockOffDescription[] = _( - "Knocks down the foe’s held\n" - "item to prevent its use."); + "Knocks down the foe's held\n" + "item to prevent its use."); static const u8 sEndeavorDescription[] = _( - "Gains power if the user’s HP\n" - "is lower than the foe’s HP."); + "Gains power if the user's HP\n" + "is lower than the foe's HP."); static const u8 sEruptionDescription[] = _( - "The higher the user’s HP,\n" - "the more damage caused."); + "The higher the user's HP,\n" + "the more damage caused."); static const u8 sSkillSwapDescription[] = _( - "The user swaps special\n" - "abilities with the target."); + "The user swaps special\n" + "abilities with the target."); static const u8 sImprisonDescription[] = _( - "Prevents foes from using\n" - "moves known by the user."); + "Prevents foes from using\n" + "moves known by the user."); static const u8 sRefreshDescription[] = _( - "Heals poisoning, paralysis,\n" - "or a burn."); + "Heals poisoning, paralysis,\n" + "or a burn."); static const u8 sGrudgeDescription[] = _( - "If the user faints, deletes\n" - "all PP of foe’s last move."); + "If the user faints, deletes\n" + "all PP of foe's last move."); static const u8 sSnatchDescription[] = _( - "Steals the effects of the\n" - "move the target uses next."); + "Steals the effects of the\n" + "move the target uses next."); static const u8 sSecretPowerDescription[] = _( - "An attack with effects\n" - "that vary by location."); + "An attack with effects\n" + "that vary by location."); static const u8 sDiveDescription[] = _( - "Dives underwater the first\n" - "turn and strikes next turn."); + "Dives underwater the first\n" + "turn and strikes next turn."); static const u8 sArmThrustDescription[] = _( - "Straight-arm punches that\n" - "strike the foe 2 to 5 times."); + "Straight-arm punches that\n" + "strike the foe 2 to 5 times."); static const u8 sCamouflageDescription[] = _( - "Alters the POKéMON’s type\n" - "depending on the location."); + "Alters the POKéMON's type\n" + "depending on the location."); static const u8 sTailGlowDescription[] = _( - "Flashes a light that sharply\n" - "raises SP. ATK."); + "Flashes a light that sharply\n" + "raises SP. ATK."); static const u8 sLusterPurgeDescription[] = _( - "Attacks with a burst of\n" - "light. May lower SP. DEF."); + "Attacks with a burst of\n" + "light. May lower SP. DEF."); static const u8 sMistBallDescription[] = _( - "Attacks with a flurry of\n" - "down. May lower SP. ATK."); + "Attacks with a flurry of\n" + "down. May lower SP. ATK."); static const u8 sFeatherDanceDescription[] = _( - "Envelops the foe with down\n" - "to sharply reduce ATTACK."); + "Envelops the foe with down\n" + "to sharply reduce ATTACK."); static const u8 sTeeterDanceDescription[] = _( - "Confuses all POKéMON on\n" - "the scene."); + "Confuses all POKéMON on\n" + "the scene."); static const u8 sBlazeKickDescription[] = _( - "A kick with a high critical-\n" - "hit ratio. May cause a burn."); + "A kick with a high critical-\n" + "hit ratio. May cause a burn."); static const u8 sMudSportDescription[] = _( - "Covers the user in mud to\n" - "raise electrical resistance."); + "Covers the user in mud to\n" + "raise electrical resistance."); static const u8 sIceBallDescription[] = _( - "A 5-turn attack that gains\n" - "power on successive hits."); + "A 5-turn attack that gains\n" + "power on successive hits."); static const u8 sNeedleArmDescription[] = _( - "Attacks with thorny arms.\n" - "May cause flinching."); + "Attacks with thorny arms.\n" + "May cause flinching."); static const u8 sSlackOffDescription[] = _( - "Slacks off and restores\n" - "half the maximum HP."); + "Slacks off and restores\n" + "half the maximum HP."); static const u8 sHyperVoiceDescription[] = _( - "A loud attack that uses\n" - "sound waves to injure."); + "A loud attack that uses\n" + "sound waves to injure."); static const u8 sPoisonFangDescription[] = _( - "A sharp-fanged attack.\n" - "May badly poison the foe."); + "A sharp-fanged attack.\n" + "May badly poison the foe."); static const u8 sCrushClawDescription[] = _( - "Tears at the foe with sharp\n" - "claws. May lower DEFENSE."); + "Tears at the foe with sharp\n" + "claws. May lower DEFENSE."); static const u8 sBlastBurnDescription[] = _( - "Powerful, but leaves the\n" - "user immobile the next turn."); + "Powerful, but leaves the\n" + "user immobile the next turn."); static const u8 sHydroCannonDescription[] = _( - "Powerful, but leaves the\n" - "user immobile the next turn."); + "Powerful, but leaves the\n" + "user immobile the next turn."); static const u8 sMeteorMashDescription[] = _( - "Fires a meteor-like punch.\n" - "May raise ATTACK."); + "Fires a meteor-like punch.\n" + "May raise ATTACK."); static const u8 sAstonishDescription[] = _( - "An attack that may shock\n" - "the foe into flinching."); + "An attack that may shock\n" + "the foe into flinching."); static const u8 sWeatherBallDescription[] = _( - "The move’s type and power\n" - "change with the weather."); + "The move's type and power\n" + "change with the weather."); static const u8 sAromatherapyDescription[] = _( - "Heals all status problems\n" - "with a soothing scent."); + "Heals all status problems\n" + "with a soothing scent."); static const u8 sFakeTearsDescription[] = _( - "Feigns crying to sharply\n" - "lower the foe’s SP. DEF."); + "Feigns crying to sharply\n" + "lower the foe's SP. DEF."); static const u8 sAirCutterDescription[] = _( - "Hacks with razorlike wind.\n" - "High critical-hit ratio."); + "Hacks with razorlike wind.\n" + "High critical-hit ratio."); static const u8 sOverheatDescription[] = _( - "Allows a full-power attack,\n" - "but sharply lowers SP. ATK."); + "Allows a full-power attack,\n" + "but sharply lowers SP. ATK."); static const u8 sOdorSleuthDescription[] = _( - "Negates the foe’s efforts\n" - "to heighten evasiveness."); + "Negates the foe's efforts\n" + "to heighten evasiveness."); static const u8 sRockTombDescription[] = _( - "Stops the foe from moving\n" - "with rocks and cuts SPEED."); + "Stops the foe from moving\n" + "with rocks and cuts SPEED."); static const u8 sSilverWindDescription[] = _( - "A powdery attack that may\n" - "raise abilities."); + "A powdery attack that may\n" + "raise abilities."); static const u8 sMetalSoundDescription[] = _( - "Emits a horrible screech\n" - "that sharply lowers SP. DEF."); + "Emits a horrible screech\n" + "that sharply lowers SP. DEF."); static const u8 sGrassWhistleDescription[] = _( - "Lulls the foe into sleep\n" - "with a pleasant melody."); + "Lulls the foe into sleep\n" + "with a pleasant melody."); static const u8 sTickleDescription[] = _( - "Makes the foe laugh to\n" - "lower ATTACK and DEFENSE."); + "Makes the foe laugh to\n" + "lower ATTACK and DEFENSE."); static const u8 sCosmicPowerDescription[] = _( - "Raises DEFENSE and SP. DEF\n" - "with a mystic power."); + "Raises DEFENSE and SP. DEF\n" + "with a mystic power."); static const u8 sWaterSpoutDescription[] = _( - "Inflicts more damage if the\n" - "user’s HP is high."); + "Inflicts more damage if the\n" + "user's HP is high."); static const u8 sSignalBeamDescription[] = _( - "A strange beam attack that\n" - "may confuse the foe."); + "A strange beam attack that\n" + "may confuse the foe."); static const u8 sShadowPunchDescription[] = _( - "An unavoidable punch that\n" - "is thrown from shadows."); + "An unavoidable punch that\n" + "is thrown from shadows."); static const u8 sExtrasensoryDescription[] = _( - "Attacks with a peculiar\n" - "power. May cause flinching."); + "Attacks with a peculiar\n" + "power. May cause flinching."); static const u8 sSkyUppercutDescription[] = _( - "An uppercut thrown as if\n" - "leaping into the sky."); + "An uppercut thrown as if\n" + "leaping into the sky."); static const u8 sSandTombDescription[] = _( - "Traps and hurts the foe in\n" - "quicksand for 2 to 5 turns."); + "Traps and hurts the foe in\n" + "quicksand for 2 to 5 turns."); static const u8 sSheerColdDescription[] = _( - "A chilling attack that\n" - "causes fainting if it hits."); + "A chilling attack that\n" + "causes fainting if it hits."); static const u8 sMuddyWaterDescription[] = _( - "Attacks with muddy water.\n" - "May lower accuracy."); + "Attacks with muddy water.\n" + "May lower accuracy."); static const u8 sBulletSeedDescription[] = _( - "Shoots 2 to 5 seeds in a row\n" - "to strike the foe."); + "Shoots 2 to 5 seeds in a row\n" + "to strike the foe."); static const u8 sAerialAceDescription[] = _( - "An extremely speedy and\n" - "unavoidable attack."); + "An extremely speedy and\n" + "unavoidable attack."); static const u8 sIcicleSpearDescription[] = _( - "Attacks the foe by firing\n" - "2 to 5 icicles in a row."); + "Attacks the foe by firing\n" + "2 to 5 icicles in a row."); static const u8 sIronDefenseDescription[] = _( - "Hardens the body’s surface\n" - "to sharply raise DEFENSE."); + "Hardens the body's surface\n" + "to sharply raise DEFENSE."); static const u8 sBlockDescription[] = _( - "Blocks the foe’s way to\n" - "prevent escape."); + "Blocks the foe's way to\n" + "prevent escape."); static const u8 sHowlDescription[] = _( - "Howls to raise the spirit\n" - "and boosts ATTACK."); + "Howls to raise the spirit\n" + "and boosts ATTACK."); static const u8 sDragonClawDescription[] = _( - "Slashes the foe with sharp\n" - "claws."); + "Slashes the foe with sharp\n" + "claws."); static const u8 sFrenzyPlantDescription[] = _( - "Powerful, but leaves the\n" - "user immobile the next turn."); + "Powerful, but leaves the\n" + "user immobile the next turn."); static const u8 sBulkUpDescription[] = _( - "Bulks up the body to boost\n" - "both ATTACK and DEFENSE."); + "Bulks up the body to boost\n" + "both ATTACK and DEFENSE."); static const u8 sBounceDescription[] = _( - "Bounces up, then down the\n" - "next turn. May paralyze."); + "Bounces up, then down the\n" + "next turn. May paralyze."); static const u8 sMudShotDescription[] = _( - "Hurls mud at the foe and\n" - "reduces SPEED."); + "Hurls mud at the foe and\n" + "reduces SPEED."); static const u8 sPoisonTailDescription[] = _( - "Has a high critical-hit\n" - "ratio. May also poison."); + "Has a high critical-hit\n" + "ratio. May also poison."); static const u8 sCovetDescription[] = _( - "Cutely begs to obtain an\n" - "item held by the foe."); + "Cutely begs to obtain an\n" + "item held by the foe."); static const u8 sVoltTackleDescription[] = _( - "A life-risking tackle that\n" - "slightly hurts the user."); + "A life-risking tackle that\n" + "slightly hurts the user."); static const u8 sMagicalLeafDescription[] = _( - "Attacks with a strange leaf\n" - "that cannot be evaded."); + "Attacks with a strange leaf\n" + "that cannot be evaded."); static const u8 sWaterSportDescription[] = _( - "The user becomes soaked to\n" - "raise resistance to fire."); + "The user becomes soaked to\n" + "raise resistance to fire."); static const u8 sCalmMindDescription[] = _( - "Raises SP. ATK and SP. DEF\n" - "by focusing the mind."); + "Raises SP. ATK and SP. DEF\n" + "by focusing the mind."); static const u8 sLeafBladeDescription[] = _( - "Slashes with a sharp leaf.\n" - "High critical-hit ratio."); + "Slashes with a sharp leaf.\n" + "High critical-hit ratio."); static const u8 sDragonDanceDescription[] = _( - "A mystical dance that ups\n" - "ATTACK and SPEED."); + "A mystical dance that ups\n" + "ATTACK and SPEED."); static const u8 sRockBlastDescription[] = _( - "Hurls boulders at the foe\n" - "2 to 5 times in a row."); + "Hurls boulders at the foe\n" + "2 to 5 times in a row."); static const u8 sShockWaveDescription[] = _( - "A fast and unavoidable\n" - "electric attack."); + "A fast and unavoidable\n" + "electric attack."); static const u8 sWaterPulseDescription[] = _( - "Attacks with ultrasonic\n" - "waves. May confuse the foe."); + "Attacks with ultrasonic\n" + "waves. May confuse the foe."); static const u8 sDoomDesireDescription[] = _( - "Summons strong sunlight to\n" - "attack 2 turns later."); + "Summons strong sunlight to\n" + "attack 2 turns later."); static const u8 sPsychoBoostDescription[] = _( - "Allows a full-power attack,\n" - "but sharply lowers SP. ATK."); + "Allows a full-power attack,\n" + "but sharply lowers SP. ATK."); // MOVE_NONE is ignored in this table. Make sure to always subtract 1 before getting the right pointer. const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] = diff --git a/src/data/text/species_names.h b/src/data/text/species_names.h index 840beb22b..25f2c9aa2 100644 --- a/src/data/text/species_names.h +++ b/src/data/text/species_names.h @@ -82,7 +82,7 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = { [SPECIES_SLOWBRO] = _("SLOWBRO"), [SPECIES_MAGNEMITE] = _("MAGNEMITE"), [SPECIES_MAGNETON] = _("MAGNETON"), - [SPECIES_FARFETCHD] = _("FARFETCH’D"), + [SPECIES_FARFETCHD] = _("FARFETCH'D"), [SPECIES_DODUO] = _("DODUO"), [SPECIES_DODRIO] = _("DODRIO"), [SPECIES_SEEL] = _("SEEL"), diff --git a/src/data/text/trainer_class_names.h b/src/data/text/trainer_class_names.h index 7a126a128..dd750b354 100644 --- a/src/data/text/trainer_class_names.h +++ b/src/data/text/trainer_class_names.h @@ -1,73 +1,68 @@ -#ifndef GUARD_TRAINER_CLASS_NAMES_H -#define GUARD_TRAINER_CLASS_NAMES_H - const u8 gTrainerClassNames[][13] = { - _("{PKMN} TRAINER"), - _("{PKMN} TRAINER"), - _("HIKER"), - _("TEAM AQUA"), - _("{PKMN} BREEDER"), - _("COOLTRAINER"), - _("BIRD KEEPER"), - _("COLLECTOR"), - _("SWIMMER♂"), - _("TEAM MAGMA"), - _("EXPERT"), - _("AQUA ADMIN"), - _("BLACK BELT"), - _("AQUA LEADER"), - _("HEX MANIAC"), - _("AROMA LADY"), - _("RUIN MANIAC"), - _("INTERVIEWER"), - _("TUBER"), - _("TUBER"), - _("LADY"), - _("BEAUTY"), - _("RICH BOY"), - _("POKéMANIAC"), - _("GUITARIST"), - _("KINDLER"), - _("CAMPER"), - _("PICNICKER"), - _("BUG MANIAC"), - _("PSYCHIC"), - _("GENTLEMAN"), - _("ELITE FOUR"), - _("LEADER"), - _("SCHOOL KID"), - _("SR. AND JR."), - _("WINSTRATE"), - _("POKéFAN"), - _("YOUNGSTER"), - _("CHAMPION"), - _("FISHERMAN"), - _("TRIATHLETE"), - _("DRAGON TAMER"), - _("NINJA BOY"), - _("BATTLE GIRL"), - _("PARASOL LADY"), - _("SWIMMER♀"), - _("TWINS"), - _("SAILOR"), - _("COOLTRAINER"), - _("MAGMA ADMIN"), - _("{PKMN} TRAINER"), - _("BUG CATCHER"), - _("{PKMN} RANGER"), - _("MAGMA LEADER"), - _("LASS"), - _("YOUNG COUPLE"), - _("OLD COUPLE"), - _("SIS AND BRO"), - _("SALON MAIDEN"), - _("DOME ACE"), - _("PALACE MAVEN"), - _("ARENA TYCOON"), - _("FACTORY HEAD"), - _("PIKE QUEEN"), - _("PYRAMID KING"), - _("{PKMN} TRAINER"), + [TRAINER_CLASS_PKMN_TRAINER_1] = _("{PKMN} TRAINER"), + [TRAINER_CLASS_PKMN_TRAINER_2] = _("{PKMN} TRAINER"), + [TRAINER_CLASS_HIKER] = _("HIKER"), + [TRAINER_CLASS_TEAM_AQUA] = _("TEAM AQUA"), + [TRAINER_CLASS_PKMN_BREEDER] = _("{PKMN} BREEDER"), + [TRAINER_CLASS_COOLTRAINER] = _("COOLTRAINER"), + [TRAINER_CLASS_BIRD_KEEPER] = _("BIRD KEEPER"), + [TRAINER_CLASS_COLLECTOR] = _("COLLECTOR"), + [TRAINER_CLASS_SWIMMER_M] = _("SWIMMER♂"), + [TRAINER_CLASS_TEAM_MAGMA] = _("TEAM MAGMA"), + [TRAINER_CLASS_EXPERT] = _("EXPERT"), + [TRAINER_CLASS_AQUA_ADMIN] = _("AQUA ADMIN"), + [TRAINER_CLASS_BLACK_BELT] = _("BLACK BELT"), + [TRAINER_CLASS_AQUA_LEADER] = _("AQUA LEADER"), + [TRAINER_CLASS_HEX_MANIAC] = _("HEX MANIAC"), + [TRAINER_CLASS_AROMA_LADY] = _("AROMA LADY"), + [TRAINER_CLASS_RUIN_MANIAC] = _("RUIN MANIAC"), + [TRAINER_CLASS_INTERVIEWER] = _("INTERVIEWER"), + [TRAINER_CLASS_TUBER_F] = _("TUBER"), + [TRAINER_CLASS_TUBER_M] = _("TUBER"), + [TRAINER_CLASS_LADY] = _("LADY"), + [TRAINER_CLASS_BEAUTY] = _("BEAUTY"), + [TRAINER_CLASS_RICH_BOY] = _("RICH BOY"), + [TRAINER_CLASS_POKEMANIAC] = _("POKéMANIAC"), + [TRAINER_CLASS_GUITARIST] = _("GUITARIST"), + [TRAINER_CLASS_KINDLER] = _("KINDLER"), + [TRAINER_CLASS_CAMPER] = _("CAMPER"), + [TRAINER_CLASS_PICNICKER] = _("PICNICKER"), + [TRAINER_CLASS_BUG_MANIAC] = _("BUG MANIAC"), + [TRAINER_CLASS_PSYCHIC] = _("PSYCHIC"), + [TRAINER_CLASS_GENTLEMAN] = _("GENTLEMAN"), + [TRAINER_CLASS_ELITE_FOUR] = _("ELITE FOUR"), + [TRAINER_CLASS_LEADER] = _("LEADER"), + [TRAINER_CLASS_SCHOOL_KID] = _("SCHOOL KID"), + [TRAINER_CLASS_SR_AND_JR] = _("SR. AND JR."), + [TRAINER_CLASS_WINSTRATE] = _("WINSTRATE"), + [TRAINER_CLASS_POKEFAN] = _("POKéFAN"), + [TRAINER_CLASS_YOUNGSTER] = _("YOUNGSTER"), + [TRAINER_CLASS_CHAMPION] = _("CHAMPION"), + [TRAINER_CLASS_FISHERMAN] = _("FISHERMAN"), + [TRAINER_CLASS_TRIATHLETE] = _("TRIATHLETE"), + [TRAINER_CLASS_DRAGON_TAMER] = _("DRAGON TAMER"), + [TRAINER_CLASS_NINJA_BOY] = _("NINJA BOY"), + [TRAINER_CLASS_BATTLE_GIRL] = _("BATTLE GIRL"), + [TRAINER_CLASS_PARASOL_LADY] = _("PARASOL LADY"), + [TRAINER_CLASS_SWIMMER_F] = _("SWIMMER♀"), + [TRAINER_CLASS_TWINS] = _("TWINS"), + [TRAINER_CLASS_SAILOR] = _("SAILOR"), + [TRAINER_CLASS_COOLTRAINER_UNUSED] = _("COOLTRAINER"), + [TRAINER_CLASS_MAGMA_ADMIN] = _("MAGMA ADMIN"), + [TRAINER_CLASS_PKMN_TRAINER_3] = _("{PKMN} TRAINER"), + [TRAINER_CLASS_BUG_CATCHER] = _("BUG CATCHER"), + [TRAINER_CLASS_PKMN_RANGER] = _("{PKMN} RANGER"), + [TRAINER_CLASS_MAGMA_LEADER] = _("MAGMA LEADER"), + [TRAINER_CLASS_LASS] = _("LASS"), + [TRAINER_CLASS_YOUNG_COUPLE] = _("YOUNG COUPLE"), + [TRAINER_CLASS_OLD_COUPLE] = _("OLD COUPLE"), + [TRAINER_CLASS_SIS_AND_BRO] = _("SIS AND BRO"), + [TRAINER_CLASS_SALON_MAIDEN] = _("SALON MAIDEN"), + [TRAINER_CLASS_DOME_ACE] = _("DOME ACE"), + [TRAINER_CLASS_PALACE_MAVEN] = _("PALACE MAVEN"), + [TRAINER_CLASS_ARENA_TYCOON] = _("ARENA TYCOON"), + [TRAINER_CLASS_FACTORY_HEAD] = _("FACTORY HEAD"), + [TRAINER_CLASS_PIKE_QUEEN] = _("PIKE QUEEN"), + [TRAINER_CLASS_PYRAMID_KING] = _("PYRAMID KING"), + [TRAINER_CLASS_PKMN_TRAINER_4] = _("{PKMN} TRAINER"), }; - -#endif diff --git a/src/data/trainer_graphics/front_pic_anims.h b/src/data/trainer_graphics/front_pic_anims.h index b72726506..371e5a300 100644 --- a/src/data/trainer_graphics/front_pic_anims.h +++ b/src/data/trainer_graphics/front_pic_anims.h @@ -1,3 +1,5 @@ +#include "constants/trainers.h" + const union AnimCmd *const gTrainerFrontAnims_Hiker[] ={ gAnimCmd_General_Frame0, }; @@ -202,11 +204,11 @@ const union AnimCmd *const gTrainerFrontAnims_SrAndJr[] ={ gAnimCmd_General_Frame0, }; -const union AnimCmd *const gTrainerFrontAnims_WinstrateM[] ={ +const union AnimCmd *const gTrainerFrontAnims_PokefanM[] ={ gAnimCmd_General_Frame0, }; -const union AnimCmd *const gTrainerFrontAnims_WinstrateF[] ={ +const union AnimCmd *const gTrainerFrontAnims_PokefanF[] ={ gAnimCmd_General_Frame0, }; @@ -372,97 +374,97 @@ const union AnimCmd *const gTrainerFrontAnims_RubySapphireMay[] ={ const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[] = { - gTrainerFrontAnims_Hiker, // TRAINER_PIC_HIKER - gTrainerFrontAnims_AquaGruntM, // TRAINER_PIC_AQUA_GRUNT_M - gTrainerFrontAnims_PokemonBreederF, // TRAINER_PIC_POKEMON_BREEDER_F - gTrainerFrontAnims_CoolTrainerM, // TRAINER_PIC_COOL_TRAINER_M - gTrainerFrontAnims_BirdKeeper, // TRAINER_PIC_BIRD_KEEPER - gTrainerFrontAnims_Collector, // TRAINER_PIC_COLLECTOR - gTrainerFrontAnims_AquaGruntF, // TRAINER_PIC_AQUA_GRUNT_F - gTrainerFrontAnims_SwimmerM, // TRAINER_PIC_SWIMMER_M - gTrainerFrontAnims_MagmaGruntM, // TRAINER_PIC_MAGMA_GRUNT_M - gTrainerFrontAnims_ExpertM, // TRAINER_PIC_EXPERT_M - gTrainerFrontAnims_AquaAdminM, // TRAINER_PIC_AQUA_ADMIN_M - gTrainerFrontAnims_BlackBelt, // TRAINER_PIC_BLACK_BELT - gTrainerFrontAnims_AquaAdminF, // TRAINER_PIC_AQUA_ADMIN_F - gTrainerFrontAnims_AquaLeaderArchie, // TRAINER_PIC_AQUA_LEADER_ARCHIE - gTrainerFrontAnims_HexManiac, // TRAINER_PIC_HEX_MANIAC - gTrainerFrontAnims_AromaLady, // TRAINER_PIC_AROMA_LADY - gTrainerFrontAnims_RuinManiac, // TRAINER_PIC_RUIN_MANIAC - gTrainerFrontAnims_Interviewer, // TRAINER_PIC_INTERVIEWER - gTrainerFrontAnims_TuberF, // TRAINER_PIC_TUBER_F - gTrainerFrontAnims_TuberM, // TRAINER_PIC_TUBER_M - gTrainerFrontAnims_CoolTrainerF, // TRAINER_PIC_COOL_TRAINER_F - gTrainerFrontAnims_Lady, // TRAINER_PIC_LADY - gTrainerFrontAnims_Beauty, // TRAINER_PIC_BEAUTY - gTrainerFrontAnims_RichBoy, // TRAINER_PIC_RICH_BOY - gTrainerFrontAnims_ExpertF, // TRAINER_PIC_EXPERT_F - gTrainerFrontAnims_Pokemaniac, // TRAINER_PIC_POKEMANIAC - gTrainerFrontAnims_MagmaGruntF, // TRAINER_PIC_MAGMA_GRUNT_F - gTrainerFrontAnims_Guitarist, // TRAINER_PIC_GUITARIST - gTrainerFrontAnims_Kindler, // TRAINER_PIC_KINDLER - gTrainerFrontAnims_Camper, // TRAINER_PIC_CAMPER - gTrainerFrontAnims_Picnicker, // TRAINER_PIC_PICNICKER - gTrainerFrontAnims_BugManiac, // TRAINER_PIC_BUG_MANIAC - gTrainerFrontAnims_PokemonBreederM, // TRAINER_PIC_POKEMON_BREEDER_M - gTrainerFrontAnims_PsychicM, // TRAINER_PIC_PSYCHIC_M - gTrainerFrontAnims_PsychicF, // TRAINER_PIC_PSYCHIC_F - gTrainerFrontAnims_Gentleman, // TRAINER_PIC_GENTLEMAN - gTrainerFrontAnims_EliteFourSidney, // TRAINER_PIC_ELITE_FOUR_SIDNEY - gTrainerFrontAnims_EliteFourPhoebe, // TRAINER_PIC_ELITE_FOUR_PHOEBE - gTrainerFrontAnims_EliteFourGlacia, // TRAINER_PIC_ELITE_FOUR_GLACIA - gTrainerFrontAnims_EliteFourDrake, // TRAINER_PIC_ELITE_FOUR_DRAKE - gTrainerFrontAnims_LeaderRoxanne, // TRAINER_PIC_LEADER_ROXANNE - gTrainerFrontAnims_LeaderBrawly, // TRAINER_PIC_LEADER_BRAWLY - gTrainerFrontAnims_LeaderWattson, // TRAINER_PIC_LEADER_WATTSON - gTrainerFrontAnims_LeaderFlannery, // TRAINER_PIC_LEADER_FLANNERY - gTrainerFrontAnims_LeaderNorman, // TRAINER_PIC_LEADER_NORMAN - gTrainerFrontAnims_LeaderWinona, // TRAINER_PIC_LEADER_WINONA - gTrainerFrontAnims_LeaderTateAndLiza, // TRAINER_PIC_LEADER_TATE_AND_LIZA - gTrainerFrontAnims_LeaderJuan, // TRAINER_PIC_LEADER_JUAN - gTrainerFrontAnims_SchoolKidM, // TRAINER_PIC_SCHOOL_KID_M - gTrainerFrontAnims_SchoolKidF, // TRAINER_PIC_SCHOOL_KID_F - gTrainerFrontAnims_SrAndJr, // TRAINER_PIC_SR_AND_JR - gTrainerFrontAnims_WinstrateM, // TRAINER_PIC_WINSTRATE_M - gTrainerFrontAnims_WinstrateF, // TRAINER_PIC_WINSTRATE_F - gTrainerFrontAnims_Youngster, // TRAINER_PIC_YOUNGSTER - gTrainerFrontAnims_ChampionWallace, // TRAINER_PIC_CHAMPION_WALLACE - gTrainerFrontAnims_Fisherman, // TRAINER_PIC_FISHERMAN - gTrainerFrontAnims_CyclingTriathleteM, // TRAINER_PIC_CYCLING_TRIATHLETE_M - gTrainerFrontAnims_CyclingTriathleteF, // TRAINER_PIC_CYCLING_TRIATHLETE_F - gTrainerFrontAnims_RunningTriathleteM, // TRAINER_PIC_RUNNING_TRIATHLETE_M - gTrainerFrontAnims_RunningTriathleteF, // TRAINER_PIC_RUNNING_TRIATHLETE_F - gTrainerFrontAnims_SwimmingTriathleteM, // TRAINER_PIC_SWIMMING_TRIATHLETE_M - gTrainerFrontAnims_SwimmingTriathleteF, // TRAINER_PIC_SWIMMING_TRIATHLETE_F - gTrainerFrontAnims_DragonTamer, // TRAINER_PIC_DRAGON_TAMER - gTrainerFrontAnims_NinjaBoy, // TRAINER_PIC_NINJA_BOY - gTrainerFrontAnims_BattleGirl, // TRAINER_PIC_BATTLE_GIRL - gTrainerFrontAnims_ParasolLady, // TRAINER_PIC_PARASOL_LADY - gTrainerFrontAnims_SwimmerF, // TRAINER_PIC_SWIMMER_F - gTrainerFrontAnims_Twins, // TRAINER_PIC_TWINS - gTrainerFrontAnims_Sailor, // TRAINER_PIC_SAILOR - gTrainerFrontAnims_MagmaAdmin, // TRAINER_PIC_MAGMA_ADMIN - gTrainerFrontAnims_Wally, // TRAINER_PIC_WALLY - gTrainerFrontAnims_Brendan, // TRAINER_PIC_BRENDAN - gTrainerFrontAnims_May, // TRAINER_PIC_MAY - gTrainerFrontAnims_BugCatcher, // TRAINER_PIC_BUG_CATCHER - gTrainerFrontAnims_PokemonRangerM, // TRAINER_PIC_POKEMON_RANGER_M - gTrainerFrontAnims_PokemonRangerF, // TRAINER_PIC_POKEMON_RANGER_F - gTrainerFrontAnims_MagmaLeaderMaxie, // TRAINER_PIC_MAGMA_LEADER_MAXIE - gTrainerFrontAnims_Lass, // TRAINER_PIC_LASS - gTrainerFrontAnims_YoungCouple, // TRAINER_PIC_YOUNG_COUPLE - gTrainerFrontAnims_OldCouple, // TRAINER_PIC_OLD_COUPLE - gTrainerFrontAnims_SisAndBro, // TRAINER_PIC_SIS_AND_BRO - gTrainerFrontAnims_Steven, // TRAINER_PIC_STEVEN - gTrainerFrontAnims_SalonMaidenAnabel, // TRAINER_PIC_SALON_MAIDEN_ANABEL - gTrainerFrontAnims_DomeAceTucker, // TRAINER_PIC_DOME_ACE_TUCKER - gTrainerFrontAnims_PalaceMavenSpenser, // TRAINER_PIC_PALACE_MAVEN_SPENSER - gTrainerFrontAnims_ArenaTycoonGreta, // TRAINER_PIC_ARENA_TYCOON_GRETA - gTrainerFrontAnims_FactoryHeadNoland, // TRAINER_PIC_FACTORY_HEAD_NOLAND - gTrainerFrontAnims_PikeQueenLucy, // TRAINER_PIC_PIKE_QUEEN_LUCY - gTrainerFrontAnims_PyramidKingBrandon, // TRAINER_PIC_PYRAMID_KING_BRANDON - gTrainerFrontAnims_Red, // TRAINER_PIC_RED - gTrainerFrontAnims_Leaf, // TRAINER_PIC_LEAF - gTrainerFrontAnims_RubySapphireBrendan, // TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN - gTrainerFrontAnims_RubySapphireMay, // TRAINER_PIC_RUBY_SAPPHIRE_MAY + [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, }; diff --git a/src/data/trainer_graphics/front_pic_tables.h b/src/data/trainer_graphics/front_pic_tables.h index db80c9d4f..d8f8c2492 100644 --- a/src/data/trainer_graphics/front_pic_tables.h +++ b/src/data/trainer_graphics/front_pic_tables.h @@ -148,8 +148,8 @@ const struct CompressedSpriteSheet gTrainerFrontPicTable[] = gTrainerFrontPic_SchoolKidM, 0x800, 48, gTrainerFrontPic_SchoolKidF, 0x800, 49, gTrainerFrontPic_SrAndJr, 0x1000, 50, - gTrainerFrontPic_WinstrateM, 0x1000, 51, - gTrainerFrontPic_WinstrateF, 0x800, 52, + gTrainerFrontPic_PokefanM, 0x1000, 51, + gTrainerFrontPic_PokefanF, 0x800, 52, gTrainerFrontPic_Youngster, 0x800, 53, gTrainerFrontPic_ChampionWallace, 0x1000, 54, gTrainerFrontPic_Fisherman, 0x800, 55, @@ -245,8 +245,8 @@ const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[] = gTrainerPalette_SchoolKidM, 48, gTrainerPalette_SchoolKidF, 49, gTrainerPalette_SrAndJr, 50, - gTrainerPalette_WinstrateM, 51, - gTrainerPalette_WinstrateF, 52, + gTrainerPalette_PokefanM, 51, + gTrainerPalette_PokefanF, 52, gTrainerPalette_Youngster, 53, gTrainerPalette_ChampionWallace, 54, gTrainerPalette_Fisherman, 55, diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index 4993186d2..b4438e5b3 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -1,12437 +1,12436 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer1[] = { - { - .iv = 0, - .lvl = 21, - .species = SPECIES_GEODUDE, - } + { + .iv = 0, + .lvl = 21, + .species = SPECIES_GEODUDE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt1[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt2[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_ZUBAT, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_ZUBAT, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt3[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt4[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt5[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt6[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt7[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle1[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_SKITTY, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_LOTAD, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_SEEDOT, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_TAILLOW, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_SKITTY, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_LOTAD, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_SEEDOT, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_TAILLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt8[] = { - { - .iv = 0, - .lvl = 9, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 9, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcel[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_SHIFTRY, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_SHIFTRY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alberto[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_PELIPPER, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_XATU, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_PELIPPER, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_XATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ed[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_ZANGOOSE, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_SEVIPER, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_ZANGOOSE, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_SEVIPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt9[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Declan[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_GYARADOS, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt10[] = { - { - .iv = 0, - .lvl = 11, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 11, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt11[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_ZUBAT, - }, - { - .iv = 0, - .lvl = 27, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_ZUBAT, + }, + { + .iv = 0, + .lvl = 27, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt12[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 0, - .lvl = 27, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 0, + .lvl = 27, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt13[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_ZUBAT, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_ZUBAT, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt14[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt15[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ZUBAT, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ZUBAT, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt16[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt17[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt18[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt19[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt20[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt21[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt22[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fredrick[] = { - { - .iv = 100, - .lvl = 30, - .species = SPECIES_MAKUHITA, - }, - { - .iv = 100, - .lvl = 30, - .species = SPECIES_MACHOKE, - } + { + .iv = 100, + .lvl = 30, + .species = SPECIES_MAKUHITA, + }, + { + .iv = 100, + .lvl = 30, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matt[] = { - { - .iv = 50, - .lvl = 34, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 50, - .lvl = 34, - .species = SPECIES_GOLBAT, - } + { + .iv = 50, + .lvl = 34, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 50, + .lvl = 34, + .species = SPECIES_GOLBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Zander[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_HARIYAMA, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly1[] = { - { - .iv = 50, - .lvl = 28, - .species = SPECIES_CARVANHA, - }, - { - .iv = 50, - .lvl = 28, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 50, + .lvl = 28, + .species = SPECIES_CARVANHA, + }, + { + .iv = 50, + .lvl = 28, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly2[] = { - { - .iv = 100, - .lvl = 37, - .species = SPECIES_SHARPEDO, - }, - { - .iv = 100, - .lvl = 37, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 100, + .lvl = 37, + .species = SPECIES_SHARPEDO, + }, + { + .iv = 100, + .lvl = 37, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Archie[] = { - { - .iv = 150, - .lvl = 41, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 150, - .lvl = 41, - .species = SPECIES_CROBAT, - }, - { - .iv = 150, - .lvl = 43, - .species = SPECIES_SHARPEDO, - } + { + .iv = 150, + .lvl = 41, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 150, + .lvl = 41, + .species = SPECIES_CROBAT, + }, + { + .iv = 150, + .lvl = 43, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leah[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_SPOINK, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_SPOINK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisy[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ROSELIA, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose1[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ROSELIA, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ROSELIA, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ROSELIA, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Felix[] = { - { - .iv = 0, - .lvl = 43, - .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_NONE, MOVE_NONE, MOVE_NONE - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_CLAYDOL, - .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 43, + .species = SPECIES_MEDICHAM, + .moves = MOVE_PSYCHIC, MOVE_NONE, MOVE_NONE, MOVE_NONE + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_CLAYDOL, + .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Violet[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_ROSELIA, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_GLOOM, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_ROSELIA, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_GLOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose2[] = { - { - .iv = 10, - .lvl = 26, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 10, - .lvl = 26, - .species = SPECIES_ROSELIA, - } + { + .iv = 10, + .lvl = 26, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 10, + .lvl = 26, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose3[] = { - { - .iv = 20, - .lvl = 28, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_GLOOM, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_ROSELIA, - } + { + .iv = 20, + .lvl = 28, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_GLOOM, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose4[] = { - { - .iv = 30, - .lvl = 31, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_GLOOM, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_ROSELIA, - } + { + .iv = 30, + .lvl = 31, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_GLOOM, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose5[] = { - { - .iv = 40, - .lvl = 34, - .species = SPECIES_BRELOOM, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_GLOOM, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_ROSELIA, - } + { + .iv = 40, + .lvl = 34, + .species = SPECIES_BRELOOM, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_GLOOM, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty1[] = { - { - .iv = 50, - .lvl = 23, - .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - } + { + .iv = 50, + .lvl = 23, + .species = SPECIES_SANDSLASH, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Chip[] = { - { - .iv = 50, - .lvl = 27, - .species = SPECIES_BALTOY, - .moves = MOVE_PSYBEAM, MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_ANCIENT_POWER - }, - { - .iv = 50, - .lvl = 27, - .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - }, - { - .iv = 50, - .lvl = 27, - .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - } + { + .iv = 50, + .lvl = 27, + .species = SPECIES_BALTOY, + .moves = MOVE_PSYBEAM, MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_ANCIENT_POWER + }, + { + .iv = 50, + .lvl = 27, + .species = SPECIES_SANDSHREW, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + }, + { + .iv = 50, + .lvl = 27, + .species = SPECIES_SANDSLASH, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Foster[] = { - { - .iv = 100, - .lvl = 25, - .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - }, - { - .iv = 100, - .lvl = 25, - .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - } + { + .iv = 100, + .lvl = 25, + .species = SPECIES_SANDSHREW, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + }, + { + .iv = 100, + .lvl = 25, + .species = SPECIES_SANDSLASH, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty2[] = { - { - .iv = 60, - .lvl = 27, - .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - } + { + .iv = 60, + .lvl = 27, + .species = SPECIES_SANDSLASH, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty3[] = { - { - .iv = 70, - .lvl = 30, - .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - } + { + .iv = 70, + .lvl = 30, + .species = SPECIES_SANDSLASH, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty4[] = { - { - .iv = 80, - .lvl = 33, - .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - } + { + .iv = 80, + .lvl = 33, + .species = SPECIES_SANDSLASH, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty5[] = { - { - .iv = 90, - .lvl = 36, - .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING - } + { + .iv = 90, + .lvl = 36, + .species = SPECIES_SANDSLASH, + .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy1[] = { - { - .iv = 50, - .lvl = 17, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 50, - .lvl = 17, - .species = SPECIES_WHISMUR, - } + { + .iv = 50, + .lvl = 17, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 50, + .lvl = 17, + .species = SPECIES_WHISMUR, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy2[] = { - { - .iv = 100, - .lvl = 27, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 100, - .lvl = 27, - .species = SPECIES_LOUDRED, - } + { + .iv = 100, + .lvl = 27, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 100, + .lvl = 27, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy3[] = { - { - .iv = 150, - .lvl = 30, - .species = SPECIES_MAGNETON, - }, - { - .iv = 150, - .lvl = 30, - .species = SPECIES_LOUDRED, - } + { + .iv = 150, + .lvl = 30, + .species = SPECIES_MAGNETON, + }, + { + .iv = 150, + .lvl = 30, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy4[] = { - { - .iv = 200, - .lvl = 33, - .species = SPECIES_MAGNETON, - }, - { - .iv = 200, - .lvl = 33, - .species = SPECIES_LOUDRED, - } + { + .iv = 200, + .lvl = 33, + .species = SPECIES_MAGNETON, + }, + { + .iv = 200, + .lvl = 33, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy5[] = { - { - .iv = 250, - .lvl = 36, - .species = SPECIES_MAGNETON, - }, - { - .iv = 250, - .lvl = 36, - .species = SPECIES_LOUDRED, - } + { + .iv = 250, + .lvl = 36, + .species = SPECIES_MAGNETON, + }, + { + .iv = 250, + .lvl = 36, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_GabbyAndTy6[] = { - { - .iv = 250, - .lvl = 39, - .species = SPECIES_MAGNETON, - .moves = MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND, MOVE_THUNDERBOLT - }, - { - .iv = 250, - .lvl = 39, - .species = SPECIES_EXPLOUD, - .moves = MOVE_ASTONISH, MOVE_STOMP, MOVE_SUPERSONIC, MOVE_HYPER_VOICE - } + { + .iv = 250, + .lvl = 39, + .species = SPECIES_MAGNETON, + .moves = MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND, MOVE_THUNDERBOLT + }, + { + .iv = 250, + .lvl = 39, + .species = SPECIES_EXPLOUD, + .moves = MOVE_ASTONISH, MOVE_STOMP, MOVE_SUPERSONIC, MOVE_HYPER_VOICE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola1[] = { - { - .iv = 10, - .lvl = 12, - .species = SPECIES_AZURILL, - }, - { - .iv = 10, - .lvl = 12, - .species = SPECIES_AZURILL, - } + { + .iv = 10, + .lvl = 12, + .species = SPECIES_AZURILL, + }, + { + .iv = 10, + .lvl = 12, + .species = SPECIES_AZURILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Austina[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gwen[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola2[] = { - { - .iv = 10, - .lvl = 26, - .species = SPECIES_MARILL, - }, - { - .iv = 10, - .lvl = 26, - .species = SPECIES_MARILL, - } + { + .iv = 10, + .lvl = 26, + .species = SPECIES_MARILL, + }, + { + .iv = 10, + .lvl = 26, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_MARILL, - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_MARILL, - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_MARILL, + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola4[] = { - { - .iv = 30, - .lvl = 32, - .species = SPECIES_MARILL, - }, - { - .iv = 30, - .lvl = 32, - .species = SPECIES_MARILL, - } + { + .iv = 30, + .lvl = 32, + .species = SPECIES_MARILL, + }, + { + .iv = 30, + .lvl = 32, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola5[] = { - { - .iv = 40, - .lvl = 35, - .species = SPECIES_AZUMARILL, - }, - { - .iv = 40, - .lvl = 35, - .species = SPECIES_AZUMARILL, - } + { + .iv = 40, + .lvl = 35, + .species = SPECIES_AZUMARILL, + }, + { + .iv = 40, + .lvl = 35, + .species = SPECIES_AZUMARILL, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky1[] = { - { - .iv = 10, - .lvl = 13, - .species = SPECIES_ZIGZAGOON, - .moves = MOVE_SAND_ATTACK, MOVE_HEADBUTT, MOVE_TAIL_WHIP, MOVE_SURF - } + { + .iv = 10, + .lvl = 13, + .species = SPECIES_ZIGZAGOON, + .moves = MOVE_SAND_ATTACK, MOVE_HEADBUTT, MOVE_TAIL_WHIP, MOVE_SURF + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Simon[] = { - { - .iv = 0, - .lvl = 12, - .species = SPECIES_AZURILL, - }, - { - .iv = 0, - .lvl = 12, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 12, + .species = SPECIES_AZURILL, + }, + { + .iv = 0, + .lvl = 12, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlie[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky2[] = { - { - .iv = 10, - .lvl = 27, - .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF - } + { + .iv = 10, + .lvl = 27, + .species = SPECIES_LINOONE, + .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky3[] = { - { - .iv = 20, - .lvl = 30, - .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF - } + { + .iv = 20, + .lvl = 30, + .species = SPECIES_LINOONE, + .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky4[] = { - { - .iv = 30, - .lvl = 33, - .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF - } + { + .iv = 30, + .lvl = 33, + .species = SPECIES_LINOONE, + .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky5[] = { - { - .iv = 40, - .lvl = 36, - .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF - } + { + .iv = 40, + .lvl = 36, + .species = SPECIES_LINOONE, + .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Randall[] = { - { - .iv = 255, - .lvl = 26, - .species = SPECIES_SWELLOW, - .heldItem = ITEM_NONE, - .moves = MOVE_QUICK_ATTACK, MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_NONE - } + { + .iv = 255, + .lvl = 26, + .species = SPECIES_SWELLOW, + .heldItem = ITEM_NONE, + .moves = MOVE_QUICK_ATTACK, MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_NONE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Parker[] = { - { - .iv = 255, - .lvl = 26, - .species = SPECIES_SPINDA, - .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_DIZZY_PUNCH, MOVE_FOCUS_PUNCH, MOVE_NONE - } + { + .iv = 255, + .lvl = 26, + .species = SPECIES_SPINDA, + .heldItem = ITEM_NONE, + .moves = MOVE_TEETER_DANCE, MOVE_DIZZY_PUNCH, MOVE_FOCUS_PUNCH, MOVE_NONE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_George[] = { - { - .iv = 255, - .lvl = 26, - .species = SPECIES_SLAKOTH, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SLACK_OFF, MOVE_COUNTER, MOVE_SHADOW_BALL, MOVE_NONE - } + { + .iv = 255, + .lvl = 26, + .species = SPECIES_SLAKOTH, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SLACK_OFF, MOVE_COUNTER, MOVE_SHADOW_BALL, MOVE_NONE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Berke[] = { - { - .iv = 255, - .lvl = 26, - .species = SPECIES_VIGOROTH, - .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_ENERGY, MOVE_SLASH, MOVE_NONE, MOVE_NONE - } + { + .iv = 255, + .lvl = 26, + .species = SPECIES_VIGOROTH, + .heldItem = ITEM_NONE, + .moves = MOVE_FOCUS_ENERGY, MOVE_SLASH, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Braxton[] = { - { - .iv = 100, - .lvl = 28, - .species = SPECIES_SWELLOW, - .moves = MOVE_FOCUS_ENERGY, MOVE_QUICK_ATTACK, MOVE_WING_ATTACK, MOVE_ENDEAVOR - }, - { - .iv = 100, - .lvl = 28, - .species = SPECIES_TRAPINCH, - .moves = MOVE_BITE, MOVE_DIG, MOVE_FAINT_ATTACK, MOVE_SAND_TOMB - }, - { - .iv = 100, - .lvl = 28, - .species = SPECIES_WAILMER, - .moves = MOVE_ROLLOUT, MOVE_WHIRLPOOL, MOVE_ASTONISH, MOVE_WATER_PULSE - }, - { - .iv = 100, - .lvl = 28, - .species = SPECIES_MAGNETON, - .moves = MOVE_THUNDERBOLT, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM - }, - { - .iv = 100, - .lvl = 28, - .species = SPECIES_SHIFTRY, - .moves = MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SWAGGER - } + { + .iv = 100, + .lvl = 28, + .species = SPECIES_SWELLOW, + .moves = MOVE_FOCUS_ENERGY, MOVE_QUICK_ATTACK, MOVE_WING_ATTACK, MOVE_ENDEAVOR + }, + { + .iv = 100, + .lvl = 28, + .species = SPECIES_TRAPINCH, + .moves = MOVE_BITE, MOVE_DIG, MOVE_FAINT_ATTACK, MOVE_SAND_TOMB + }, + { + .iv = 100, + .lvl = 28, + .species = SPECIES_WAILMER, + .moves = MOVE_ROLLOUT, MOVE_WHIRLPOOL, MOVE_ASTONISH, MOVE_WATER_PULSE + }, + { + .iv = 100, + .lvl = 28, + .species = SPECIES_MAGNETON, + .moves = MOVE_THUNDERBOLT, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM + }, + { + .iv = 100, + .lvl = 28, + .species = SPECIES_SHIFTRY, + .moves = MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SWAGGER + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vincent[] = { - { - .iv = 100, - .lvl = 44, - .species = SPECIES_SABLEYE, - }, - { - .iv = 100, - .lvl = 44, - .species = SPECIES_MEDICHAM, - }, - { - .iv = 100, - .lvl = 44, - .species = SPECIES_SHARPEDO, - } + { + .iv = 100, + .lvl = 44, + .species = SPECIES_SABLEYE, + }, + { + .iv = 100, + .lvl = 44, + .species = SPECIES_MEDICHAM, + }, + { + .iv = 100, + .lvl = 44, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leroy[] = { - { - .iv = 100, - .lvl = 46, - .species = SPECIES_MAWILE, - }, - { - .iv = 100, - .lvl = 46, - .species = SPECIES_STARMIE, - } + { + .iv = 100, + .lvl = 46, + .species = SPECIES_MAWILE, + }, + { + .iv = 100, + .lvl = 46, + .species = SPECIES_STARMIE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton1[] = { - { - .iv = 100, - .lvl = 17, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_WAILMER, - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_MAKUHITA, - } + { + .iv = 100, + .lvl = 17, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_WAILMER, + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edgar[] = { - { - .iv = 100, - .lvl = 43, - .species = SPECIES_CACTURNE, - }, - { - .iv = 100, - .lvl = 43, - .species = SPECIES_PELIPPER, - } + { + .iv = 100, + .lvl = 43, + .species = SPECIES_CACTURNE, + }, + { + .iv = 100, + .lvl = 43, + .species = SPECIES_PELIPPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Albert[] = { - { - .iv = 100, - .lvl = 43, - .species = SPECIES_MAGNETON, - }, - { - .iv = 100, - .lvl = 43, - .species = SPECIES_MUK, - } + { + .iv = 100, + .lvl = 43, + .species = SPECIES_MAGNETON, + }, + { + .iv = 100, + .lvl = 43, + .species = SPECIES_MUK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samuel[] = { - { - .iv = 100, - .lvl = 42, - .species = SPECIES_SWELLOW, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_MAWILE, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_KADABRA, - } + { + .iv = 100, + .lvl = 42, + .species = SPECIES_SWELLOW, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_MAWILE, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_KADABRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vito[] = { - { - .iv = 100, - .lvl = 42, - .species = SPECIES_DODRIO, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_KADABRA, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_ELECTRODE, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_SHIFTRY, - } + { + .iv = 100, + .lvl = 42, + .species = SPECIES_DODRIO, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_KADABRA, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_ELECTRODE, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_SHIFTRY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Owen[] = { - { - .iv = 100, - .lvl = 42, - .species = SPECIES_KECLEON, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_GRAVELER, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_WAILORD, - } + { + .iv = 100, + .lvl = 42, + .species = SPECIES_KECLEON, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_GRAVELER, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_WAILORD, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton2[] = { - { - .iv = 110, - .lvl = 26, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 110, - .lvl = 26, - .species = SPECIES_WAILMER, - }, - { - .iv = 110, - .lvl = 26, - .species = SPECIES_MAKUHITA, - } + { + .iv = 110, + .lvl = 26, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 110, + .lvl = 26, + .species = SPECIES_WAILMER, + }, + { + .iv = 110, + .lvl = 26, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton3[] = { - { - .iv = 120, - .lvl = 29, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 120, - .lvl = 29, - .species = SPECIES_WAILMER, - }, - { - .iv = 120, - .lvl = 29, - .species = SPECIES_MAKUHITA, - } + { + .iv = 120, + .lvl = 29, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 120, + .lvl = 29, + .species = SPECIES_WAILMER, + }, + { + .iv = 120, + .lvl = 29, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton4[] = { - { - .iv = 130, - .lvl = 32, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 130, - .lvl = 32, - .species = SPECIES_WAILMER, - }, - { - .iv = 130, - .lvl = 32, - .species = SPECIES_MAKUHITA, - } + { + .iv = 130, + .lvl = 32, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 130, + .lvl = 32, + .species = SPECIES_WAILMER, + }, + { + .iv = 130, + .lvl = 32, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton5[] = { - { - .iv = 140, - .lvl = 35, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 140, - .lvl = 35, - .species = SPECIES_WAILMER, - }, - { - .iv = 140, - .lvl = 35, - .species = SPECIES_HARIYAMA, - } + { + .iv = 140, + .lvl = 35, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 140, + .lvl = 35, + .species = SPECIES_WAILMER, + }, + { + .iv = 140, + .lvl = 35, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Warren[] = { - { - .iv = 100, - .lvl = 33, - .species = SPECIES_GRAVELER, - }, - { - .iv = 100, - .lvl = 33, - .species = SPECIES_LUDICOLO, - } + { + .iv = 100, + .lvl = 33, + .species = SPECIES_GRAVELER, + }, + { + .iv = 100, + .lvl = 33, + .species = SPECIES_LUDICOLO, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Mary[] = { - { - .iv = 255, - .lvl = 26, - .species = SPECIES_DELCATTY, - .heldItem = ITEM_NONE, - .moves = MOVE_FAINT_ATTACK, MOVE_SHOCK_WAVE, MOVE_NONE, MOVE_NONE - } + { + .iv = 255, + .lvl = 26, + .species = SPECIES_DELCATTY, + .heldItem = ITEM_NONE, + .moves = MOVE_FAINT_ATTACK, MOVE_SHOCK_WAVE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Alexia[] = { - { - .iv = 255, - .lvl = 26, - .species = SPECIES_WIGGLYTUFF, - .heldItem = ITEM_NONE, - .moves = MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_NONE - } + { + .iv = 255, + .lvl = 26, + .species = SPECIES_WIGGLYTUFF, + .heldItem = ITEM_NONE, + .moves = MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_NONE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Jody[] = { - { - .iv = 255, - .lvl = 26, - .species = SPECIES_ZANGOOSE, - .heldItem = ITEM_NONE, - .moves = MOVE_SWORDS_DANCE, MOVE_SLASH, MOVE_NONE, MOVE_NONE - } + { + .iv = 255, + .lvl = 26, + .species = SPECIES_ZANGOOSE, + .heldItem = ITEM_NONE, + .moves = MOVE_SWORDS_DANCE, MOVE_SLASH, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Wendy[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_MAWILE, - .moves = MOVE_BATON_PASS, MOVE_FAINT_ATTACK, MOVE_FAKE_TEARS, MOVE_BITE - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_ROSELIA, - .moves = MOVE_MEGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_GRASS_WHISTLE, MOVE_LEECH_SEED - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_PELIPPER, - .moves = MOVE_FLY, MOVE_WATER_GUN, MOVE_MIST, MOVE_PROTECT - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_MAWILE, + .moves = MOVE_BATON_PASS, MOVE_FAINT_ATTACK, MOVE_FAKE_TEARS, MOVE_BITE + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_ROSELIA, + .moves = MOVE_MEGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_GRASS_WHISTLE, MOVE_LEECH_SEED + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_PELIPPER, + .moves = MOVE_FLY, MOVE_WATER_GUN, MOVE_MIST, MOVE_PROTECT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keira[] = { - { - .iv = 100, - .lvl = 45, - .species = SPECIES_LAIRON, - }, - { - .iv = 100, - .lvl = 45, - .species = SPECIES_MANECTRIC, - } + { + .iv = 100, + .lvl = 45, + .species = SPECIES_LAIRON, + }, + { + .iv = 100, + .lvl = 45, + .species = SPECIES_MANECTRIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke1[] = { - { - .iv = 100, - .lvl = 17, - .species = SPECIES_WINGULL, - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_NUMEL, - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_ROSELIA, - } + { + .iv = 100, + .lvl = 17, + .species = SPECIES_WINGULL, + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_NUMEL, + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jennifer[] = { - { - .iv = 200, - .lvl = 30, - .species = SPECIES_SABLEYE, - } + { + .iv = 200, + .lvl = 30, + .species = SPECIES_SABLEYE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hope[] = { - { - .iv = 100, - .lvl = 45, - .species = SPECIES_ROSELIA, - } + { + .iv = 100, + .lvl = 45, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shannon[] = { - { - .iv = 100, - .lvl = 45, - .species = SPECIES_CLAYDOL, - } + { + .iv = 100, + .lvl = 45, + .species = SPECIES_CLAYDOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Michelle[] = { - { - .iv = 100, - .lvl = 42, - .species = SPECIES_TORKOAL, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_MEDICHAM, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_LUDICOLO, - } + { + .iv = 100, + .lvl = 42, + .species = SPECIES_TORKOAL, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_MEDICHAM, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_LUDICOLO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Caroline[] = { - { - .iv = 100, - .lvl = 43, - .species = SPECIES_SKARMORY, - }, - { - .iv = 100, - .lvl = 43, - .species = SPECIES_SABLEYE, - } + { + .iv = 100, + .lvl = 43, + .species = SPECIES_SKARMORY, + }, + { + .iv = 100, + .lvl = 43, + .species = SPECIES_SABLEYE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julie[] = { - { - .iv = 100, - .lvl = 42, - .species = SPECIES_SANDSLASH, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_NINETALES, - }, - { - .iv = 100, - .lvl = 42, - .species = SPECIES_TROPIUS, - } + { + .iv = 100, + .lvl = 42, + .species = SPECIES_SANDSLASH, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_NINETALES, + }, + { + .iv = 100, + .lvl = 42, + .species = SPECIES_TROPIUS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke2[] = { - { - .iv = 110, - .lvl = 26, - .species = SPECIES_WINGULL, - }, - { - .iv = 110, - .lvl = 26, - .species = SPECIES_NUMEL, - }, - { - .iv = 110, - .lvl = 26, - .species = SPECIES_ROSELIA, - } + { + .iv = 110, + .lvl = 26, + .species = SPECIES_WINGULL, + }, + { + .iv = 110, + .lvl = 26, + .species = SPECIES_NUMEL, + }, + { + .iv = 110, + .lvl = 26, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke3[] = { - { - .iv = 120, - .lvl = 29, - .species = SPECIES_PELIPPER, - }, - { - .iv = 120, - .lvl = 29, - .species = SPECIES_NUMEL, - }, - { - .iv = 120, - .lvl = 29, - .species = SPECIES_ROSELIA, - } + { + .iv = 120, + .lvl = 29, + .species = SPECIES_PELIPPER, + }, + { + .iv = 120, + .lvl = 29, + .species = SPECIES_NUMEL, + }, + { + .iv = 120, + .lvl = 29, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke4[] = { - { - .iv = 130, - .lvl = 32, - .species = SPECIES_PELIPPER, - }, - { - .iv = 130, - .lvl = 32, - .species = SPECIES_NUMEL, - }, - { - .iv = 130, - .lvl = 32, - .species = SPECIES_ROSELIA, - } + { + .iv = 130, + .lvl = 32, + .species = SPECIES_PELIPPER, + }, + { + .iv = 130, + .lvl = 32, + .species = SPECIES_NUMEL, + }, + { + .iv = 130, + .lvl = 32, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke5[] = { - { - .iv = 140, - .lvl = 34, - .species = SPECIES_PELIPPER, - }, - { - .iv = 140, - .lvl = 34, - .species = SPECIES_CAMERUPT, - }, - { - .iv = 140, - .lvl = 34, - .species = SPECIES_ROSELIA, - } + { + .iv = 140, + .lvl = 34, + .species = SPECIES_PELIPPER, + }, + { + .iv = 140, + .lvl = 34, + .species = SPECIES_CAMERUPT, + }, + { + .iv = 140, + .lvl = 34, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Patricia[] = { - { - .iv = 0, - .lvl = 41, - .species = SPECIES_BANETTE, - }, - { - .iv = 0, - .lvl = 41, - .species = SPECIES_LUNATONE, - } + { + .iv = 0, + .lvl = 41, + .species = SPECIES_BANETTE, + }, + { + .iv = 0, + .lvl = 41, + .species = SPECIES_LUNATONE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kindra[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_DUSKULL, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_SHUPPET, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_DUSKULL, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_SHUPPET, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tammy[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_DUSKULL, - }, - { - .iv = 0, - .lvl = 29, - .species = SPECIES_SHUPPET, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_DUSKULL, + }, + { + .iv = 0, + .lvl = 29, + .species = SPECIES_SHUPPET, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie1[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_SABLEYE, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_SABLEYE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tasha[] = { - { - .iv = 50, - .lvl = 32, - .species = SPECIES_SHUPPET, - } + { + .iv = 50, + .lvl = 32, + .species = SPECIES_SHUPPET, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie2[] = { - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SABLEYE, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SPOINK, - } + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SABLEYE, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SPOINK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie3[] = { - { - .iv = 20, - .lvl = 35, - .species = SPECIES_SPOINK, - }, - { - .iv = 20, - .lvl = 35, - .species = SPECIES_SABLEYE, - } + { + .iv = 20, + .lvl = 35, + .species = SPECIES_SPOINK, + }, + { + .iv = 20, + .lvl = 35, + .species = SPECIES_SABLEYE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie4[] = { - { - .iv = 30, - .lvl = 40, - .species = SPECIES_SPOINK, - }, - { - .iv = 30, - .lvl = 40, - .species = SPECIES_SABLEYE, - } + { + .iv = 30, + .lvl = 40, + .species = SPECIES_SPOINK, + }, + { + .iv = 30, + .lvl = 40, + .species = SPECIES_SABLEYE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie5[] = { - { - .iv = 40, - .lvl = 42, - .species = SPECIES_DUSKULL, - }, - { - .iv = 40, - .lvl = 42, - .species = SPECIES_SABLEYE, - }, - { - .iv = 40, - .lvl = 42, - .species = SPECIES_GRUMPIG, - } + { + .iv = 40, + .lvl = 42, + .species = SPECIES_DUSKULL, + }, + { + .iv = 40, + .lvl = 42, + .species = SPECIES_SABLEYE, + }, + { + .iv = 40, + .lvl = 42, + .species = SPECIES_GRUMPIG, + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy1[] = { - { - .iv = 0, - .lvl = 7, - .species = SPECIES_ZIGZAGOON, - .heldItem = ITEM_NUGGET - } + { + .iv = 0, + .lvl = 7, + .species = SPECIES_ZIGZAGOON, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Daphne[] = { - { - .iv = 100, - .lvl = 39, - .species = SPECIES_LUVDISC, - .heldItem = ITEM_NUGGET, - .moves = MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL, MOVE_WATER_PULSE - }, - { - .iv = 100, - .lvl = 39, - .species = SPECIES_LUVDISC, - .heldItem = ITEM_NUGGET, - .moves = MOVE_ATTRACT, MOVE_SAFEGUARD, MOVE_TAKE_DOWN, MOVE_WATER_PULSE - } + { + .iv = 100, + .lvl = 39, + .species = SPECIES_LUVDISC, + .heldItem = ITEM_NUGGET, + .moves = MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL, MOVE_WATER_PULSE + }, + { + .iv = 100, + .lvl = 39, + .species = SPECIES_LUVDISC, + .heldItem = ITEM_NUGGET, + .moves = MOVE_ATTRACT, MOVE_SAFEGUARD, MOVE_TAKE_DOWN, MOVE_WATER_PULSE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt23[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Cindy2[] = { - { - .iv = 0, - .lvl = 11, - .species = SPECIES_ZIGZAGOON, - .heldItem = ITEM_NUGGET, - .moves = MOVE_TACKLE, MOVE_TAIL_WHIP, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 11, + .species = SPECIES_ZIGZAGOON, + .heldItem = ITEM_NUGGET, + .moves = MOVE_TACKLE, MOVE_TAIL_WHIP, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Brianna[] = { - { - .iv = 150, - .lvl = 40, - .species = SPECIES_SEAKING, - .heldItem = ITEM_NUGGET - } + { + .iv = 150, + .lvl = 40, + .species = SPECIES_SEAKING, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Naomi[] = { - { - .iv = 100, - .lvl = 45, - .species = SPECIES_ROSELIA, - .heldItem = ITEM_NUGGET - } + { + .iv = 100, + .lvl = 45, + .species = SPECIES_ROSELIA, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy3[] = { - { - .iv = 10, - .lvl = 27, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET - } + { + .iv = 10, + .lvl = 27, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy4[] = { - { - .iv = 20, - .lvl = 30, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET - } + { + .iv = 20, + .lvl = 30, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy5[] = { - { - .iv = 30, - .lvl = 33, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET - } + { + .iv = 30, + .lvl = 33, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Cindy6[] = { - { - .iv = 40, - .lvl = 36, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET, - .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK - } + { + .iv = 40, + .lvl = 36, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET, + .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melissa[] = { - { - .iv = 0, - .lvl = 21, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 21, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sheila[] = { - { - .iv = 0, - .lvl = 21, - .species = SPECIES_SHROOMISH, - } + { + .iv = 0, + .lvl = 21, + .species = SPECIES_SHROOMISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shirley[] = { - { - .iv = 0, - .lvl = 21, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 21, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica1[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK - }, - { - .iv = 0, - .lvl = 29, - .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_KECLEON, + .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + }, + { + .iv = 0, + .lvl = 29, + .species = SPECIES_SEVIPER, + .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Connie[] = { - { - .iv = 100, - .lvl = 40, - .species = SPECIES_GOLDEEN, - } + { + .iv = 100, + .lvl = 40, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bridget[] = { - { - .iv = 150, - .lvl = 40, - .species = SPECIES_AZUMARILL, - } + { + .iv = 150, + .lvl = 40, + .species = SPECIES_AZUMARILL, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Olivia[] = { - { - .iv = 100, - .lvl = 35, - .species = SPECIES_CLAMPERL, - .moves = MOVE_IRON_DEFENSE, MOVE_WHIRLPOOL, MOVE_RAIN_DANCE, MOVE_WATER_PULSE - }, - { - .iv = 100, - .lvl = 37, - .species = SPECIES_CORPHISH, - .moves = MOVE_TAUNT, MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_NONE - }, - { - .iv = 100, - .lvl = 39, - .species = SPECIES_LOMBRE, - .moves = MOVE_UPROAR, MOVE_FURY_SWIPES, MOVE_FAKE_OUT, MOVE_WATER_PULSE - } + { + .iv = 100, + .lvl = 35, + .species = SPECIES_CLAMPERL, + .moves = MOVE_IRON_DEFENSE, MOVE_WHIRLPOOL, MOVE_RAIN_DANCE, MOVE_WATER_PULSE + }, + { + .iv = 100, + .lvl = 37, + .species = SPECIES_CORPHISH, + .moves = MOVE_TAUNT, MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_NONE + }, + { + .iv = 100, + .lvl = 39, + .species = SPECIES_LOMBRE, + .moves = MOVE_UPROAR, MOVE_FURY_SWIPES, MOVE_FAKE_OUT, MOVE_WATER_PULSE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiffany[] = { - { - .iv = 100, - .lvl = 39, - .species = SPECIES_CARVANHA, - }, - { - .iv = 100, - .lvl = 39, - .species = SPECIES_SHARPEDO, - } + { + .iv = 100, + .lvl = 39, + .species = SPECIES_CARVANHA, + }, + { + .iv = 100, + .lvl = 39, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica2[] = { - { - .iv = 10, - .lvl = 35, - .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK - }, - { - .iv = 10, - .lvl = 35, - .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH - } + { + .iv = 10, + .lvl = 35, + .species = SPECIES_KECLEON, + .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + }, + { + .iv = 10, + .lvl = 35, + .species = SPECIES_SEVIPER, + .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica3[] = { - { - .iv = 20, - .lvl = 38, - .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK - }, - { - .iv = 20, - .lvl = 38, - .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH - } + { + .iv = 20, + .lvl = 38, + .species = SPECIES_KECLEON, + .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + }, + { + .iv = 20, + .lvl = 38, + .species = SPECIES_SEVIPER, + .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica4[] = { - { - .iv = 30, - .lvl = 41, - .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK - }, - { - .iv = 30, - .lvl = 41, - .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH - } + { + .iv = 30, + .lvl = 41, + .species = SPECIES_KECLEON, + .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + }, + { + .iv = 30, + .lvl = 41, + .species = SPECIES_SEVIPER, + .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica5[] = { - { - .iv = 40, - .lvl = 44, - .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK - }, - { - .iv = 40, - .lvl = 44, - .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH - } + { + .iv = 40, + .lvl = 44, + .species = SPECIES_KECLEON, + .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + }, + { + .iv = 40, + .lvl = 44, + .species = SPECIES_SEVIPER, + .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Winston1[] = { - { - .iv = 0, - .lvl = 7, - .species = SPECIES_ZIGZAGOON, - .heldItem = ITEM_NUGGET - } + { + .iv = 0, + .lvl = 7, + .species = SPECIES_ZIGZAGOON, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mollie[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WHISCASH, - }, - { - .iv = 200, - .lvl = 33, - .species = SPECIES_MEDITITE, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WHISCASH, + }, + { + .iv = 200, + .lvl = 33, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Garret[] = { - { - .iv = 0, - .lvl = 45, - .species = SPECIES_AZUMARILL, - .heldItem = ITEM_NUGGET - } + { + .iv = 0, + .lvl = 45, + .species = SPECIES_AZUMARILL, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Winston2[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Winston3[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Winston4[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Winston5[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NUGGET, - .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NUGGET, + .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve1[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_ARON, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_ARON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia1[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_WAILMER, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_HORSEA, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_WAILMER, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_HORSEA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mark[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_RHYHORN, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_RHYHORN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt24[] = { - { - .iv = 0, - .lvl = 20, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 20, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve2[] = { - { - .iv = 10, - .lvl = 27, - .species = SPECIES_LAIRON, - } + { + .iv = 10, + .lvl = 27, + .species = SPECIES_LAIRON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_LAIRON, - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_RHYHORN, - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_LAIRON, + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_RHYHORN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve4[] = { - { - .iv = 30, - .lvl = 32, - .species = SPECIES_LAIRON, - }, - { - .iv = 30, - .lvl = 32, - .species = SPECIES_RHYHORN, - } + { + .iv = 30, + .lvl = 32, + .species = SPECIES_LAIRON, + }, + { + .iv = 30, + .lvl = 32, + .species = SPECIES_RHYHORN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve5[] = { - { - .iv = 40, - .lvl = 35, - .species = SPECIES_AGGRON, - }, - { - .iv = 40, - .lvl = 35, - .species = SPECIES_RHYDON, - } + { + .iv = 40, + .lvl = 35, + .species = SPECIES_AGGRON, + }, + { + .iv = 40, + .lvl = 35, + .species = SPECIES_RHYDON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Luis[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dominik[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_TENTACOOL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Douglas[] = { - { - .iv = 10, - .lvl = 24, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 10, - .lvl = 24, - .species = SPECIES_TENTACOOL, - } + { + .iv = 10, + .lvl = 24, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 10, + .lvl = 24, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darrin[] = { - { - .iv = 10, - .lvl = 24, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 10, - .lvl = 24, - .species = SPECIES_WINGULL, - }, - { - .iv = 10, - .lvl = 24, - .species = SPECIES_TENTACOOL, - } + { + .iv = 10, + .lvl = 24, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 10, + .lvl = 24, + .species = SPECIES_WINGULL, + }, + { + .iv = 10, + .lvl = 24, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony1[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerome[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matthew[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_David[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spencer[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WINGULL, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roland[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolen[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Stan[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_HORSEA, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_HORSEA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barry[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_GYARADOS, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dean[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_CARVANHA, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_CARVANHA, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rodney[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_GYARADOS, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Richard[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_PELIPPER, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_PELIPPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Herman[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Santiago[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_TENTACRUEL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_TENTACRUEL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gilbert[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_SHARPEDO, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Franklin[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_SEALEO, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_SEALEO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kevin[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_SPHEAL, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_SPHEAL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jack[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_GYARADOS, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dudley[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chad[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony2[] = { - { - .iv = 10, - .lvl = 30, - .species = SPECIES_SHARPEDO, - } + { + .iv = 10, + .lvl = 30, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony3[] = { - { - .iv = 20, - .lvl = 33, - .species = SPECIES_SHARPEDO, - } + { + .iv = 20, + .lvl = 33, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony4[] = { - { - .iv = 30, - .lvl = 34, - .species = SPECIES_STARYU, - }, - { - .iv = 30, - .lvl = 36, - .species = SPECIES_SHARPEDO, - } + { + .iv = 30, + .lvl = 34, + .species = SPECIES_STARYU, + }, + { + .iv = 30, + .lvl = 36, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony5[] = { - { - .iv = 40, - .lvl = 37, - .species = SPECIES_STARMIE, - }, - { - .iv = 40, - .lvl = 39, - .species = SPECIES_SHARPEDO, - } + { + .iv = 40, + .lvl = 37, + .species = SPECIES_STARMIE, + }, + { + .iv = 40, + .lvl = 39, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takao[] = { - { - .iv = 127, - .lvl = 13, - .species = SPECIES_MACHOP, - } + { + .iv = 127, + .lvl = 13, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hitoshi[] = { - { - .iv = 50, - .lvl = 32, - .species = SPECIES_MACHOP, - }, - { - .iv = 200, - .lvl = 32, - .species = SPECIES_MACHOKE, - } + { + .iv = 50, + .lvl = 32, + .species = SPECIES_MACHOP, + }, + { + .iv = 200, + .lvl = 32, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kiyo[] = { - { - .iv = 100, - .lvl = 34, - .species = SPECIES_HARIYAMA, - } + { + .iv = 100, + .lvl = 34, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koichi[] = { - { - .iv = 100, - .lvl = 24, - .species = SPECIES_MACHOP, - }, - { - .iv = 150, - .lvl = 28, - .species = SPECIES_MACHOKE, - } + { + .iv = 100, + .lvl = 24, + .species = SPECIES_MACHOP, + }, + { + .iv = 150, + .lvl = 28, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob1[] = { - { - .iv = 100, - .lvl = 19, - .species = SPECIES_MACHOP, - } + { + .iv = 100, + .lvl = 19, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob2[] = { - { - .iv = 110, - .lvl = 27, - .species = SPECIES_MACHOKE, - } + { + .iv = 110, + .lvl = 27, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob3[] = { - { - .iv = 120, - .lvl = 29, - .species = SPECIES_MACHOP, - }, - { - .iv = 120, - .lvl = 29, - .species = SPECIES_MACHOKE, - } + { + .iv = 120, + .lvl = 29, + .species = SPECIES_MACHOP, + }, + { + .iv = 120, + .lvl = 29, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob4[] = { - { - .iv = 130, - .lvl = 31, - .species = SPECIES_MACHOP, - }, - { - .iv = 130, - .lvl = 31, - .species = SPECIES_MACHOKE, - }, - { - .iv = 130, - .lvl = 31, - .species = SPECIES_MACHOKE, - } + { + .iv = 130, + .lvl = 31, + .species = SPECIES_MACHOP, + }, + { + .iv = 130, + .lvl = 31, + .species = SPECIES_MACHOKE, + }, + { + .iv = 130, + .lvl = 31, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Nob5[] = { - { - .iv = 140, - .lvl = 33, - .species = SPECIES_MACHOP, - .heldItem = ITEM_NONE - }, - { - .iv = 140, - .lvl = 33, - .species = SPECIES_MACHOKE, - .heldItem = ITEM_NONE - }, - { - .iv = 140, - .lvl = 33, - .species = SPECIES_MACHOKE, - .heldItem = ITEM_NONE - }, - { - .iv = 140, - .lvl = 33, - .species = SPECIES_MACHAMP, - .heldItem = ITEM_BLACK_BELT - } + { + .iv = 140, + .lvl = 33, + .species = SPECIES_MACHOP, + .heldItem = ITEM_NONE + }, + { + .iv = 140, + .lvl = 33, + .species = SPECIES_MACHOKE, + .heldItem = ITEM_NONE + }, + { + .iv = 140, + .lvl = 33, + .species = SPECIES_MACHOKE, + .heldItem = ITEM_NONE + }, + { + .iv = 140, + .lvl = 33, + .species = SPECIES_MACHAMP, + .heldItem = ITEM_BLACK_BELT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yuji[] = { - { - .iv = 100, - .lvl = 26, - .species = SPECIES_MAKUHITA, - }, - { - .iv = 100, - .lvl = 26, - .species = SPECIES_MACHOKE, - } + { + .iv = 100, + .lvl = 26, + .species = SPECIES_MAKUHITA, + }, + { + .iv = 100, + .lvl = 26, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisuke[] = { - { - .iv = 100, - .lvl = 19, - .species = SPECIES_MACHOP, - } + { + .iv = 100, + .lvl = 19, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Atsushi[] = { - { - .iv = 100, - .lvl = 32, - .species = SPECIES_HARIYAMA, - } + { + .iv = 100, + .lvl = 32, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Kirk[] = { - { - .iv = 100, - .lvl = 17, - .species = SPECIES_ELECTRIKE, - .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_LEER - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_VOLTORB, - .moves = MOVE_CHARGE, MOVE_SHOCK_WAVE, MOVE_SCREECH, MOVE_NONE - } + { + .iv = 100, + .lvl = 17, + .species = SPECIES_ELECTRIKE, + .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_LEER + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_VOLTORB, + .moves = MOVE_CHARGE, MOVE_SHOCK_WAVE, MOVE_SCREECH, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt25[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt26[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shawn[] = { - { - .iv = 100, - .lvl = 17, - .species = SPECIES_VOLTORB, - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 100, + .lvl = 17, + .species = SPECIES_VOLTORB, + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando1[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_LOUDRED, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton1[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 0, - .lvl = 15, - .species = SPECIES_WHISMUR, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 0, + .lvl = 15, + .species = SPECIES_WHISMUR, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton2[] = { - { - .iv = 10, - .lvl = 25, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_WHISMUR, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 10, + .lvl = 25, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_WHISMUR, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton3[] = { - { - .iv = 20, - .lvl = 28, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_LOUDRED, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 20, + .lvl = 28, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_LOUDRED, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton4[] = { - { - .iv = 30, - .lvl = 31, - .species = SPECIES_MAGNETON, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_LOUDRED, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_MAGNETON, - } + { + .iv = 30, + .lvl = 31, + .species = SPECIES_MAGNETON, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_LOUDRED, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_MAGNETON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton5[] = { - { - .iv = 40, - .lvl = 34, - .species = SPECIES_MAGNETON, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_EXPLOUD, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_MAGNETON, - } + { + .iv = 40, + .lvl = 34, + .species = SPECIES_MAGNETON, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_EXPLOUD, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_MAGNETON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cole[] = { - { - .iv = 100, - .lvl = 23, - .species = SPECIES_NUMEL, - } + { + .iv = 100, + .lvl = 23, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeff[] = { - { - .iv = 100, - .lvl = 22, - .species = SPECIES_SLUGMA, - }, - { - .iv = 100, - .lvl = 22, - .species = SPECIES_SLUGMA, - } + { + .iv = 100, + .lvl = 22, + .species = SPECIES_SLUGMA, + }, + { + .iv = 100, + .lvl = 22, + .species = SPECIES_SLUGMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Axle[] = { - { - .iv = 100, - .lvl = 23, - .species = SPECIES_NUMEL, - } + { + .iv = 100, + .lvl = 23, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jace[] = { - { - .iv = 100, - .lvl = 23, - .species = SPECIES_SLUGMA, - } + { + .iv = 100, + .lvl = 23, + .species = SPECIES_SLUGMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keegan[] = { - { - .iv = 120, - .lvl = 23, - .species = SPECIES_SLUGMA, - } + { + .iv = 120, + .lvl = 23, + .species = SPECIES_SLUGMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie1[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SLUGMA, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_WINGULL, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SLUGMA, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie2[] = { - { - .iv = 10, - .lvl = 26, - .species = SPECIES_SLUGMA, - }, - { - .iv = 10, - .lvl = 26, - .species = SPECIES_WINGULL, - } + { + .iv = 10, + .lvl = 26, + .species = SPECIES_SLUGMA, + }, + { + .iv = 10, + .lvl = 26, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_SLUGMA, - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_PELIPPER, - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_SLUGMA, + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_PELIPPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie4[] = { - { - .iv = 30, - .lvl = 32, - .species = SPECIES_SLUGMA, - }, - { - .iv = 30, - .lvl = 32, - .species = SPECIES_PELIPPER, - } + { + .iv = 30, + .lvl = 32, + .species = SPECIES_SLUGMA, + }, + { + .iv = 30, + .lvl = 32, + .species = SPECIES_PELIPPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie5[] = { - { - .iv = 40, - .lvl = 35, - .species = SPECIES_MAGCARGO, - }, - { - .iv = 40, - .lvl = 35, - .species = SPECIES_PELIPPER, - } + { + .iv = 40, + .lvl = 35, + .species = SPECIES_MAGCARGO, + }, + { + .iv = 40, + .lvl = 35, + .species = SPECIES_PELIPPER, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Drew[] = { - { - .iv = 0, - .lvl = 23, - .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH - } + { + .iv = 0, + .lvl = 23, + .species = SPECIES_SANDSHREW, + .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Beau[] = { - { - .iv = 0, - .lvl = 21, - .species = SPECIES_BALTOY, - .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB - }, - { - .iv = 0, - .lvl = 21, - .species = SPECIES_SANDSHREW, - .moves = MOVE_POISON_STING, MOVE_SAND_ATTACK, MOVE_SCRATCH, MOVE_DIG - }, - { - .iv = 0, - .lvl = 21, - .species = SPECIES_BALTOY, - .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB - } + { + .iv = 0, + .lvl = 21, + .species = SPECIES_BALTOY, + .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB + }, + { + .iv = 0, + .lvl = 21, + .species = SPECIES_SANDSHREW, + .moves = MOVE_POISON_STING, MOVE_SAND_ATTACK, MOVE_SCRATCH, MOVE_DIG + }, + { + .iv = 0, + .lvl = 21, + .species = SPECIES_BALTOY, + .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Larry[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shane[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Justin[] = { - { - .iv = 0, - .lvl = 24, - .species = SPECIES_KECLEON, - } + { + .iv = 0, + .lvl = 24, + .species = SPECIES_KECLEON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan1[] = { - { - .iv = 0, - .lvl = 20, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 20, - .species = SPECIES_TAILLOW, - } + { + .iv = 0, + .lvl = 20, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 20, + .species = SPECIES_TAILLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Autumn[] = { - { - .iv = 0, - .lvl = 21, - .species = SPECIES_SHROOMISH, - } + { + .iv = 0, + .lvl = 21, + .species = SPECIES_SHROOMISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Travis[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SANDSHREW, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SANDSHREW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan2[] = { - { - .iv = 10, - .lvl = 26, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 10, - .lvl = 26, - .species = SPECIES_TAILLOW, - } + { + .iv = 10, + .lvl = 26, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 10, + .lvl = 26, + .species = SPECIES_TAILLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_LINOONE, - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_SWELLOW, - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_LINOONE, + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_SWELLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan4[] = { - { - .iv = 30, - .lvl = 31, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_SWELLOW, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_LINOONE, - } + { + .iv = 30, + .lvl = 31, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_SWELLOW, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_LINOONE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan5[] = { - { - .iv = 40, - .lvl = 34, - .species = SPECIES_SWELLOW, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_SANDSLASH, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_LINOONE, - } + { + .iv = 40, + .lvl = 34, + .species = SPECIES_SWELLOW, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_SANDSLASH, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_LINOONE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brent[] = { - { - .iv = 100, - .lvl = 26, - .species = SPECIES_SURSKIT, - } + { + .iv = 100, + .lvl = 26, + .species = SPECIES_SURSKIT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donald[] = { - { - .iv = 100, - .lvl = 24, - .species = SPECIES_WURMPLE, - }, - { - .iv = 100, - .lvl = 24, - .species = SPECIES_SILCOON, - }, - { - .iv = 100, - .lvl = 24, - .species = SPECIES_BEAUTIFLY, - } + { + .iv = 100, + .lvl = 24, + .species = SPECIES_WURMPLE, + }, + { + .iv = 100, + .lvl = 24, + .species = SPECIES_SILCOON, + }, + { + .iv = 100, + .lvl = 24, + .species = SPECIES_BEAUTIFLY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Taylor[] = { - { - .iv = 100, - .lvl = 27, - .species = SPECIES_WURMPLE, - }, - { - .iv = 100, - .lvl = 27, - .species = SPECIES_CASCOON, - }, - { - .iv = 100, - .lvl = 27, - .species = SPECIES_DUSTOX, - } + { + .iv = 100, + .lvl = 27, + .species = SPECIES_WURMPLE, + }, + { + .iv = 100, + .lvl = 27, + .species = SPECIES_CASCOON, + }, + { + .iv = 100, + .lvl = 27, + .species = SPECIES_DUSTOX, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey1[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_SURSKIT, - }, - { - .iv = 0, - .lvl = 27, - .species = SPECIES_SURSKIT, - }, - { - .iv = 0, - .lvl = 27, - .species = SPECIES_SURSKIT, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_SURSKIT, + }, + { + .iv = 0, + .lvl = 27, + .species = SPECIES_SURSKIT, + }, + { + .iv = 0, + .lvl = 27, + .species = SPECIES_SURSKIT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Derek[] = { - { - .iv = 150, - .lvl = 16, - .species = SPECIES_DUSTOX, - }, - { - .iv = 150, - .lvl = 16, - .species = SPECIES_BEAUTIFLY, - } + { + .iv = 150, + .lvl = 16, + .species = SPECIES_DUSTOX, + }, + { + .iv = 150, + .lvl = 16, + .species = SPECIES_BEAUTIFLY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey2[] = { - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SURSKIT, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SURSKIT, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SURSKIT, - } + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SURSKIT, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SURSKIT, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SURSKIT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey3[] = { - { - .iv = 20, - .lvl = 34, - .species = SPECIES_SURSKIT, - }, - { - .iv = 20, - .lvl = 34, - .species = SPECIES_SURSKIT, - }, - { - .iv = 20, - .lvl = 34, - .species = SPECIES_MASQUERAIN, - } + { + .iv = 20, + .lvl = 34, + .species = SPECIES_SURSKIT, + }, + { + .iv = 20, + .lvl = 34, + .species = SPECIES_SURSKIT, + }, + { + .iv = 20, + .lvl = 34, + .species = SPECIES_MASQUERAIN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey4[] = { - { - .iv = 30, - .lvl = 36, - .species = SPECIES_SURSKIT, - }, - { - .iv = 30, - .lvl = 36, - .species = SPECIES_WURMPLE, - }, - { - .iv = 30, - .lvl = 36, - .species = SPECIES_SURSKIT, - }, - { - .iv = 30, - .lvl = 36, - .species = SPECIES_MASQUERAIN, - } + { + .iv = 30, + .lvl = 36, + .species = SPECIES_SURSKIT, + }, + { + .iv = 30, + .lvl = 36, + .species = SPECIES_WURMPLE, + }, + { + .iv = 30, + .lvl = 36, + .species = SPECIES_SURSKIT, + }, + { + .iv = 30, + .lvl = 36, + .species = SPECIES_MASQUERAIN, + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Jeffrey5[] = { - { - .iv = 40, - .lvl = 38, - .species = SPECIES_SURSKIT, - .heldItem = ITEM_NONE - }, - { - .iv = 40, - .lvl = 38, - .species = SPECIES_DUSTOX, - .heldItem = ITEM_NONE - }, - { - .iv = 40, - .lvl = 38, - .species = SPECIES_SURSKIT, - .heldItem = ITEM_NONE - }, - { - .iv = 40, - .lvl = 38, - .species = SPECIES_MASQUERAIN, - .heldItem = ITEM_SILVER_POWDER - }, - { - .iv = 40, - .lvl = 38, - .species = SPECIES_BEAUTIFLY, - .heldItem = ITEM_NONE - } + { + .iv = 40, + .lvl = 38, + .species = SPECIES_SURSKIT, + .heldItem = ITEM_NONE + }, + { + .iv = 40, + .lvl = 38, + .species = SPECIES_DUSTOX, + .heldItem = ITEM_NONE + }, + { + .iv = 40, + .lvl = 38, + .species = SPECIES_SURSKIT, + .heldItem = ITEM_NONE + }, + { + .iv = 40, + .lvl = 38, + .species = SPECIES_MASQUERAIN, + .heldItem = ITEM_SILVER_POWDER + }, + { + .iv = 40, + .lvl = 38, + .species = SPECIES_BEAUTIFLY, + .heldItem = ITEM_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Edward[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_ABRA, - .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_ABRA, + .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Preston[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_KIRLIA, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_KIRLIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Virgil[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_RALTS, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_RALTS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Blake[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_GIRAFARIG, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_GIRAFARIG, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_William[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_RALTS, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_RALTS, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_KIRLIA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_RALTS, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_RALTS, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_KIRLIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joshua[] = { - { - .iv = 0, - .lvl = 41, - .species = SPECIES_KADABRA, - }, - { - .iv = 0, - .lvl = 41, - .species = SPECIES_SOLROCK, - } + { + .iv = 0, + .lvl = 41, + .species = SPECIES_KADABRA, + }, + { + .iv = 0, + .lvl = 41, + .species = SPECIES_SOLROCK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron1[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_SOLROCK, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_SOLROCK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron2[] = { - { - .iv = 10, - .lvl = 33, - .species = SPECIES_KADABRA, - }, - { - .iv = 10, - .lvl = 33, - .species = SPECIES_SOLROCK, - } + { + .iv = 10, + .lvl = 33, + .species = SPECIES_KADABRA, + }, + { + .iv = 10, + .lvl = 33, + .species = SPECIES_SOLROCK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron3[] = { - { - .iv = 20, - .lvl = 38, - .species = SPECIES_KADABRA, - }, - { - .iv = 20, - .lvl = 38, - .species = SPECIES_SOLROCK, - } + { + .iv = 20, + .lvl = 38, + .species = SPECIES_KADABRA, + }, + { + .iv = 20, + .lvl = 38, + .species = SPECIES_SOLROCK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron4[] = { - { - .iv = 30, - .lvl = 41, - .species = SPECIES_KADABRA, - }, - { - .iv = 30, - .lvl = 41, - .species = SPECIES_SOLROCK, - } + { + .iv = 30, + .lvl = 41, + .species = SPECIES_KADABRA, + }, + { + .iv = 30, + .lvl = 41, + .species = SPECIES_SOLROCK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron5[] = { - { - .iv = 40, - .lvl = 45, - .species = SPECIES_SOLROCK, - }, - { - .iv = 40, - .lvl = 45, - .species = SPECIES_ALAKAZAM, - } + { + .iv = 40, + .lvl = 45, + .species = SPECIES_SOLROCK, + }, + { + .iv = 40, + .lvl = 45, + .species = SPECIES_ALAKAZAM, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Jaclyn[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_ABRA, - .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_ABRA, + .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hannah[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_KIRLIA, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_KIRLIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samantha[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_XATU, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_XATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maura[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_KADABRA, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_KADABRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kayla[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_WOBBUFFET, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_NATU, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_KADABRA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_WOBBUFFET, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_NATU, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_KADABRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexis[] = { - { - .iv = 0, - .lvl = 41, - .species = SPECIES_KIRLIA, - }, - { - .iv = 0, - .lvl = 41, - .species = SPECIES_XATU, - } + { + .iv = 0, + .lvl = 41, + .species = SPECIES_KIRLIA, + }, + { + .iv = 0, + .lvl = 41, + .species = SPECIES_XATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki1[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_KADABRA, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_LUNATONE, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_KADABRA, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_LUNATONE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki2[] = { - { - .iv = 10, - .lvl = 34, - .species = SPECIES_KADABRA, - }, - { - .iv = 10, - .lvl = 34, - .species = SPECIES_LUNATONE, - } + { + .iv = 10, + .lvl = 34, + .species = SPECIES_KADABRA, + }, + { + .iv = 10, + .lvl = 34, + .species = SPECIES_LUNATONE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki3[] = { - { - .iv = 20, - .lvl = 37, - .species = SPECIES_KADABRA, - }, - { - .iv = 20, - .lvl = 37, - .species = SPECIES_LUNATONE, - } + { + .iv = 20, + .lvl = 37, + .species = SPECIES_KADABRA, + }, + { + .iv = 20, + .lvl = 37, + .species = SPECIES_LUNATONE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki4[] = { - { - .iv = 30, - .lvl = 40, - .species = SPECIES_KADABRA, - }, - { - .iv = 30, - .lvl = 40, - .species = SPECIES_LUNATONE, - } + { + .iv = 30, + .lvl = 40, + .species = SPECIES_KADABRA, + }, + { + .iv = 30, + .lvl = 40, + .species = SPECIES_LUNATONE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki5[] = { - { - .iv = 40, - .lvl = 43, - .species = SPECIES_LUNATONE, - }, - { - .iv = 40, - .lvl = 43, - .species = SPECIES_ALAKAZAM, - } + { + .iv = 40, + .lvl = 43, + .species = SPECIES_LUNATONE, + }, + { + .iv = 40, + .lvl = 43, + .species = SPECIES_ALAKAZAM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter1[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_MANECTRIC, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_MANECTRIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Micah[] = { - { - .iv = 0, - .lvl = 44, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 0, - .lvl = 44, - .species = SPECIES_MANECTRIC, - } + { + .iv = 0, + .lvl = 44, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 0, + .lvl = 44, + .species = SPECIES_MANECTRIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thomas[] = { - { - .iv = 0, - .lvl = 45, - .species = SPECIES_ZANGOOSE, - } + { + .iv = 0, + .lvl = 45, + .species = SPECIES_ZANGOOSE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter2[] = { - { - .iv = 10, - .lvl = 34, - .species = SPECIES_MANECTRIC, - } + { + .iv = 10, + .lvl = 34, + .species = SPECIES_MANECTRIC, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter3[] = { - { - .iv = 20, - .lvl = 36, - .species = SPECIES_LINOONE, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES - }, - { - .iv = 20, - .lvl = 36, - .species = SPECIES_MANECTRIC, - .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR - } + { + .iv = 20, + .lvl = 36, + .species = SPECIES_LINOONE, + .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES + }, + { + .iv = 20, + .lvl = 36, + .species = SPECIES_MANECTRIC, + .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter4[] = { - { - .iv = 30, - .lvl = 39, - .species = SPECIES_LINOONE, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES - }, - { - .iv = 30, - .lvl = 39, - .species = SPECIES_MANECTRIC, - .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_NONE - } + { + .iv = 30, + .lvl = 39, + .species = SPECIES_LINOONE, + .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES + }, + { + .iv = 30, + .lvl = 39, + .species = SPECIES_MANECTRIC, + .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter5[] = { - { - .iv = 40, - .lvl = 41, - .species = SPECIES_LINOONE, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES - }, - { - .iv = 40, - .lvl = 41, - .species = SPECIES_GOLDUCK, - .moves = MOVE_FURY_SWIPES, MOVE_DISABLE, MOVE_CONFUSION, MOVE_PSYCH_UP - }, - { - .iv = 40, - .lvl = 41, - .species = SPECIES_MANECTRIC, - .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR - } + { + .iv = 40, + .lvl = 41, + .species = SPECIES_LINOONE, + .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES + }, + { + .iv = 40, + .lvl = 41, + .species = SPECIES_GOLDUCK, + .moves = MOVE_FURY_SWIPES, MOVE_DISABLE, MOVE_CONFUSION, MOVE_PSYCH_UP + }, + { + .iv = 40, + .lvl = 41, + .species = SPECIES_MANECTRIC, + .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Sidney[] = { - { - .iv = 250, - .lvl = 46, - .species = SPECIES_MIGHTYENA, - .heldItem = ITEM_NONE, - .moves = MOVE_ROAR, MOVE_DOUBLE_EDGE, MOVE_SAND_ATTACK, MOVE_CRUNCH - }, - { - .iv = 250, - .lvl = 48, - .species = SPECIES_SHIFTRY, - .heldItem = ITEM_NONE, - .moves = MOVE_TORMENT, MOVE_DOUBLE_TEAM, MOVE_SWAGGER, MOVE_EXTRASENSORY - }, - { - .iv = 250, - .lvl = 46, - .species = SPECIES_CACTURNE, - .heldItem = ITEM_NONE, - .moves = MOVE_LEECH_SEED, MOVE_FAINT_ATTACK, MOVE_NEEDLE_ARM, MOVE_COTTON_SPORE - }, - { - .iv = 250, - .lvl = 48, - .species = SPECIES_CRAWDAUNT, - .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_FACADE - }, - { - .iv = 255, - .lvl = 49, - .species = SPECIES_ABSOL, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_SLASH - } + { + .iv = 250, + .lvl = 46, + .species = SPECIES_MIGHTYENA, + .heldItem = ITEM_NONE, + .moves = MOVE_ROAR, MOVE_DOUBLE_EDGE, MOVE_SAND_ATTACK, MOVE_CRUNCH + }, + { + .iv = 250, + .lvl = 48, + .species = SPECIES_SHIFTRY, + .heldItem = ITEM_NONE, + .moves = MOVE_TORMENT, MOVE_DOUBLE_TEAM, MOVE_SWAGGER, MOVE_EXTRASENSORY + }, + { + .iv = 250, + .lvl = 46, + .species = SPECIES_CACTURNE, + .heldItem = ITEM_NONE, + .moves = MOVE_LEECH_SEED, MOVE_FAINT_ATTACK, MOVE_NEEDLE_ARM, MOVE_COTTON_SPORE + }, + { + .iv = 250, + .lvl = 48, + .species = SPECIES_CRAWDAUNT, + .heldItem = ITEM_NONE, + .moves = MOVE_SURF, MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_FACADE + }, + { + .iv = 255, + .lvl = 49, + .species = SPECIES_ABSOL, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_SLASH + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Phoebe[] = { - { - .iv = 250, - .lvl = 48, - .species = SPECIES_DUSCLOPS, - .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_CURSE, MOVE_PROTECT - }, - { - .iv = 250, - .lvl = 49, - .species = SPECIES_BANETTE, - .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_FAINT_ATTACK - }, - { - .iv = 250, - .lvl = 50, - .species = SPECIES_SABLEYE, - .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_NIGHT_SHADE, MOVE_FAINT_ATTACK - }, - { - .iv = 250, - .lvl = 49, - .species = SPECIES_BANETTE, - .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FACADE - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_DUSCLOPS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SHADOW_BALL, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE - } + { + .iv = 250, + .lvl = 48, + .species = SPECIES_DUSCLOPS, + .heldItem = ITEM_NONE, + .moves = MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_CURSE, MOVE_PROTECT + }, + { + .iv = 250, + .lvl = 49, + .species = SPECIES_BANETTE, + .heldItem = ITEM_NONE, + .moves = MOVE_SHADOW_BALL, MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_FAINT_ATTACK + }, + { + .iv = 250, + .lvl = 50, + .species = SPECIES_SABLEYE, + .heldItem = ITEM_NONE, + .moves = MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_NIGHT_SHADE, MOVE_FAINT_ATTACK + }, + { + .iv = 250, + .lvl = 49, + .species = SPECIES_BANETTE, + .heldItem = ITEM_NONE, + .moves = MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FACADE + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_DUSCLOPS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SHADOW_BALL, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Glacia[] = { - { - .iv = 250, - .lvl = 50, - .species = SPECIES_SEALEO, - .heldItem = ITEM_NONE, - .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_HAIL, MOVE_ICE_BALL - }, - { - .iv = 250, - .lvl = 50, - .species = SPECIES_GLALIE, - .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_CRUNCH, MOVE_ICY_WIND, MOVE_ICE_BEAM - }, - { - .iv = 250, - .lvl = 52, - .species = SPECIES_SEALEO, - .heldItem = ITEM_NONE, - .moves = MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_HAIL, MOVE_BLIZZARD - }, - { - .iv = 250, - .lvl = 52, - .species = SPECIES_GLALIE, - .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_EXPLOSION, MOVE_HAIL, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_WALREIN, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SURF, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_SHEER_COLD - } + { + .iv = 250, + .lvl = 50, + .species = SPECIES_SEALEO, + .heldItem = ITEM_NONE, + .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_HAIL, MOVE_ICE_BALL + }, + { + .iv = 250, + .lvl = 50, + .species = SPECIES_GLALIE, + .heldItem = ITEM_NONE, + .moves = MOVE_LIGHT_SCREEN, MOVE_CRUNCH, MOVE_ICY_WIND, MOVE_ICE_BEAM + }, + { + .iv = 250, + .lvl = 52, + .species = SPECIES_SEALEO, + .heldItem = ITEM_NONE, + .moves = MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_HAIL, MOVE_BLIZZARD + }, + { + .iv = 250, + .lvl = 52, + .species = SPECIES_GLALIE, + .heldItem = ITEM_NONE, + .moves = MOVE_SHADOW_BALL, MOVE_EXPLOSION, MOVE_HAIL, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_WALREIN, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SURF, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_SHEER_COLD + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Drake[] = { - { - .iv = 250, - .lvl = 52, - .species = SPECIES_SHELGON, - .heldItem = ITEM_NONE, - .moves = MOVE_ROCK_TOMB, MOVE_DRAGON_CLAW, MOVE_PROTECT, MOVE_DOUBLE_EDGE - }, - { - .iv = 250, - .lvl = 54, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_NONE, - .moves = MOVE_DOUBLE_EDGE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE - }, - { - .iv = 250, - .lvl = 53, - .species = SPECIES_KINGDRA, - .heldItem = ITEM_NONE, - .moves = MOVE_SMOKESCREEN, MOVE_DRAGON_DANCE, MOVE_SURF, MOVE_BODY_SLAM - }, - { - .iv = 250, - .lvl = 53, - .species = SPECIES_FLYGON, - .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_CRUNCH, MOVE_DRAGON_BREATH, MOVE_EARTHQUAKE - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_SALAMENCE, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_ROCK_SLIDE, MOVE_CRUNCH - } + { + .iv = 250, + .lvl = 52, + .species = SPECIES_SHELGON, + .heldItem = ITEM_NONE, + .moves = MOVE_ROCK_TOMB, MOVE_DRAGON_CLAW, MOVE_PROTECT, MOVE_DOUBLE_EDGE + }, + { + .iv = 250, + .lvl = 54, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_NONE, + .moves = MOVE_DOUBLE_EDGE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE + }, + { + .iv = 250, + .lvl = 53, + .species = SPECIES_KINGDRA, + .heldItem = ITEM_NONE, + .moves = MOVE_SMOKESCREEN, MOVE_DRAGON_DANCE, MOVE_SURF, MOVE_BODY_SLAM + }, + { + .iv = 250, + .lvl = 53, + .species = SPECIES_FLYGON, + .heldItem = ITEM_NONE, + .moves = MOVE_FLAMETHROWER, MOVE_CRUNCH, MOVE_DRAGON_BREATH, MOVE_EARTHQUAKE + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_SALAMENCE, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_ROCK_SLIDE, MOVE_CRUNCH + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne1[] = { - { - .iv = 100, - .lvl = 12, - .species = SPECIES_GEODUDE, - .heldItem = ITEM_NONE, - .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB - }, - { - .iv = 100, - .lvl = 12, - .species = SPECIES_GEODUDE, - .heldItem = ITEM_NONE, - .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB - }, - { - .iv = 200, - .lvl = 15, - .species = SPECIES_NOSEPASS, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_BLOCK, MOVE_HARDEN, MOVE_TACKLE, MOVE_ROCK_TOMB - } + { + .iv = 100, + .lvl = 12, + .species = SPECIES_GEODUDE, + .heldItem = ITEM_NONE, + .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB + }, + { + .iv = 100, + .lvl = 12, + .species = SPECIES_GEODUDE, + .heldItem = ITEM_NONE, + .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB + }, + { + .iv = 200, + .lvl = 15, + .species = SPECIES_NOSEPASS, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_BLOCK, MOVE_HARDEN, MOVE_TACKLE, MOVE_ROCK_TOMB + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Brawly1[] = { - { - .iv = 100, - .lvl = 16, - .species = SPECIES_MACHOP, - .heldItem = ITEM_NONE, - .moves = MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SEISMIC_TOSS, MOVE_BULK_UP - }, - { - .iv = 100, - .lvl = 16, - .species = SPECIES_MEDITITE, - .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_BULK_UP - }, - { - .iv = 200, - .lvl = 19, - .species = SPECIES_MAKUHITA, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_ARM_THRUST, MOVE_VITAL_THROW, MOVE_REVERSAL, MOVE_BULK_UP - } + { + .iv = 100, + .lvl = 16, + .species = SPECIES_MACHOP, + .heldItem = ITEM_NONE, + .moves = MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SEISMIC_TOSS, MOVE_BULK_UP + }, + { + .iv = 100, + .lvl = 16, + .species = SPECIES_MEDITITE, + .heldItem = ITEM_NONE, + .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_BULK_UP + }, + { + .iv = 200, + .lvl = 19, + .species = SPECIES_MAKUHITA, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_ARM_THRUST, MOVE_VITAL_THROW, MOVE_REVERSAL, MOVE_BULK_UP + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Wattson1[] = { - { - .iv = 200, - .lvl = 20, - .species = SPECIES_VOLTORB, - .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_SPARK, MOVE_SELF_DESTRUCT, MOVE_SHOCK_WAVE - }, - { - .iv = 200, - .lvl = 20, - .species = SPECIES_ELECTRIKE, - .heldItem = ITEM_NONE, - .moves = MOVE_SHOCK_WAVE, MOVE_LEER, MOVE_QUICK_ATTACK, MOVE_HOWL - }, - { - .iv = 220, - .lvl = 22, - .species = SPECIES_MAGNETON, - .heldItem = ITEM_NONE, - .moves = MOVE_SUPERSONIC, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM - }, - { - .iv = 250, - .lvl = 24, - .species = SPECIES_MANECTRIC, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE, MOVE_HOWL - } + { + .iv = 200, + .lvl = 20, + .species = SPECIES_VOLTORB, + .heldItem = ITEM_NONE, + .moves = MOVE_ROLLOUT, MOVE_SPARK, MOVE_SELF_DESTRUCT, MOVE_SHOCK_WAVE + }, + { + .iv = 200, + .lvl = 20, + .species = SPECIES_ELECTRIKE, + .heldItem = ITEM_NONE, + .moves = MOVE_SHOCK_WAVE, MOVE_LEER, MOVE_QUICK_ATTACK, MOVE_HOWL + }, + { + .iv = 220, + .lvl = 22, + .species = SPECIES_MAGNETON, + .heldItem = ITEM_NONE, + .moves = MOVE_SUPERSONIC, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM + }, + { + .iv = 250, + .lvl = 24, + .species = SPECIES_MANECTRIC, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE, MOVE_HOWL + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Flannery1[] = { - { - .iv = 200, - .lvl = 24, - .species = SPECIES_NUMEL, - .heldItem = ITEM_NONE, - .moves = MOVE_OVERHEAT, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY - }, - { - .iv = 200, - .lvl = 24, - .species = SPECIES_SLUGMA, - .heldItem = ITEM_NONE, - .moves = MOVE_OVERHEAT, MOVE_SMOG, MOVE_LIGHT_SCREEN, MOVE_SUNNY_DAY - }, - { - .iv = 250, - .lvl = 26, - .species = SPECIES_CAMERUPT, - .heldItem = ITEM_NONE, - .moves = MOVE_OVERHEAT, MOVE_TACKLE, MOVE_SUNNY_DAY, MOVE_ATTRACT - }, - { - .iv = 250, - .lvl = 29, - .species = SPECIES_TORKOAL, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ATTRACT - } + { + .iv = 200, + .lvl = 24, + .species = SPECIES_NUMEL, + .heldItem = ITEM_NONE, + .moves = MOVE_OVERHEAT, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + }, + { + .iv = 200, + .lvl = 24, + .species = SPECIES_SLUGMA, + .heldItem = ITEM_NONE, + .moves = MOVE_OVERHEAT, MOVE_SMOG, MOVE_LIGHT_SCREEN, MOVE_SUNNY_DAY + }, + { + .iv = 250, + .lvl = 26, + .species = SPECIES_CAMERUPT, + .heldItem = ITEM_NONE, + .moves = MOVE_OVERHEAT, MOVE_TACKLE, MOVE_SUNNY_DAY, MOVE_ATTRACT + }, + { + .iv = 250, + .lvl = 29, + .species = SPECIES_TORKOAL, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ATTRACT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Norman1[] = { - { - .iv = 200, - .lvl = 27, - .species = SPECIES_SPINDA, - .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FACADE, MOVE_ENCORE - }, - { - .iv = 200, - .lvl = 27, - .species = SPECIES_VIGOROTH, - .heldItem = ITEM_NONE, - .moves = MOVE_SLASH, MOVE_FACADE, MOVE_ENCORE, MOVE_FAINT_ATTACK - }, - { - .iv = 200, - .lvl = 29, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NONE, - .moves = MOVE_SLASH, MOVE_BELLY_DRUM, MOVE_FACADE, MOVE_HEADBUTT - }, - { - .iv = 250, - .lvl = 31, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_COUNTER, MOVE_YAWN, MOVE_FACADE, MOVE_FAINT_ATTACK - } + { + .iv = 200, + .lvl = 27, + .species = SPECIES_SPINDA, + .heldItem = ITEM_NONE, + .moves = MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FACADE, MOVE_ENCORE + }, + { + .iv = 200, + .lvl = 27, + .species = SPECIES_VIGOROTH, + .heldItem = ITEM_NONE, + .moves = MOVE_SLASH, MOVE_FACADE, MOVE_ENCORE, MOVE_FAINT_ATTACK + }, + { + .iv = 200, + .lvl = 29, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NONE, + .moves = MOVE_SLASH, MOVE_BELLY_DRUM, MOVE_FACADE, MOVE_HEADBUTT + }, + { + .iv = 250, + .lvl = 31, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_COUNTER, MOVE_YAWN, MOVE_FACADE, MOVE_FAINT_ATTACK + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Winona1[] = { - { - .iv = 210, - .lvl = 29, - .species = SPECIES_SWABLU, - .heldItem = ITEM_NONE, - .moves = MOVE_PERISH_SONG, MOVE_MIRROR_MOVE, MOVE_SAFEGUARD, MOVE_AERIAL_ACE - }, - { - .iv = 210, - .lvl = 29, - .species = SPECIES_TROPIUS, - .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_SYNTHESIS - }, - { - .iv = 210, - .lvl = 30, - .species = SPECIES_PELIPPER, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE - }, - { - .iv = 220, - .lvl = 31, - .species = SPECIES_SKARMORY, - .heldItem = ITEM_NONE, - .moves = MOVE_SAND_ATTACK, MOVE_FURY_ATTACK, MOVE_STEEL_WING, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 33, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE - } + { + .iv = 210, + .lvl = 29, + .species = SPECIES_SWABLU, + .heldItem = ITEM_NONE, + .moves = MOVE_PERISH_SONG, MOVE_MIRROR_MOVE, MOVE_SAFEGUARD, MOVE_AERIAL_ACE + }, + { + .iv = 210, + .lvl = 29, + .species = SPECIES_TROPIUS, + .heldItem = ITEM_NONE, + .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_SYNTHESIS + }, + { + .iv = 210, + .lvl = 30, + .species = SPECIES_PELIPPER, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + }, + { + .iv = 220, + .lvl = 31, + .species = SPECIES_SKARMORY, + .heldItem = ITEM_NONE, + .moves = MOVE_SAND_ATTACK, MOVE_FURY_ATTACK, MOVE_STEEL_WING, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 33, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza1[] = { - { - .iv = 250, - .lvl = 41, - .species = SPECIES_CLAYDOL, - .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN - }, - { - .iv = 250, - .lvl = 41, - .species = SPECIES_XATU, - .heldItem = ITEM_NONE, - .moves = MOVE_PSYCHIC, MOVE_SUNNY_DAY, MOVE_CONFUSE_RAY, MOVE_CALM_MIND - }, - { - .iv = 250, - .lvl = 42, - .species = SPECIES_LUNATONE, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_CALM_MIND - }, - { - .iv = 250, - .lvl = 42, - .species = SPECIES_SOLROCK, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER - } + { + .iv = 250, + .lvl = 41, + .species = SPECIES_CLAYDOL, + .heldItem = ITEM_NONE, + .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + }, + { + .iv = 250, + .lvl = 41, + .species = SPECIES_XATU, + .heldItem = ITEM_NONE, + .moves = MOVE_PSYCHIC, MOVE_SUNNY_DAY, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + }, + { + .iv = 250, + .lvl = 42, + .species = SPECIES_LUNATONE, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_CALM_MIND + }, + { + .iv = 250, + .lvl = 42, + .species = SPECIES_SOLROCK, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Juan1[] = { - { - .iv = 200, - .lvl = 41, - .species = SPECIES_LUVDISC, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL - }, - { - .iv = 200, - .lvl = 41, - .species = SPECIES_WHISCASH, - .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_AMNESIA, MOVE_EARTHQUAKE - }, - { - .iv = 200, - .lvl = 43, - .species = SPECIES_SEALEO, - .heldItem = ITEM_NONE, - .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_AURORA_BEAM, MOVE_WATER_PULSE - }, - { - .iv = 200, - .lvl = 43, - .species = SPECIES_CRAWDAUNT, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_LEER - }, - { - .iv = 250, - .lvl = 46, - .species = SPECIES_KINGDRA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST - } + { + .iv = 200, + .lvl = 41, + .species = SPECIES_LUVDISC, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL + }, + { + .iv = 200, + .lvl = 41, + .species = SPECIES_WHISCASH, + .heldItem = ITEM_NONE, + .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_AMNESIA, MOVE_EARTHQUAKE + }, + { + .iv = 200, + .lvl = 43, + .species = SPECIES_SEALEO, + .heldItem = ITEM_NONE, + .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_AURORA_BEAM, MOVE_WATER_PULSE + }, + { + .iv = 200, + .lvl = 43, + .species = SPECIES_CRAWDAUNT, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_PULSE, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_LEER + }, + { + .iv = 250, + .lvl = 46, + .species = SPECIES_KINGDRA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry1[] = { - { - .iv = 10, - .lvl = 9, - .species = SPECIES_RALTS, - } + { + .iv = 10, + .lvl = 9, + .species = SPECIES_RALTS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ted[] = { - { - .iv = 10, - .lvl = 17, - .species = SPECIES_RALTS, - } + { + .iv = 10, + .lvl = 17, + .species = SPECIES_RALTS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paul[] = { - { - .iv = 10, - .lvl = 15, - .species = SPECIES_NUMEL, - }, - { - .iv = 10, - .lvl = 15, - .species = SPECIES_ODDISH, - }, - { - .iv = 10, - .lvl = 15, - .species = SPECIES_WINGULL, - } + { + .iv = 10, + .lvl = 15, + .species = SPECIES_NUMEL, + }, + { + .iv = 10, + .lvl = 15, + .species = SPECIES_ODDISH, + }, + { + .iv = 10, + .lvl = 15, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry2[] = { - { - .iv = 20, - .lvl = 26, - .species = SPECIES_RALTS, - }, - { - .iv = 20, - .lvl = 26, - .species = SPECIES_MEDITITE, - } + { + .iv = 20, + .lvl = 26, + .species = SPECIES_RALTS, + }, + { + .iv = 20, + .lvl = 26, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry3[] = { - { - .iv = 30, - .lvl = 29, - .species = SPECIES_KIRLIA, - }, - { - .iv = 30, - .lvl = 29, - .species = SPECIES_MEDITITE, - } + { + .iv = 30, + .lvl = 29, + .species = SPECIES_KIRLIA, + }, + { + .iv = 30, + .lvl = 29, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry4[] = { - { - .iv = 40, - .lvl = 32, - .species = SPECIES_KIRLIA, - }, - { - .iv = 40, - .lvl = 32, - .species = SPECIES_MEDICHAM, - } + { + .iv = 40, + .lvl = 32, + .species = SPECIES_KIRLIA, + }, + { + .iv = 40, + .lvl = 32, + .species = SPECIES_MEDICHAM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry5[] = { - { - .iv = 50, - .lvl = 34, - .species = SPECIES_KIRLIA, - }, - { - .iv = 50, - .lvl = 34, - .species = SPECIES_BANETTE, - }, - { - .iv = 50, - .lvl = 34, - .species = SPECIES_MEDICHAM, - } + { + .iv = 50, + .lvl = 34, + .species = SPECIES_KIRLIA, + }, + { + .iv = 50, + .lvl = 34, + .species = SPECIES_BANETTE, + }, + { + .iv = 50, + .lvl = 34, + .species = SPECIES_MEDICHAM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen1[] = { - { - .iv = 10, - .lvl = 9, - .species = SPECIES_SHROOMISH, - } + { + .iv = 10, + .lvl = 9, + .species = SPECIES_SHROOMISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Georgia[] = { - { - .iv = 10, - .lvl = 16, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 10, - .lvl = 16, - .species = SPECIES_BEAUTIFLY, - } + { + .iv = 10, + .lvl = 16, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 10, + .lvl = 16, + .species = SPECIES_BEAUTIFLY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen2[] = { - { - .iv = 20, - .lvl = 26, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 20, - .lvl = 26, - .species = SPECIES_WHISMUR, - } + { + .iv = 20, + .lvl = 26, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 20, + .lvl = 26, + .species = SPECIES_WHISMUR, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen3[] = { - { - .iv = 30, - .lvl = 29, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 30, - .lvl = 29, - .species = SPECIES_LOUDRED, - } + { + .iv = 30, + .lvl = 29, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 30, + .lvl = 29, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen4[] = { - { - .iv = 40, - .lvl = 32, - .species = SPECIES_BRELOOM, - }, - { - .iv = 40, - .lvl = 32, - .species = SPECIES_LOUDRED, - } + { + .iv = 40, + .lvl = 32, + .species = SPECIES_BRELOOM, + }, + { + .iv = 40, + .lvl = 32, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen5[] = { - { - .iv = 50, - .lvl = 35, - .species = SPECIES_BRELOOM, - }, - { - .iv = 50, - .lvl = 35, - .species = SPECIES_EXPLOUD, - } + { + .iv = 50, + .lvl = 35, + .species = SPECIES_BRELOOM, + }, + { + .iv = 50, + .lvl = 35, + .species = SPECIES_EXPLOUD, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_KateAndJoy[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_SPINDA, - .moves = MOVE_HYPNOSIS, MOVE_PSYBEAM, MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE - }, - { - .iv = 0, - .lvl = 32, - .species = SPECIES_SLAKING, - .moves = MOVE_FOCUS_PUNCH, MOVE_YAWN, MOVE_SLACK_OFF, MOVE_FAINT_ATTACK - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_SPINDA, + .moves = MOVE_HYPNOSIS, MOVE_PSYBEAM, MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE + }, + { + .iv = 0, + .lvl = 32, + .species = SPECIES_SLAKING, + .moves = MOVE_FOCUS_PUNCH, MOVE_YAWN, MOVE_SLACK_OFF, MOVE_FAINT_ATTACK + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg1[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_ZIGZAGOON, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_ZIGZAGOON, + .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_MAKUHITA, + .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg2[] = { - { - .iv = 10, - .lvl = 28, - .species = SPECIES_ZIGZAGOON, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH - }, - { - .iv = 10, - .lvl = 30, - .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE - } + { + .iv = 10, + .lvl = 28, + .species = SPECIES_ZIGZAGOON, + .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + }, + { + .iv = 10, + .lvl = 30, + .species = SPECIES_MAKUHITA, + .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg3[] = { - { - .iv = 20, - .lvl = 31, - .species = SPECIES_ZIGZAGOON, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE - } + { + .iv = 20, + .lvl = 31, + .species = SPECIES_ZIGZAGOON, + .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_MAKUHITA, + .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg4[] = { - { - .iv = 30, - .lvl = 34, - .species = SPECIES_LINOONE, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH - }, - { - .iv = 30, - .lvl = 36, - .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE - } + { + .iv = 30, + .lvl = 34, + .species = SPECIES_LINOONE, + .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + }, + { + .iv = 30, + .lvl = 36, + .species = SPECIES_MAKUHITA, + .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg5[] = { - { - .iv = 40, - .lvl = 36, - .species = SPECIES_LINOONE, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH - }, - { - .iv = 40, - .lvl = 38, - .species = SPECIES_HARIYAMA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE - } + { + .iv = 40, + .lvl = 36, + .species = SPECIES_LINOONE, + .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + }, + { + .iv = 40, + .lvl = 38, + .species = SPECIES_HARIYAMA, + .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Victor[] = { - { - .iv = 25, - .lvl = 16, - .species = SPECIES_TAILLOW, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 25, - .lvl = 16, - .species = SPECIES_ZIGZAGOON, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 25, + .lvl = 16, + .species = SPECIES_TAILLOW, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 25, + .lvl = 16, + .species = SPECIES_ZIGZAGOON, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel1[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Colton[] = { - { - .iv = 0, - .lvl = 22, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL - }, - { - .iv = 0, - .lvl = 36, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL - }, - { - .iv = 0, - .lvl = 40, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL - }, - { - .iv = 0, - .lvl = 12, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL - }, - { - .iv = 0, - .lvl = 42, - .species = SPECIES_DELCATTY, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL - } + { + .iv = 0, + .lvl = 22, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + }, + { + .iv = 0, + .lvl = 36, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + }, + { + .iv = 0, + .lvl = 40, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + }, + { + .iv = 0, + .lvl = 12, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + }, + { + .iv = 0, + .lvl = 42, + .species = SPECIES_DELCATTY, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel2[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel3[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_SKITTY, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_SKITTY, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel4[] = { - { - .iv = 0, - .lvl = 35, - .species = SPECIES_DELCATTY, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 0, + .lvl = 35, + .species = SPECIES_DELCATTY, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel5[] = { - { - .iv = 0, - .lvl = 38, - .species = SPECIES_DELCATTY, - .heldItem = ITEM_SITRUS_BERRY - } + { + .iv = 0, + .lvl = 38, + .species = SPECIES_DELCATTY, + .heldItem = ITEM_SITRUS_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Victoria[] = { - { - .iv = 50, - .lvl = 17, - .species = SPECIES_ROSELIA, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 50, + .lvl = 17, + .species = SPECIES_ROSELIA, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Vanessa[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_PIKACHU, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_PIKACHU, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Bethany[] = { - { - .iv = 100, - .lvl = 35, - .species = SPECIES_AZURILL, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 100, - .lvl = 37, - .species = SPECIES_MARILL, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 100, - .lvl = 39, - .species = SPECIES_AZUMARILL, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 100, + .lvl = 35, + .species = SPECIES_AZURILL, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 100, + .lvl = 37, + .species = SPECIES_MARILL, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 100, + .lvl = 39, + .species = SPECIES_AZUMARILL, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel1[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_PLUSLE, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_MINUN, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_PLUSLE, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_MINUN, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel2[] = { - { - .iv = 10, - .lvl = 26, - .species = SPECIES_PLUSLE, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 10, - .lvl = 26, - .species = SPECIES_MINUN, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 10, + .lvl = 26, + .species = SPECIES_PLUSLE, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 10, + .lvl = 26, + .species = SPECIES_MINUN, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_PLUSLE, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_MINUN, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_PLUSLE, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_MINUN, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel4[] = { - { - .iv = 30, - .lvl = 32, - .species = SPECIES_PLUSLE, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 30, - .lvl = 32, - .species = SPECIES_MINUN, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 30, + .lvl = 32, + .species = SPECIES_PLUSLE, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 30, + .lvl = 32, + .species = SPECIES_MINUN, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel5[] = { - { - .iv = 40, - .lvl = 35, - .species = SPECIES_PLUSLE, - .heldItem = ITEM_SITRUS_BERRY - }, - { - .iv = 40, - .lvl = 35, - .species = SPECIES_MINUN, - .heldItem = ITEM_SITRUS_BERRY - } + { + .iv = 40, + .lvl = 35, + .species = SPECIES_PLUSLE, + .heldItem = ITEM_SITRUS_BERRY + }, + { + .iv = 40, + .lvl = 35, + .species = SPECIES_MINUN, + .heldItem = ITEM_SITRUS_BERRY + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timothy1[] = { - { - .iv = 200, - .lvl = 27, - .species = SPECIES_HARIYAMA, - } + { + .iv = 200, + .lvl = 27, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy2[] = { - { - .iv = 210, - .lvl = 33, - .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG - } + { + .iv = 210, + .lvl = 33, + .species = SPECIES_HARIYAMA, + .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy3[] = { - { - .iv = 220, - .lvl = 36, - .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG - } + { + .iv = 220, + .lvl = 36, + .species = SPECIES_HARIYAMA, + .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy4[] = { - { - .iv = 230, - .lvl = 39, - .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG - } + { + .iv = 230, + .lvl = 39, + .species = SPECIES_HARIYAMA, + .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy5[] = { - { - .iv = 240, - .lvl = 42, - .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG - } + { + .iv = 240, + .lvl = 42, + .species = SPECIES_HARIYAMA, + .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Vicky[] = { - { - .iv = 200, - .lvl = 18, - .species = SPECIES_MEDITITE, - .moves = MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_CONFUSION, MOVE_DETECT - } + { + .iv = 200, + .lvl = 18, + .species = SPECIES_MEDITITE, + .moves = MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_CONFUSION, MOVE_DETECT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby1[] = { - { - .iv = 200, - .lvl = 21, - .species = SPECIES_MEDITITE, - }, - { - .iv = 200, - .lvl = 21, - .species = SPECIES_MAKUHITA, - } + { + .iv = 200, + .lvl = 21, + .species = SPECIES_MEDITITE, + }, + { + .iv = 200, + .lvl = 21, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby2[] = { - { - .iv = 210, - .lvl = 30, - .species = SPECIES_MEDITITE, - }, - { - .iv = 210, - .lvl = 30, - .species = SPECIES_MAKUHITA, - } + { + .iv = 210, + .lvl = 30, + .species = SPECIES_MEDITITE, + }, + { + .iv = 210, + .lvl = 30, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby3[] = { - { - .iv = 220, - .lvl = 33, - .species = SPECIES_MEDICHAM, - }, - { - .iv = 220, - .lvl = 33, - .species = SPECIES_HARIYAMA, - } + { + .iv = 220, + .lvl = 33, + .species = SPECIES_MEDICHAM, + }, + { + .iv = 220, + .lvl = 33, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby4[] = { - { - .iv = 230, - .lvl = 36, - .species = SPECIES_MEDICHAM, - }, - { - .iv = 230, - .lvl = 36, - .species = SPECIES_HARIYAMA, - } + { + .iv = 230, + .lvl = 36, + .species = SPECIES_MEDICHAM, + }, + { + .iv = 230, + .lvl = 36, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby5[] = { - { - .iv = 240, - .lvl = 39, - .species = SPECIES_MEDICHAM, - }, - { - .iv = 240, - .lvl = 39, - .species = SPECIES_HARIYAMA, - } + { + .iv = 240, + .lvl = 39, + .species = SPECIES_MEDICHAM, + }, + { + .iv = 240, + .lvl = 39, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin1[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Billy[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 7, - .species = SPECIES_SEEDOT, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 7, + .species = SPECIES_SEEDOT, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Josh[] = { - { - .iv = 100, - .lvl = 10, - .species = SPECIES_GEODUDE, - .moves = MOVE_TACKLE, MOVE_NONE, MOVE_NONE, MOVE_NONE - } + { + .iv = 100, + .lvl = 10, + .species = SPECIES_GEODUDE, + .moves = MOVE_TACKLE, MOVE_NONE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tommy[] = { - { - .iv = 110, - .lvl = 8, - .species = SPECIES_GEODUDE, - }, - { - .iv = 120, - .lvl = 8, - .species = SPECIES_GEODUDE, - } + { + .iv = 110, + .lvl = 8, + .species = SPECIES_GEODUDE, + }, + { + .iv = 120, + .lvl = 8, + .species = SPECIES_GEODUDE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joey[] = { - { - .iv = 0, - .lvl = 9, - .species = SPECIES_MACHOP, - } + { + .iv = 0, + .lvl = 9, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Ben[] = { - { - .iv = 150, - .lvl = 17, - .species = SPECIES_ZIGZAGOON, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_GROWL, MOVE_THUNDERBOLT - }, - { - .iv = 150, - .lvl = 17, - .species = SPECIES_GULPIN, - .moves = MOVE_AMNESIA, MOVE_SLUDGE, MOVE_YAWN, MOVE_POUND - } + { + .iv = 150, + .lvl = 17, + .species = SPECIES_ZIGZAGOON, + .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_GROWL, MOVE_THUNDERBOLT + }, + { + .iv = 150, + .lvl = 17, + .species = SPECIES_GULPIN, + .moves = MOVE_AMNESIA, MOVE_SLUDGE, MOVE_YAWN, MOVE_POUND + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Quincy[] = { - { - .iv = 100, - .lvl = 43, - .species = SPECIES_SLAKING, - .moves = MOVE_ATTRACT, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER - }, - { - .iv = 100, - .lvl = 43, - .species = SPECIES_DUSCLOPS, - .moves = MOVE_SKILL_SWAP, MOVE_PROTECT, MOVE_WILL_O_WISP, MOVE_TOXIC - } + { + .iv = 100, + .lvl = 43, + .species = SPECIES_SLAKING, + .moves = MOVE_ATTRACT, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER + }, + { + .iv = 100, + .lvl = 43, + .species = SPECIES_DUSCLOPS, + .moves = MOVE_SKILL_SWAP, MOVE_PROTECT, MOVE_WILL_O_WISP, MOVE_TOXIC + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Katelynn[] = { - { - .iv = 100, - .lvl = 43, - .species = SPECIES_GARDEVOIR, - .moves = MOVE_SKILL_SWAP, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_CALM_MIND - }, - { - .iv = 100, - .lvl = 43, - .species = SPECIES_SLAKING, - .moves = MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK - } + { + .iv = 100, + .lvl = 43, + .species = SPECIES_GARDEVOIR, + .moves = MOVE_SKILL_SWAP, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_CALM_MIND + }, + { + .iv = 100, + .lvl = 43, + .species = SPECIES_SLAKING, + .moves = MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaylen[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_TRAPINCH, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_TRAPINCH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dillon[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_ARON, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_ARON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin2[] = { - { - .iv = 10, - .lvl = 27, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 10, + .lvl = 27, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin3[] = { - { - .iv = 20, - .lvl = 28, - .species = SPECIES_SWELLOW, - }, - { - .iv = 20, - .lvl = 30, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 20, + .lvl = 28, + .species = SPECIES_SWELLOW, + }, + { + .iv = 20, + .lvl = 30, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin4[] = { - { - .iv = 30, - .lvl = 31, - .species = SPECIES_SWELLOW, - }, - { - .iv = 30, - .lvl = 29, - .species = SPECIES_LINOONE, - }, - { - .iv = 30, - .lvl = 33, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 30, + .lvl = 31, + .species = SPECIES_SWELLOW, + }, + { + .iv = 30, + .lvl = 29, + .species = SPECIES_LINOONE, + }, + { + .iv = 30, + .lvl = 33, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin5[] = { - { - .iv = 40, - .lvl = 34, - .species = SPECIES_SWELLOW, - }, - { - .iv = 40, - .lvl = 32, - .species = SPECIES_LINOONE, - }, - { - .iv = 40, - .lvl = 36, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 40, + .lvl = 34, + .species = SPECIES_SWELLOW, + }, + { + .iv = 40, + .lvl = 32, + .species = SPECIES_LINOONE, + }, + { + .iv = 40, + .lvl = 36, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eddie[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 16, - .species = SPECIES_ZIGZAGOON, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 16, + .species = SPECIES_ZIGZAGOON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allen[] = { - { - .iv = 0, - .lvl = 4, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 3, - .species = SPECIES_TAILLOW, - } + { + .iv = 0, + .lvl = 4, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 3, + .species = SPECIES_TAILLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timmy[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_ARON, - }, - { - .iv = 0, - .lvl = 13, - .species = SPECIES_ELECTRIKE, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_ARON, + }, + { + .iv = 0, + .lvl = 13, + .species = SPECIES_ELECTRIKE, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Wallace[] = { - { - .iv = 255, - .lvl = 57, - .species = SPECIES_WAILORD, - .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_SPOUT, MOVE_DOUBLE_EDGE, MOVE_BLIZZARD - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_TENTACRUEL, - .heldItem = ITEM_NONE, - .moves = MOVE_TOXIC, MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 56, - .species = SPECIES_LUDICOLO, - .heldItem = ITEM_NONE, - .moves = MOVE_GIGA_DRAIN, MOVE_SURF, MOVE_LEECH_SEED, MOVE_DOUBLE_TEAM - }, - { - .iv = 255, - .lvl = 56, - .species = SPECIES_WHISCASH, - .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_SURF, MOVE_AMNESIA, MOVE_HYPER_BEAM - }, - { - .iv = 255, - .lvl = 56, - .species = SPECIES_GYARADOS, - .heldItem = ITEM_NONE, - .moves = MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF - }, - { - .iv = 255, - .lvl = 58, - .species = SPECIES_MILOTIC, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_RECOVER, MOVE_SURF, MOVE_ICE_BEAM, MOVE_TOXIC - } + { + .iv = 255, + .lvl = 57, + .species = SPECIES_WAILORD, + .heldItem = ITEM_NONE, + .moves = MOVE_RAIN_DANCE, MOVE_WATER_SPOUT, MOVE_DOUBLE_EDGE, MOVE_BLIZZARD + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_TENTACRUEL, + .heldItem = ITEM_NONE, + .moves = MOVE_TOXIC, MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 56, + .species = SPECIES_LUDICOLO, + .heldItem = ITEM_NONE, + .moves = MOVE_GIGA_DRAIN, MOVE_SURF, MOVE_LEECH_SEED, MOVE_DOUBLE_TEAM + }, + { + .iv = 255, + .lvl = 56, + .species = SPECIES_WHISCASH, + .heldItem = ITEM_NONE, + .moves = MOVE_EARTHQUAKE, MOVE_SURF, MOVE_AMNESIA, MOVE_HYPER_BEAM + }, + { + .iv = 255, + .lvl = 56, + .species = SPECIES_GYARADOS, + .heldItem = ITEM_NONE, + .moves = MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF + }, + { + .iv = 255, + .lvl = 58, + .species = SPECIES_MILOTIC, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_RECOVER, MOVE_SURF, MOVE_ICE_BEAM, MOVE_TOXIC + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrew[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 10, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 15, - .species = SPECIES_MAGIKARP, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 10, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 15, + .species = SPECIES_MAGIKARP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ivan[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 6, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 7, - .species = SPECIES_MAGIKARP, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 6, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 7, + .species = SPECIES_MAGIKARP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Claude[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_GOLDEEN, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_BARBOACH, - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_GOLDEEN, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_BARBOACH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot1[] = { - { - .iv = 0, - .lvl = 10, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 7, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 10, - .species = SPECIES_MAGIKARP, - } + { + .iv = 0, + .lvl = 10, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 7, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 10, + .species = SPECIES_MAGIKARP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ned[] = { - { - .iv = 10, - .lvl = 11, - .species = SPECIES_TENTACOOL, - } + { + .iv = 10, + .lvl = 11, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dale[] = { - { - .iv = 0, - .lvl = 11, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_WAILMER, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 11, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_WAILMER, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolan[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_BARBOACH, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_BARBOACH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barny[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wade[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_TENTACOOL, - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carter[] = { - { - .iv = 10, - .lvl = 25, - .species = SPECIES_WAILMER, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 10, + .lvl = 25, + .species = SPECIES_WAILMER, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot2[] = { - { - .iv = 10, - .lvl = 24, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 10, - .lvl = 27, - .species = SPECIES_GYARADOS, - }, - { - .iv = 10, - .lvl = 27, - .species = SPECIES_GYARADOS, - } + { + .iv = 10, + .lvl = 24, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 10, + .lvl = 27, + .species = SPECIES_GYARADOS, + }, + { + .iv = 10, + .lvl = 27, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_GYARADOS, - }, - { - .iv = 20, - .lvl = 26, - .species = SPECIES_CARVANHA, - }, - { - .iv = 20, - .lvl = 26, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_GYARADOS, - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_GYARADOS, + }, + { + .iv = 20, + .lvl = 26, + .species = SPECIES_CARVANHA, + }, + { + .iv = 20, + .lvl = 26, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot4[] = { - { - .iv = 30, - .lvl = 31, - .species = SPECIES_GYARADOS, - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_CARVANHA, - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_TENTACRUEL, - }, - { - .iv = 31, - .lvl = 31, - .species = SPECIES_GYARADOS, - } + { + .iv = 30, + .lvl = 31, + .species = SPECIES_GYARADOS, + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_CARVANHA, + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_TENTACRUEL, + }, + { + .iv = 31, + .lvl = 31, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot5[] = { - { - .iv = 40, - .lvl = 33, - .species = SPECIES_GYARADOS, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_SHARPEDO, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_GYARADOS, - }, - { - .iv = 40, - .lvl = 35, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 40, + .lvl = 33, + .species = SPECIES_GYARADOS, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_SHARPEDO, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_GYARADOS, + }, + { + .iv = 40, + .lvl = 35, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ronald[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 21, - .species = SPECIES_GYARADOS, - }, - { - .iv = 0, - .lvl = 23, - .species = SPECIES_GYARADOS, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_GYARADOS, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_GYARADOS, - }, - { - .iv = 0, - .lvl = 35, - .species = SPECIES_GYARADOS, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 21, + .species = SPECIES_GYARADOS, + }, + { + .iv = 0, + .lvl = 23, + .species = SPECIES_GYARADOS, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_GYARADOS, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_GYARADOS, + }, + { + .iv = 0, + .lvl = 35, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacob[] = { - { - .iv = 20, - .lvl = 6, - .species = SPECIES_VOLTORB, - }, - { - .iv = 20, - .lvl = 6, - .species = SPECIES_VOLTORB, - }, - { - .iv = 200, - .lvl = 14, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 20, + .lvl = 6, + .species = SPECIES_VOLTORB, + }, + { + .iv = 20, + .lvl = 6, + .species = SPECIES_VOLTORB, + }, + { + .iv = 200, + .lvl = 14, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anthony[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin1[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin2[] = { - { - .iv = 10, - .lvl = 30, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 10, + .lvl = 30, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin3[] = { - { - .iv = 20, - .lvl = 33, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 20, + .lvl = 33, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin4[] = { - { - .iv = 30, - .lvl = 36, - .species = SPECIES_MAGNETON, - } + { + .iv = 30, + .lvl = 36, + .species = SPECIES_MAGNETON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin5[] = { - { - .iv = 40, - .lvl = 39, - .species = SPECIES_MAGNETON, - } + { + .iv = 40, + .lvl = 39, + .species = SPECIES_MAGNETON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail1[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jasmine[] = { - { - .iv = 80, - .lvl = 14, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 80, - .lvl = 14, - .species = SPECIES_MAGNEMITE, - }, - { - .iv = 0, - .lvl = 6, - .species = SPECIES_VOLTORB, - } + { + .iv = 80, + .lvl = 14, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 80, + .lvl = 14, + .species = SPECIES_MAGNEMITE, + }, + { + .iv = 0, + .lvl = 6, + .species = SPECIES_VOLTORB, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail2[] = { - { - .iv = 10, - .lvl = 28, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 10, + .lvl = 28, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail3[] = { - { - .iv = 20, - .lvl = 31, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 20, + .lvl = 31, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail4[] = { - { - .iv = 30, - .lvl = 34, - .species = SPECIES_MAGNETON, - } + { + .iv = 30, + .lvl = 34, + .species = SPECIES_MAGNETON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail5[] = { - { - .iv = 40, - .lvl = 37, - .species = SPECIES_MAGNETON, - } + { + .iv = 40, + .lvl = 37, + .species = SPECIES_MAGNETON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan1[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_DODUO, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_DODUO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan2[] = { - { - .iv = 10, - .lvl = 28, - .species = SPECIES_DODUO, - } + { + .iv = 10, + .lvl = 28, + .species = SPECIES_DODUO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan3[] = { - { - .iv = 20, - .lvl = 31, - .species = SPECIES_DODUO, - } + { + .iv = 20, + .lvl = 31, + .species = SPECIES_DODUO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan4[] = { - { - .iv = 30, - .lvl = 34, - .species = SPECIES_DODRIO, - } + { + .iv = 30, + .lvl = 34, + .species = SPECIES_DODRIO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan5[] = { - { - .iv = 40, - .lvl = 37, - .species = SPECIES_DODRIO, - } + { + .iv = 40, + .lvl = 37, + .species = SPECIES_DODRIO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria1[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_DODUO, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_DODUO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria2[] = { - { - .iv = 10, - .lvl = 28, - .species = SPECIES_DODUO, - } + { + .iv = 10, + .lvl = 28, + .species = SPECIES_DODUO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria3[] = { - { - .iv = 20, - .lvl = 31, - .species = SPECIES_DODUO, - } + { + .iv = 20, + .lvl = 31, + .species = SPECIES_DODUO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria4[] = { - { - .iv = 30, - .lvl = 34, - .species = SPECIES_DODRIO, - } + { + .iv = 30, + .lvl = 34, + .species = SPECIES_DODRIO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria5[] = { - { - .iv = 40, - .lvl = 37, - .species = SPECIES_DODRIO, - } + { + .iv = 40, + .lvl = 37, + .species = SPECIES_DODRIO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camden[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_STARYU, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_STARYU, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Demetrius[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_ELECTRIKE, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_ELECTRIKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah1[] = { - { - .iv = 0, - .lvl = 35, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 35, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo1[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_STARYU, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_STARYU, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chase[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_WINGULL, - }, - { - .iv = 80, - .lvl = 34, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_WINGULL, + }, + { + .iv = 80, + .lvl = 34, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah2[] = { - { - .iv = 10, - .lvl = 39, - .species = SPECIES_STARYU, - } + { + .iv = 10, + .lvl = 39, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah3[] = { - { - .iv = 20, - .lvl = 42, - .species = SPECIES_STARYU, - } + { + .iv = 20, + .lvl = 42, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah4[] = { - { - .iv = 30, - .lvl = 45, - .species = SPECIES_STARMIE, - } + { + .iv = 30, + .lvl = 45, + .species = SPECIES_STARMIE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah5[] = { - { - .iv = 40, - .lvl = 48, - .species = SPECIES_STARMIE, - } + { + .iv = 40, + .lvl = 48, + .species = SPECIES_STARMIE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isobel[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donny[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_WINGULL, - }, - { - .iv = 160, - .lvl = 34, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_WINGULL, + }, + { + .iv = 160, + .lvl = 34, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Talia[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn1[] = { - { - .iv = 0, - .lvl = 35, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 35, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allison[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_WINGULL, - }, - { - .iv = 240, - .lvl = 33, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_WINGULL, + }, + { + .iv = 240, + .lvl = 33, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn2[] = { - { - .iv = 10, - .lvl = 39, - .species = SPECIES_STARYU, - } + { + .iv = 10, + .lvl = 39, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn3[] = { - { - .iv = 20, - .lvl = 42, - .species = SPECIES_STARYU, - } + { + .iv = 20, + .lvl = 42, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn4[] = { - { - .iv = 30, - .lvl = 45, - .species = SPECIES_STARMIE, - } + { + .iv = 30, + .lvl = 45, + .species = SPECIES_STARMIE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn5[] = { - { - .iv = 40, - .lvl = 48, - .species = SPECIES_STARMIE, - } + { + .iv = 40, + .lvl = 48, + .species = SPECIES_STARMIE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas1[] = { - { - .iv = 100, - .lvl = 37, - .species = SPECIES_ALTARIA, - }, - { - .iv = 100, - .lvl = 37, - .species = SPECIES_ALTARIA, - } + { + .iv = 100, + .lvl = 37, + .species = SPECIES_ALTARIA, + }, + { + .iv = 100, + .lvl = 37, + .species = SPECIES_ALTARIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas2[] = { - { - .iv = 110, - .lvl = 41, - .species = SPECIES_ALTARIA, - }, - { - .iv = 110, - .lvl = 41, - .species = SPECIES_ALTARIA, - } + { + .iv = 110, + .lvl = 41, + .species = SPECIES_ALTARIA, + }, + { + .iv = 110, + .lvl = 41, + .species = SPECIES_ALTARIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas3[] = { - { - .iv = 120, - .lvl = 44, - .species = SPECIES_ALTARIA, - }, - { - .iv = 120, - .lvl = 44, - .species = SPECIES_ALTARIA, - } + { + .iv = 120, + .lvl = 44, + .species = SPECIES_ALTARIA, + }, + { + .iv = 120, + .lvl = 44, + .species = SPECIES_ALTARIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas4[] = { - { - .iv = 130, - .lvl = 46, - .species = SPECIES_BAGON, - }, - { - .iv = 130, - .lvl = 46, - .species = SPECIES_ALTARIA, - }, - { - .iv = 130, - .lvl = 46, - .species = SPECIES_ALTARIA, - } + { + .iv = 130, + .lvl = 46, + .species = SPECIES_BAGON, + }, + { + .iv = 130, + .lvl = 46, + .species = SPECIES_ALTARIA, + }, + { + .iv = 130, + .lvl = 46, + .species = SPECIES_ALTARIA, + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Nicolas5[] = { - { - .iv = 140, - .lvl = 49, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_NONE - }, - { - .iv = 140, - .lvl = 49, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_NONE - }, - { - .iv = 140, - .lvl = 49, - .species = SPECIES_SHELGON, - .heldItem = ITEM_DRAGON_FANG - } + { + .iv = 140, + .lvl = 49, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_NONE + }, + { + .iv = 140, + .lvl = 49, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_NONE + }, + { + .iv = 140, + .lvl = 49, + .species = SPECIES_SHELGON, + .heldItem = ITEM_DRAGON_FANG + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Aaron[] = { - { - .iv = 255, - .lvl = 34, - .species = SPECIES_BAGON, - .moves = MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_FOCUS_ENERGY, MOVE_EMBER - } + { + .iv = 255, + .lvl = 34, + .species = SPECIES_BAGON, + .moves = MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_FOCUS_ENERGY, MOVE_EMBER + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Perry[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_WINGULL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hugh[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_TROPIUS, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_TROPIUS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phil[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_SWELLOW, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_SWELLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jared[] = { - { - .iv = 100, - .lvl = 27, - .species = SPECIES_DODUO, - }, - { - .iv = 100, - .lvl = 27, - .species = SPECIES_SKARMORY, - }, - { - .iv = 100, - .lvl = 27, - .species = SPECIES_TROPIUS, - } + { + .iv = 100, + .lvl = 27, + .species = SPECIES_DODUO, + }, + { + .iv = 100, + .lvl = 27, + .species = SPECIES_SKARMORY, + }, + { + .iv = 100, + .lvl = 27, + .species = SPECIES_TROPIUS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Humberto[] = { - { - .iv = 250, - .lvl = 30, - .species = SPECIES_SKARMORY, - } + { + .iv = 250, + .lvl = 30, + .species = SPECIES_SKARMORY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Presley[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_TROPIUS, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_XATU, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_TROPIUS, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_XATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwardo[] = { - { - .iv = 150, - .lvl = 29, - .species = SPECIES_DODUO, - }, - { - .iv = 150, - .lvl = 29, - .species = SPECIES_PELIPPER, - } + { + .iv = 150, + .lvl = 29, + .species = SPECIES_DODUO, + }, + { + .iv = 150, + .lvl = 29, + .species = SPECIES_PELIPPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Colin[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_NATU, - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_NATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert1[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_SWABLU, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benny[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_SWELLOW, - }, - { - .iv = 0, - .lvl = 36, - .species = SPECIES_PELIPPER, - }, - { - .iv = 0, - .lvl = 36, - .species = SPECIES_XATU, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_SWELLOW, + }, + { + .iv = 0, + .lvl = 36, + .species = SPECIES_PELIPPER, + }, + { + .iv = 0, + .lvl = 36, + .species = SPECIES_XATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chester[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_TAILLOW, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_SWELLOW, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_TAILLOW, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_SWELLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert2[] = { - { - .iv = 10, - .lvl = 32, - .species = SPECIES_NATU, - }, - { - .iv = 10, - .lvl = 32, - .species = SPECIES_SWABLU, - } + { + .iv = 10, + .lvl = 32, + .species = SPECIES_NATU, + }, + { + .iv = 10, + .lvl = 32, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert3[] = { - { - .iv = 20, - .lvl = 35, - .species = SPECIES_NATU, - }, - { - .iv = 20, - .lvl = 35, - .species = SPECIES_ALTARIA, - } + { + .iv = 20, + .lvl = 35, + .species = SPECIES_NATU, + }, + { + .iv = 20, + .lvl = 35, + .species = SPECIES_ALTARIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert4[] = { - { - .iv = 30, - .lvl = 38, - .species = SPECIES_NATU, - }, - { - .iv = 30, - .lvl = 38, - .species = SPECIES_ALTARIA, - } + { + .iv = 30, + .lvl = 38, + .species = SPECIES_NATU, + }, + { + .iv = 30, + .lvl = 38, + .species = SPECIES_ALTARIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert5[] = { - { - .iv = 40, - .lvl = 41, - .species = SPECIES_ALTARIA, - }, - { - .iv = 40, - .lvl = 41, - .species = SPECIES_XATU, - } + { + .iv = 40, + .lvl = 41, + .species = SPECIES_ALTARIA, + }, + { + .iv = 40, + .lvl = 41, + .species = SPECIES_XATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alex[] = { - { - .iv = 150, - .lvl = 33, - .species = SPECIES_NATU, - }, - { - .iv = 150, - .lvl = 33, - .species = SPECIES_SWELLOW, - } + { + .iv = 150, + .lvl = 33, + .species = SPECIES_NATU, + }, + { + .iv = 150, + .lvl = 33, + .species = SPECIES_SWELLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beck[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_TROPIUS, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_TROPIUS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yasu[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_NINJASK, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takashi[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_NINJASK, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_KOFFING, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_NINJASK, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_KOFFING, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Dianne[] = { - { - .iv = 0, - .lvl = 43, - .species = SPECIES_CLAYDOL, - .heldItem = ITEM_NONE, - .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_LANTURN, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 43, + .species = SPECIES_CLAYDOL, + .heldItem = ITEM_NONE, + .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_LANTURN, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jani[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao1[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lung[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_KOFFING, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_NINJASK, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_KOFFING, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao2[] = { - { - .iv = 0, - .lvl = 24, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT - }, - { - .iv = 0, - .lvl = 24, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE - }, - { - .iv = 0, - .lvl = 24, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 24, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + }, + { + .iv = 0, + .lvl = 24, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + }, + { + .iv = 0, + .lvl = 24, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_KOFFING, + .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao3[] = { - { - .iv = 20, - .lvl = 27, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT - }, - { - .iv = 20, - .lvl = 27, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT - }, - { - .iv = 20, - .lvl = 27, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE - } + { + .iv = 20, + .lvl = 27, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + }, + { + .iv = 20, + .lvl = 27, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + }, + { + .iv = 20, + .lvl = 27, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_KOFFING, + .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao4[] = { - { - .iv = 30, - .lvl = 30, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE - }, - { - .iv = 30, - .lvl = 32, - .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE - } + { + .iv = 30, + .lvl = 30, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + }, + { + .iv = 30, + .lvl = 32, + .species = SPECIES_KOFFING, + .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Lao5[] = { - { - .iv = 40, - .lvl = 33, - .species = SPECIES_KOFFING, - .heldItem = ITEM_NONE, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_KOFFING, - .heldItem = ITEM_NONE, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_KOFFING, - .heldItem = ITEM_NONE, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT - }, - { - .iv = 40, - .lvl = 35, - .species = SPECIES_WEEZING, - .heldItem = ITEM_SMOKE_BALL, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE - } + { + .iv = 40, + .lvl = 33, + .species = SPECIES_KOFFING, + .heldItem = ITEM_NONE, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_KOFFING, + .heldItem = ITEM_NONE, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_KOFFING, + .heldItem = ITEM_NONE, + .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + }, + { + .iv = 40, + .lvl = 35, + .species = SPECIES_WEEZING, + .heldItem = ITEM_SMOKE_BALL, + .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jocelyn[] = { - { - .iv = 127, - .lvl = 13, - .species = SPECIES_MEDITITE, - } + { + .iv = 127, + .lvl = 13, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laura[] = { - { - .iv = 150, - .lvl = 13, - .species = SPECIES_MEDITITE, - } + { + .iv = 150, + .lvl = 13, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy1[] = { - { - .iv = 100, - .lvl = 18, - .species = SPECIES_MEDITITE, - }, - { - .iv = 100, - .lvl = 18, - .species = SPECIES_MAKUHITA, - } + { + .iv = 100, + .lvl = 18, + .species = SPECIES_MEDITITE, + }, + { + .iv = 100, + .lvl = 18, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cora[] = { - { - .iv = 100, - .lvl = 27, - .species = SPECIES_MEDITITE, - } + { + .iv = 100, + .lvl = 27, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paula[] = { - { - .iv = 100, - .lvl = 27, - .species = SPECIES_BRELOOM, - } + { + .iv = 100, + .lvl = 27, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy2[] = { - { - .iv = 110, - .lvl = 26, - .species = SPECIES_MEDITITE, - }, - { - .iv = 110, - .lvl = 26, - .species = SPECIES_MAKUHITA, - } + { + .iv = 110, + .lvl = 26, + .species = SPECIES_MEDITITE, + }, + { + .iv = 110, + .lvl = 26, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy3[] = { - { - .iv = 120, - .lvl = 29, - .species = SPECIES_MEDITITE, - }, - { - .iv = 120, - .lvl = 29, - .species = SPECIES_MAKUHITA, - } + { + .iv = 120, + .lvl = 29, + .species = SPECIES_MEDITITE, + }, + { + .iv = 120, + .lvl = 29, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy4[] = { - { - .iv = 130, - .lvl = 32, - .species = SPECIES_MEDICHAM, - }, - { - .iv = 130, - .lvl = 32, - .species = SPECIES_HARIYAMA, - } + { + .iv = 130, + .lvl = 32, + .species = SPECIES_MEDICHAM, + }, + { + .iv = 130, + .lvl = 32, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy5[] = { - { - .iv = 140, - .lvl = 35, - .species = SPECIES_MEDICHAM, - }, - { - .iv = 140, - .lvl = 35, - .species = SPECIES_HARIYAMA, - } + { + .iv = 140, + .lvl = 35, + .species = SPECIES_MEDICHAM, + }, + { + .iv = 140, + .lvl = 35, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline1[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_NUMEL, - .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_NUMEL, + .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarissa[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_ROSELIA, - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_ROSELIA, + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Angelica[] = { - { - .iv = 50, - .lvl = 30, - .species = SPECIES_CASTFORM, - .moves = MOVE_RAIN_DANCE, MOVE_WEATHER_BALL, MOVE_THUNDER, MOVE_WATER_PULSE - } + { + .iv = 50, + .lvl = 30, + .species = SPECIES_CASTFORM, + .moves = MOVE_RAIN_DANCE, MOVE_WEATHER_BALL, MOVE_THUNDER, MOVE_WATER_PULSE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline2[] = { - { - .iv = 10, - .lvl = 29, - .species = SPECIES_NUMEL, - .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY - } + { + .iv = 10, + .lvl = 29, + .species = SPECIES_NUMEL, + .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline3[] = { - { - .iv = 20, - .lvl = 32, - .species = SPECIES_NUMEL, - .moves = MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY - } + { + .iv = 20, + .lvl = 32, + .species = SPECIES_NUMEL, + .moves = MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline4[] = { - { - .iv = 30, - .lvl = 34, - .species = SPECIES_ROSELIA, - .moves = MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_SUNNY_DAY - }, - { - .iv = 30, - .lvl = 34, - .species = SPECIES_NUMEL, - .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY - } + { + .iv = 30, + .lvl = 34, + .species = SPECIES_ROSELIA, + .moves = MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_SUNNY_DAY + }, + { + .iv = 30, + .lvl = 34, + .species = SPECIES_NUMEL, + .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline5[] = { - { - .iv = 40, - .lvl = 37, - .species = SPECIES_ROSELIA, - .moves = MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_CAMERUPT, - .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY - } + { + .iv = 40, + .lvl = 37, + .species = SPECIES_ROSELIA, + .moves = MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_CAMERUPT, + .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beverly[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Imani[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyla[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Denise[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beth[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tara[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_HORSEA, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_HORSEA, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Missy[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alice[] = { - { - .iv = 0, - .lvl = 24, - .species = SPECIES_GOLDEEN, - }, - { - .iv = 0, - .lvl = 24, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 24, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 24, + .species = SPECIES_GOLDEEN, + }, + { + .iv = 0, + .lvl = 24, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 24, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny1[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grace[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tanya[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_LUVDISC, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_LUVDISC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sharon[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_SEAKING, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_SEAKING, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nikki[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_MARILL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_SPHEAL, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_MARILL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_SPHEAL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenda[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katie[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_GOLDEEN, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_SPHEAL, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_GOLDEEN, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_SPHEAL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Susie[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_LUVDISC, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_LUVDISC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kara[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_SEAKING, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_SEAKING, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dana[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_AZUMARILL, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_AZUMARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sienna[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_LUVDISC, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_LUVDISC, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_LUVDISC, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_LUVDISC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Debra[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_SEAKING, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_SEAKING, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Linda[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_HORSEA, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_SEADRA, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_HORSEA, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_SEADRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kaylee[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_LANTURN, - }, - { - .iv = 0, - .lvl = 34, - .species = SPECIES_PELIPPER, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_LANTURN, + }, + { + .iv = 0, + .lvl = 34, + .species = SPECIES_PELIPPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laurel[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_LUVDISC, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_LUVDISC, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_LUVDISC, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_LUVDISC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carlee[] = { - { - .iv = 0, - .lvl = 35, - .species = SPECIES_SEAKING, - } + { + .iv = 0, + .lvl = 35, + .species = SPECIES_SEAKING, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny2[] = { - { - .iv = 0, - .lvl = 38, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 38, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny3[] = { - { - .iv = 0, - .lvl = 41, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 41, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny4[] = { - { - .iv = 0, - .lvl = 43, - .species = SPECIES_STARYU, - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 43, + .species = SPECIES_STARYU, + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny5[] = { - { - .iv = 0, - .lvl = 45, - .species = SPECIES_LUVDISC, - }, - { - .iv = 0, - .lvl = 45, - .species = SPECIES_WAILMER, - }, - { - .iv = 0, - .lvl = 45, - .species = SPECIES_STARMIE, - } + { + .iv = 0, + .lvl = 45, + .species = SPECIES_LUVDISC, + }, + { + .iv = 0, + .lvl = 45, + .species = SPECIES_WAILMER, + }, + { + .iv = 0, + .lvl = 45, + .species = SPECIES_STARMIE, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Heidi[] = { - { - .iv = 0, - .lvl = 22, - .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH - }, - { - .iv = 0, - .lvl = 22, - .species = SPECIES_BALTOY, - .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB - } + { + .iv = 0, + .lvl = 22, + .species = SPECIES_SANDSHREW, + .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH + }, + { + .iv = 0, + .lvl = 22, + .species = SPECIES_BALTOY, + .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Becky[] = { - { - .iv = 0, - .lvl = 22, - .species = SPECIES_SANDSHREW, - .moves = MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH, MOVE_DIG - }, - { - .iv = 0, - .lvl = 22, - .species = SPECIES_MARILL, - .moves = MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_TAIL_WHIP, MOVE_DEFENSE_CURL - } + { + .iv = 0, + .lvl = 22, + .species = SPECIES_SANDSHREW, + .moves = MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH, MOVE_DIG + }, + { + .iv = 0, + .lvl = 22, + .species = SPECIES_MARILL, + .moves = MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_TAIL_WHIP, MOVE_DEFENSE_CURL + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carol[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_TAILLOW, - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_LOMBRE, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_TAILLOW, + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_LOMBRE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nancy[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_MARILL, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_LOMBRE, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_MARILL, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_LOMBRE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Martha[] = { - { - .iv = 0, - .lvl = 23, - .species = SPECIES_SKITTY, - }, - { - .iv = 0, - .lvl = 23, - .species = SPECIES_SWABLU, - } + { + .iv = 0, + .lvl = 23, + .species = SPECIES_SKITTY, + }, + { + .iv = 0, + .lvl = 23, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana1[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 19, - .species = SPECIES_ODDISH, - }, - { - .iv = 0, - .lvl = 19, - .species = SPECIES_SWABLU, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 19, + .species = SPECIES_ODDISH, + }, + { + .iv = 0, + .lvl = 19, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Cedric[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_WOBBUFFET, - .moves = MOVE_DESTINY_BOND, MOVE_SAFEGUARD, MOVE_COUNTER, MOVE_MIRROR_COAT - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_WOBBUFFET, + .moves = MOVE_DESTINY_BOND, MOVE_SAFEGUARD, MOVE_COUNTER, MOVE_MIRROR_COAT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Irene[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana2[] = { - { - .iv = 10, - .lvl = 25, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_GLOOM, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_SWABLU, - } + { + .iv = 10, + .lvl = 25, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_GLOOM, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana3[] = { - { - .iv = 20, - .lvl = 28, - .species = SPECIES_BRELOOM, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_GLOOM, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_SWABLU, - } + { + .iv = 20, + .lvl = 28, + .species = SPECIES_BRELOOM, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_GLOOM, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana4[] = { - { - .iv = 30, - .lvl = 31, - .species = SPECIES_BRELOOM, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_GLOOM, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_SWABLU, - } + { + .iv = 30, + .lvl = 31, + .species = SPECIES_BRELOOM, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_GLOOM, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana5[] = { - { - .iv = 40, - .lvl = 40, - .species = SPECIES_BRELOOM, - }, - { - .iv = 40, - .lvl = 40, - .species = SPECIES_VILEPLUME, - }, - { - .iv = 40, - .lvl = 40, - .species = SPECIES_ALTARIA, - } + { + .iv = 40, + .lvl = 40, + .species = SPECIES_BRELOOM, + }, + { + .iv = 40, + .lvl = 40, + .species = SPECIES_VILEPLUME, + }, + { + .iv = 40, + .lvl = 40, + .species = SPECIES_ALTARIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv1[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_PLUSLE, - }, - { - .iv = 0, - .lvl = 15, - .species = SPECIES_MINUN, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_PLUSLE, + }, + { + .iv = 0, + .lvl = 15, + .species = SPECIES_MINUN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv2[] = { - { - .iv = 10, - .lvl = 27, - .species = SPECIES_PLUSLE, - }, - { - .iv = 10, - .lvl = 27, - .species = SPECIES_MINUN, - } + { + .iv = 10, + .lvl = 27, + .species = SPECIES_PLUSLE, + }, + { + .iv = 10, + .lvl = 27, + .species = SPECIES_MINUN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_GinaAndMia1[] = { - { - .iv = 0, - .lvl = 6, - .species = SPECIES_SEEDOT, - }, - { - .iv = 0, - .lvl = 6, - .species = SPECIES_LOTAD, - } + { + .iv = 0, + .lvl = 6, + .species = SPECIES_SEEDOT, + }, + { + .iv = 0, + .lvl = 6, + .species = SPECIES_LOTAD, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_MiuAndYuki[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_BEAUTIFLY, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_DUSTOX, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_BEAUTIFLY, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_DUSTOX, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv3[] = { - { - .iv = 0, - .lvl = 9, - .species = SPECIES_PLUSLE, - }, - { - .iv = 0, - .lvl = 9, - .species = SPECIES_MINUN, - } + { + .iv = 0, + .lvl = 9, + .species = SPECIES_PLUSLE, + }, + { + .iv = 0, + .lvl = 9, + .species = SPECIES_MINUN, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_GinaAndMia2[] = { - { - .iv = 0, - .lvl = 10, - .species = SPECIES_DUSKULL, - .moves = MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_NONE, MOVE_NONE - }, - { - .iv = 0, - .lvl = 10, - .species = SPECIES_SHROOMISH, - .moves = MOVE_ABSORB, MOVE_LEECH_SEED, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 10, + .species = SPECIES_DUSKULL, + .moves = MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_NONE, MOVE_NONE + }, + { + .iv = 0, + .lvl = 10, + .species = SPECIES_SHROOMISH, + .moves = MOVE_ABSORB, MOVE_LEECH_SEED, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv4[] = { - { - .iv = 20, - .lvl = 30, - .species = SPECIES_PLUSLE, - }, - { - .iv = 20, - .lvl = 30, - .species = SPECIES_MINUN, - } + { + .iv = 20, + .lvl = 30, + .species = SPECIES_PLUSLE, + }, + { + .iv = 20, + .lvl = 30, + .species = SPECIES_MINUN, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv5[] = { - { - .iv = 30, - .lvl = 33, - .species = SPECIES_PLUSLE, - .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND - }, - { - .iv = 30, - .lvl = 33, - .species = SPECIES_MINUN, - .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND - } + { + .iv = 30, + .lvl = 33, + .species = SPECIES_PLUSLE, + .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND + }, + { + .iv = 30, + .lvl = 33, + .species = SPECIES_MINUN, + .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv6[] = { - { - .iv = 40, - .lvl = 36, - .species = SPECIES_PLUSLE, - .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND - }, - { - .iv = 40, - .lvl = 36, - .species = SPECIES_MINUN, - .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND - } + { + .iv = 40, + .lvl = 36, + .species = SPECIES_PLUSLE, + .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND + }, + { + .iv = 40, + .lvl = 36, + .species = SPECIES_MINUN, + .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Huey[] = { - { - .iv = 10, - .lvl = 12, - .species = SPECIES_WINGULL, - }, - { - .iv = 10, - .lvl = 12, - .species = SPECIES_MACHOP, - } + { + .iv = 10, + .lvl = 12, + .species = SPECIES_WINGULL, + }, + { + .iv = 10, + .lvl = 12, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edmond[] = { - { - .iv = 0, - .lvl = 13, - .species = SPECIES_WINGULL, - } + { + .iv = 0, + .lvl = 13, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest1[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_MACHOKE, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dwayne[] = { - { - .iv = 0, - .lvl = 11, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_MACHOP, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_TENTACOOL, - } + { + .iv = 0, + .lvl = 11, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_MACHOP, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phillip[] = { - { - .iv = 0, - .lvl = 44, - .species = SPECIES_TENTACRUEL, - }, - { - .iv = 0, - .lvl = 44, - .species = SPECIES_MACHOKE, - } + { + .iv = 0, + .lvl = 44, + .species = SPECIES_TENTACRUEL, + }, + { + .iv = 0, + .lvl = 44, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonard[] = { - { - .iv = 0, - .lvl = 43, - .species = SPECIES_MACHOP, - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_PELIPPER, - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_MACHOKE, - } + { + .iv = 0, + .lvl = 43, + .species = SPECIES_MACHOP, + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_PELIPPER, + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Duncan[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_SPHEAL, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_MACHOKE, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_SPHEAL, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest2[] = { - { - .iv = 10, - .lvl = 36, - .species = SPECIES_WINGULL, - }, - { - .iv = 10, - .lvl = 36, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 10, - .lvl = 36, - .species = SPECIES_MACHOKE, - } + { + .iv = 10, + .lvl = 36, + .species = SPECIES_WINGULL, + }, + { + .iv = 10, + .lvl = 36, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 10, + .lvl = 36, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest3[] = { - { - .iv = 20, - .lvl = 39, - .species = SPECIES_PELIPPER, - }, - { - .iv = 20, - .lvl = 39, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 20, - .lvl = 39, - .species = SPECIES_MACHOKE, - } + { + .iv = 20, + .lvl = 39, + .species = SPECIES_PELIPPER, + }, + { + .iv = 20, + .lvl = 39, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 20, + .lvl = 39, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest4[] = { - { - .iv = 30, - .lvl = 42, - .species = SPECIES_PELIPPER, - }, - { - .iv = 30, - .lvl = 42, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 30, - .lvl = 42, - .species = SPECIES_MACHOKE, - } + { + .iv = 30, + .lvl = 42, + .species = SPECIES_PELIPPER, + }, + { + .iv = 30, + .lvl = 42, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 30, + .lvl = 42, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest5[] = { - { - .iv = 40, - .lvl = 45, - .species = SPECIES_PELIPPER, - }, - { - .iv = 40, - .lvl = 45, - .species = SPECIES_MACHOKE, - }, - { - .iv = 40, - .lvl = 45, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 40, + .lvl = 45, + .species = SPECIES_PELIPPER, + }, + { + .iv = 40, + .lvl = 45, + .species = SPECIES_MACHOKE, + }, + { + .iv = 40, + .lvl = 45, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eli[] = { - { - .iv = 100, - .lvl = 23, - .species = SPECIES_NUMEL, - } + { + .iv = 100, + .lvl = 23, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Annika[] = { - { - .iv = 100, - .lvl = 39, - .species = SPECIES_FEEBAS, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT - }, - { - .iv = 100, - .lvl = 39, - .species = SPECIES_FEEBAS, - .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT - } + { + .iv = 100, + .lvl = 39, + .species = SPECIES_FEEBAS, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT + }, + { + .iv = 100, + .lvl = 39, + .species = SPECIES_FEEBAS, + .heldItem = ITEM_ORAN_BERRY, + .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jazmyn[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_ABSOL, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_ABSOL, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Jonas[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_KOFFING, - .moves = MOVE_TOXIC, MOVE_THUNDER, MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_KOFFING, + .moves = MOVE_TOXIC, MOVE_THUNDER, MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Kayley[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_CASTFORM, - .moves = MOVE_SUNNY_DAY, MOVE_WEATHER_BALL, MOVE_FLAMETHROWER, MOVE_SOLAR_BEAM - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_CASTFORM, + .moves = MOVE_SUNNY_DAY, MOVE_WEATHER_BALL, MOVE_FLAMETHROWER, MOVE_SOLAR_BEAM + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Auron[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_MACHAMP, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_MACHAMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kelvin[] = { - { - .iv = 150, - .lvl = 33, - .species = SPECIES_MACHOKE, - }, - { - .iv = 150, - .lvl = 33, - .species = SPECIES_SPHEAL, - } + { + .iv = 150, + .lvl = 33, + .species = SPECIES_MACHOKE, + }, + { + .iv = 150, + .lvl = 33, + .species = SPECIES_SPHEAL, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Marley[] = { - { - .iv = 255, - .lvl = 34, - .species = SPECIES_MANECTRIC, - .heldItem = ITEM_NONE, - .moves = MOVE_BITE, MOVE_ROAR, MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT - } + { + .iv = 255, + .lvl = 34, + .species = SPECIES_MANECTRIC, + .heldItem = ITEM_NONE, + .moves = MOVE_BITE, MOVE_ROAR, MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reyna[] = { - { - .iv = 50, - .lvl = 33, - .species = SPECIES_MEDITITE, - }, - { - .iv = 200, - .lvl = 33, - .species = SPECIES_HARIYAMA, - } + { + .iv = 50, + .lvl = 33, + .species = SPECIES_MEDITITE, + }, + { + .iv = 200, + .lvl = 33, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hudson[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Conor[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_CHINCHOU, - }, - { - .iv = 200, - .lvl = 33, - .species = SPECIES_HARIYAMA, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_CHINCHOU, + }, + { + .iv = 200, + .lvl = 33, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin1[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_LOMBRE, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_LOMBRE, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hector[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_ZANGOOSE, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SEVIPER, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_ZANGOOSE, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SEVIPER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha1[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_CAMERUPT, - }, - { - .iv = 100, - .lvl = 38, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 100, - .lvl = 40, - .species = SPECIES_GOLBAT, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_CAMERUPT, + }, + { + .iv = 100, + .lvl = 38, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 100, + .lvl = 40, + .species = SPECIES_GOLBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin2[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_LOMBRE, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_LOMBRE, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin3[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_LOMBRE, - }, - { - .iv = 0, - .lvl = 29, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_LOMBRE, + }, + { + .iv = 0, + .lvl = 29, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin4[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_LOMBRE, - }, - { - .iv = 0, - .lvl = 32, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_LOMBRE, + }, + { + .iv = 0, + .lvl = 32, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin5[] = { - { - .iv = 0, - .lvl = 35, - .species = SPECIES_LUDICOLO, - }, - { - .iv = 0, - .lvl = 35, - .species = SPECIES_SHIFTRY, - } + { + .iv = 0, + .lvl = 35, + .species = SPECIES_LUDICOLO, + }, + { + .iv = 0, + .lvl = 35, + .species = SPECIES_SHIFTRY, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally1[] = { - { - .iv = 150, - .lvl = 44, - .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE - }, - { - .iv = 150, - .lvl = 43, - .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK - }, - { - .iv = 150, - .lvl = 44, - .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC - }, - { - .iv = 150, - .lvl = 41, - .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH - }, - { - .iv = 250, - .lvl = 45, - .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT - } + { + .iv = 150, + .lvl = 44, + .species = SPECIES_ALTARIA, + .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + }, + { + .iv = 150, + .lvl = 43, + .species = SPECIES_DELCATTY, + .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + }, + { + .iv = 150, + .lvl = 44, + .species = SPECIES_ROSELIA, + .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + }, + { + .iv = 150, + .lvl = 41, + .species = SPECIES_MAGNETON, + .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + }, + { + .iv = 250, + .lvl = 45, + .species = SPECIES_GARDEVOIR, + .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan1[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_TREECKO, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_TREECKO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan2[] = { - { - .iv = 50, - .lvl = 18, - .species = SPECIES_SLUGMA, - }, - { - .iv = 50, - .lvl = 18, - .species = SPECIES_WINGULL, - }, - { - .iv = 100, - .lvl = 20, - .species = SPECIES_GROVYLE, - } + { + .iv = 50, + .lvl = 18, + .species = SPECIES_SLUGMA, + }, + { + .iv = 50, + .lvl = 18, + .species = SPECIES_WINGULL, + }, + { + .iv = 100, + .lvl = 20, + .species = SPECIES_GROVYLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan3[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_SLUGMA, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_PELIPPER, - }, - { - .iv = 150, - .lvl = 31, - .species = SPECIES_GROVYLE, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_SLUGMA, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_PELIPPER, + }, + { + .iv = 150, + .lvl = 31, + .species = SPECIES_GROVYLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan4[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_TORCHIC, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_TORCHIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan5[] = { - { - .iv = 50, - .lvl = 18, - .species = SPECIES_WINGULL, - }, - { - .iv = 50, - .lvl = 18, - .species = SPECIES_LOMBRE, - }, - { - .iv = 100, - .lvl = 20, - .species = SPECIES_COMBUSKEN, - } + { + .iv = 50, + .lvl = 18, + .species = SPECIES_WINGULL, + }, + { + .iv = 50, + .lvl = 18, + .species = SPECIES_LOMBRE, + }, + { + .iv = 100, + .lvl = 20, + .species = SPECIES_COMBUSKEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan6[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_PELIPPER, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_LOMBRE, - }, - { - .iv = 150, - .lvl = 31, - .species = SPECIES_COMBUSKEN, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_PELIPPER, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_LOMBRE, + }, + { + .iv = 150, + .lvl = 31, + .species = SPECIES_COMBUSKEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan7[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_MUDKIP, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_MUDKIP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan8[] = { - { - .iv = 50, - .lvl = 18, - .species = SPECIES_LOMBRE, - }, - { - .iv = 50, - .lvl = 18, - .species = SPECIES_SLUGMA, - }, - { - .iv = 100, - .lvl = 20, - .species = SPECIES_MARSHTOMP, - } + { + .iv = 50, + .lvl = 18, + .species = SPECIES_LOMBRE, + }, + { + .iv = 50, + .lvl = 18, + .species = SPECIES_SLUGMA, + }, + { + .iv = 100, + .lvl = 20, + .species = SPECIES_MARSHTOMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan9[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_LOMBRE, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_SLUGMA, - }, - { - .iv = 150, - .lvl = 31, - .species = SPECIES_MARSHTOMP, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_LOMBRE, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_SLUGMA, + }, + { + .iv = 150, + .lvl = 31, + .species = SPECIES_MARSHTOMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May1[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_TREECKO, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_TREECKO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May2[] = { - { - .iv = 50, - .lvl = 18, - .species = SPECIES_WINGULL, - }, - { - .iv = 50, - .lvl = 18, - .species = SPECIES_SLUGMA, - }, - { - .iv = 100, - .lvl = 20, - .species = SPECIES_GROVYLE, - } + { + .iv = 50, + .lvl = 18, + .species = SPECIES_WINGULL, + }, + { + .iv = 50, + .lvl = 18, + .species = SPECIES_SLUGMA, + }, + { + .iv = 100, + .lvl = 20, + .species = SPECIES_GROVYLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May3[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_SLUGMA, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_LOMBRE, - }, - { - .iv = 150, - .lvl = 31, - .species = SPECIES_GROVYLE, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_SLUGMA, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_LOMBRE, + }, + { + .iv = 150, + .lvl = 31, + .species = SPECIES_GROVYLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May4[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_TORCHIC, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_TORCHIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May5[] = { - { - .iv = 50, - .lvl = 18, - .species = SPECIES_WINGULL, - }, - { - .iv = 50, - .lvl = 18, - .species = SPECIES_LOMBRE, - }, - { - .iv = 100, - .lvl = 20, - .species = SPECIES_COMBUSKEN, - } + { + .iv = 50, + .lvl = 18, + .species = SPECIES_WINGULL, + }, + { + .iv = 50, + .lvl = 18, + .species = SPECIES_LOMBRE, + }, + { + .iv = 100, + .lvl = 20, + .species = SPECIES_COMBUSKEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May6[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_PELIPPER, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_LOMBRE, - }, - { - .iv = 150, - .lvl = 31, - .species = SPECIES_COMBUSKEN, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_PELIPPER, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_LOMBRE, + }, + { + .iv = 150, + .lvl = 31, + .species = SPECIES_COMBUSKEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May7[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_MUDKIP, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_MUDKIP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May8[] = { - { - .iv = 50, - .lvl = 18, - .species = SPECIES_LOMBRE, - }, - { - .iv = 50, - .lvl = 18, - .species = SPECIES_SLUGMA, - }, - { - .iv = 100, - .lvl = 20, - .species = SPECIES_MARSHTOMP, - } + { + .iv = 50, + .lvl = 18, + .species = SPECIES_LOMBRE, + }, + { + .iv = 50, + .lvl = 18, + .species = SPECIES_SLUGMA, + }, + { + .iv = 100, + .lvl = 20, + .species = SPECIES_MARSHTOMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May9[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_LOMBRE, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_SLUGMA, - }, - { - .iv = 150, - .lvl = 31, - .species = SPECIES_MARSHTOMP, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_LOMBRE, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_SLUGMA, + }, + { + .iv = 150, + .lvl = 31, + .species = SPECIES_MARSHTOMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac1[] = { - { - .iv = 0, - .lvl = 11, - .species = SPECIES_WHISMUR, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_ARON, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_TAILLOW, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_MAKUHITA, - } + { + .iv = 0, + .lvl = 11, + .species = SPECIES_WHISMUR, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_ARON, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_TAILLOW, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Davis[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_PINSIR, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_PINSIR, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Mitchell[] = { - { - .iv = 0, - .lvl = 43, - .species = SPECIES_LUNATONE, - .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_PSYCHIC - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_SOLROCK, - .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_SHADOW_BALL - } + { + .iv = 0, + .lvl = 43, + .species = SPECIES_LUNATONE, + .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_PSYCHIC + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_SOLROCK, + .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_SHADOW_BALL + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac2[] = { - { - .iv = 10, - .lvl = 22, - .species = SPECIES_LOUDRED, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_LINOONE, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_ARON, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_SWELLOW, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_MAKUHITA, - } + { + .iv = 10, + .lvl = 22, + .species = SPECIES_LOUDRED, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_LINOONE, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_ARON, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_SWELLOW, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac3[] = { - { - .iv = 20, - .lvl = 25, - .species = SPECIES_LOUDRED, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_LINOONE, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_ARON, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_SWELLOW, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_HARIYAMA, - } + { + .iv = 20, + .lvl = 25, + .species = SPECIES_LOUDRED, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_LINOONE, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_ARON, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_SWELLOW, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac4[] = { - { - .iv = 30, - .lvl = 28, - .species = SPECIES_LOUDRED, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_LINOONE, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_ARON, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_SWELLOW, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_HARIYAMA, - } + { + .iv = 30, + .lvl = 28, + .species = SPECIES_LOUDRED, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_LINOONE, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_ARON, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_SWELLOW, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac5[] = { - { - .iv = 40, - .lvl = 31, - .species = SPECIES_LOUDRED, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_LINOONE, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_LAIRON, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_SWELLOW, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_HARIYAMA, - } + { + .iv = 40, + .lvl = 31, + .species = SPECIES_LOUDRED, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_LINOONE, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_LAIRON, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_SWELLOW, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_HARIYAMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia1[] = { - { - .iv = 0, - .lvl = 11, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_MARILL, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_ROSELIA, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_SKITTY, - }, - { - .iv = 0, - .lvl = 11, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 11, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_MARILL, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_ROSELIA, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_SKITTY, + }, + { + .iv = 0, + .lvl = 11, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Halle[] = { - { - .iv = 0, - .lvl = 43, - .species = SPECIES_SABLEYE, - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_ABSOL, - } + { + .iv = 0, + .lvl = 43, + .species = SPECIES_SABLEYE, + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_ABSOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Garrison[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_SANDSLASH, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_SANDSLASH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia2[] = { - { - .iv = 10, - .lvl = 22, - .species = SPECIES_WINGULL, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_MARILL, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_ROSELIA, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_SKITTY, - }, - { - .iv = 10, - .lvl = 22, - .species = SPECIES_GOLDEEN, - } + { + .iv = 10, + .lvl = 22, + .species = SPECIES_WINGULL, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_MARILL, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_ROSELIA, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_SKITTY, + }, + { + .iv = 10, + .lvl = 22, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia3[] = { - { - .iv = 20, - .lvl = 25, - .species = SPECIES_PELIPPER, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_BRELOOM, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_MARILL, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_ROSELIA, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_DELCATTY, - }, - { - .iv = 20, - .lvl = 25, - .species = SPECIES_GOLDEEN, - } + { + .iv = 20, + .lvl = 25, + .species = SPECIES_PELIPPER, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_BRELOOM, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_MARILL, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_ROSELIA, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_DELCATTY, + }, + { + .iv = 20, + .lvl = 25, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia4[] = { - { - .iv = 30, - .lvl = 28, - .species = SPECIES_PELIPPER, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_BRELOOM, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_MARILL, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_ROSELIA, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_DELCATTY, - }, - { - .iv = 30, - .lvl = 28, - .species = SPECIES_GOLDEEN, - } + { + .iv = 30, + .lvl = 28, + .species = SPECIES_PELIPPER, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_BRELOOM, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_MARILL, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_ROSELIA, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_DELCATTY, + }, + { + .iv = 30, + .lvl = 28, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia5[] = { - { - .iv = 40, - .lvl = 31, - .species = SPECIES_PELIPPER, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_BRELOOM, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_AZUMARILL, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_ROSELIA, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_DELCATTY, - }, - { - .iv = 40, - .lvl = 31, - .species = SPECIES_SEAKING, - } + { + .iv = 40, + .lvl = 31, + .species = SPECIES_PELIPPER, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_BRELOOM, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_AZUMARILL, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_ROSELIA, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_DELCATTY, + }, + { + .iv = 40, + .lvl = 31, + .species = SPECIES_SEAKING, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson1[] = { - { - .iv = 50, - .lvl = 27, - .species = SPECIES_BRELOOM, - } + { + .iv = 50, + .lvl = 27, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lorenzo[] = { - { - .iv = 50, - .lvl = 28, - .species = SPECIES_SEEDOT, - }, - { - .iv = 50, - .lvl = 28, - .species = SPECIES_NUZLEAF, - }, - { - .iv = 50, - .lvl = 28, - .species = SPECIES_LOMBRE, - } + { + .iv = 50, + .lvl = 28, + .species = SPECIES_SEEDOT, + }, + { + .iv = 50, + .lvl = 28, + .species = SPECIES_NUZLEAF, + }, + { + .iv = 50, + .lvl = 28, + .species = SPECIES_LOMBRE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sebastian[] = { - { - .iv = 50, - .lvl = 39, - .species = SPECIES_CACTURNE, - } + { + .iv = 50, + .lvl = 39, + .species = SPECIES_CACTURNE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson2[] = { - { - .iv = 60, - .lvl = 31, - .species = SPECIES_BRELOOM, - } + { + .iv = 60, + .lvl = 31, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson3[] = { - { - .iv = 70, - .lvl = 34, - .species = SPECIES_BRELOOM, - } + { + .iv = 70, + .lvl = 34, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson4[] = { - { - .iv = 80, - .lvl = 37, - .species = SPECIES_BRELOOM, - } + { + .iv = 80, + .lvl = 37, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson5[] = { - { - .iv = 90, - .lvl = 39, - .species = SPECIES_KECLEON, - }, - { - .iv = 90, - .lvl = 39, - .species = SPECIES_BRELOOM, - } + { + .iv = 90, + .lvl = 39, + .species = SPECIES_KECLEON, + }, + { + .iv = 90, + .lvl = 39, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine1[] = { - { - .iv = 50, - .lvl = 26, - .species = SPECIES_GLOOM, - }, - { - .iv = 50, - .lvl = 26, - .species = SPECIES_ROSELIA, - } + { + .iv = 50, + .lvl = 26, + .species = SPECIES_GLOOM, + }, + { + .iv = 50, + .lvl = 26, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenna[] = { - { - .iv = 50, - .lvl = 28, - .species = SPECIES_LOTAD, - }, - { - .iv = 50, - .lvl = 28, - .species = SPECIES_LOMBRE, - }, - { - .iv = 50, - .lvl = 28, - .species = SPECIES_NUZLEAF, - } + { + .iv = 50, + .lvl = 28, + .species = SPECIES_LOTAD, + }, + { + .iv = 50, + .lvl = 28, + .species = SPECIES_LOMBRE, + }, + { + .iv = 50, + .lvl = 28, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophia[] = { - { - .iv = 50, - .lvl = 38, - .species = SPECIES_SWABLU, - }, - { - .iv = 50, - .lvl = 38, - .species = SPECIES_ROSELIA, - } + { + .iv = 50, + .lvl = 38, + .species = SPECIES_SWABLU, + }, + { + .iv = 50, + .lvl = 38, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine2[] = { - { - .iv = 60, - .lvl = 30, - .species = SPECIES_GLOOM, - }, - { - .iv = 60, - .lvl = 30, - .species = SPECIES_ROSELIA, - } + { + .iv = 60, + .lvl = 30, + .species = SPECIES_GLOOM, + }, + { + .iv = 60, + .lvl = 30, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine3[] = { - { - .iv = 70, - .lvl = 33, - .species = SPECIES_GLOOM, - }, - { - .iv = 70, - .lvl = 33, - .species = SPECIES_ROSELIA, - } + { + .iv = 70, + .lvl = 33, + .species = SPECIES_GLOOM, + }, + { + .iv = 70, + .lvl = 33, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine4[] = { - { - .iv = 80, - .lvl = 36, - .species = SPECIES_GLOOM, - }, - { - .iv = 80, - .lvl = 36, - .species = SPECIES_ROSELIA, - } + { + .iv = 80, + .lvl = 36, + .species = SPECIES_GLOOM, + }, + { + .iv = 80, + .lvl = 36, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine5[] = { - { - .iv = 90, - .lvl = 39, - .species = SPECIES_BELLOSSOM, - }, - { - .iv = 90, - .lvl = 39, - .species = SPECIES_ROSELIA, - } + { + .iv = 90, + .lvl = 39, + .species = SPECIES_BELLOSSOM, + }, + { + .iv = 90, + .lvl = 39, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julio[] = { - { - .iv = 0, - .lvl = 21, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 0, + .lvl = 21, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt27[] = { - { - .iv = 50, - .lvl = 35, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 50, - .lvl = 35, - .species = SPECIES_GOLBAT, - } + { + .iv = 50, + .lvl = 35, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 50, + .lvl = 35, + .species = SPECIES_GOLBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt28[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_WAILMER, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_WAILMER, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt29[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_WAILMER, - }, - { - .iv = 0, - .lvl = 30, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_WAILMER, + }, + { + .iv = 0, + .lvl = 30, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt30[] = { - { - .iv = 50, - .lvl = 22, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 50, - .lvl = 22, - .species = SPECIES_NUMEL, - } + { + .iv = 50, + .lvl = 22, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 50, + .lvl = 22, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marc[] = { - { - .iv = 120, - .lvl = 8, - .species = SPECIES_GEODUDE, - }, - { - .iv = 130, - .lvl = 8, - .species = SPECIES_GEODUDE, - } + { + .iv = 120, + .lvl = 8, + .species = SPECIES_GEODUDE, + }, + { + .iv = 130, + .lvl = 8, + .species = SPECIES_GEODUDE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenden[] = { - { - .iv = 100, - .lvl = 13, - .species = SPECIES_MACHOP, - } + { + .iv = 100, + .lvl = 13, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lilith[] = { - { - .iv = 150, - .lvl = 13, - .species = SPECIES_MEDITITE, - } + { + .iv = 150, + .lvl = 13, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristian[] = { - { - .iv = 200, - .lvl = 13, - .species = SPECIES_MAKUHITA, - } + { + .iv = 200, + .lvl = 13, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sylvia[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_MEDITITE, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonardo[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Athena[] = { - { - .iv = 100, - .lvl = 32, - .species = SPECIES_MANECTRIC, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_NONE - }, - { - .iv = 100, - .lvl = 32, - .species = SPECIES_LINOONE, - .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_THIEF, MOVE_NONE, MOVE_NONE - } + { + .iv = 100, + .lvl = 32, + .species = SPECIES_MANECTRIC, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_NONE + }, + { + .iv = 100, + .lvl = 32, + .species = SPECIES_LINOONE, + .heldItem = ITEM_NONE, + .moves = MOVE_SURF, MOVE_THIEF, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Harrison[] = { - { - .iv = 0, - .lvl = 35, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 0, + .lvl = 35, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt31[] = { - { - .iv = 0, - .lvl = 20, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 20, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarence[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_SHARPEDO, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Terry[] = { - { - .iv = 0, - .lvl = 37, - .species = SPECIES_GIRAFARIG, - } + { + .iv = 0, + .lvl = 37, + .species = SPECIES_GIRAFARIG, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nate[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_SPOINK, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_SPOINK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kathleen[] = { - { - .iv = 100, - .lvl = 36, - .species = SPECIES_KADABRA, - } + { + .iv = 100, + .lvl = 36, + .species = SPECIES_KADABRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clifford[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_GIRAFARIG, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_GIRAFARIG, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicholas[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_WOBBUFFET, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_WOBBUFFET, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt32[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_ZUBAT, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_ZUBAT, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt33[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_BALTOY, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_BALTOY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt34[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt35[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt36[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_BALTOY, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_BALTOY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Macey[] = { - { - .iv = 0, - .lvl = 36, - .species = SPECIES_NATU, - } + { + .iv = 0, + .lvl = 36, + .species = SPECIES_NATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan10[] = { - { - .iv = 25, - .lvl = 13, - .species = SPECIES_LOTAD, - }, - { - .iv = 50, - .lvl = 15, - .species = SPECIES_TORCHIC, - } + { + .iv = 25, + .lvl = 13, + .species = SPECIES_LOTAD, + }, + { + .iv = 50, + .lvl = 15, + .species = SPECIES_TORCHIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan11[] = { - { - .iv = 25, - .lvl = 13, - .species = SPECIES_WINGULL, - }, - { - .iv = 50, - .lvl = 15, - .species = SPECIES_TREECKO, - } + { + .iv = 25, + .lvl = 13, + .species = SPECIES_WINGULL, + }, + { + .iv = 50, + .lvl = 15, + .species = SPECIES_TREECKO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paxton[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_SWELLOW, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_BRELOOM, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_SWELLOW, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabella[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt37[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_ZUBAT, - }, - { - .iv = 0, - .lvl = 27, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_ZUBAT, + }, + { + .iv = 0, + .lvl = 27, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha2[] = { - { - .iv = 50, - .lvl = 18, - .species = SPECIES_NUMEL, - }, - { - .iv = 50, - .lvl = 20, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 50, - .lvl = 22, - .species = SPECIES_NUMEL, - }, - { - .iv = 50, - .lvl = 22, - .species = SPECIES_ZUBAT, - } + { + .iv = 50, + .lvl = 18, + .species = SPECIES_NUMEL, + }, + { + .iv = 50, + .lvl = 20, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 50, + .lvl = 22, + .species = SPECIES_NUMEL, + }, + { + .iv = 50, + .lvl = 22, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonathan[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_KECLEON, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_LOUDRED, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_KECLEON, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan12[] = { - { - .iv = 25, - .lvl = 13, - .species = SPECIES_SLUGMA, - }, - { - .iv = 50, - .lvl = 15, - .species = SPECIES_MUDKIP, - } + { + .iv = 25, + .lvl = 13, + .species = SPECIES_SLUGMA, + }, + { + .iv = 50, + .lvl = 15, + .species = SPECIES_MUDKIP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May10[] = { - { - .iv = 25, - .lvl = 13, - .species = SPECIES_WINGULL, - }, - { - .iv = 50, - .lvl = 15, - .species = SPECIES_TREECKO, - } + { + .iv = 25, + .lvl = 13, + .species = SPECIES_WINGULL, + }, + { + .iv = 50, + .lvl = 15, + .species = SPECIES_TREECKO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie1[] = { - { - .iv = 150, - .lvl = 37, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 150, - .lvl = 38, - .species = SPECIES_CROBAT, - }, - { - .iv = 150, - .lvl = 39, - .species = SPECIES_CAMERUPT, - } + { + .iv = 150, + .lvl = 37, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 150, + .lvl = 38, + .species = SPECIES_CROBAT, + }, + { + .iv = 150, + .lvl = 39, + .species = SPECIES_CAMERUPT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie2[] = { - { - .iv = 150, - .lvl = 24, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 150, - .lvl = 24, - .species = SPECIES_ZUBAT, - }, - { - .iv = 150, - .lvl = 25, - .species = SPECIES_CAMERUPT, - } + { + .iv = 150, + .lvl = 24, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 150, + .lvl = 24, + .species = SPECIES_ZUBAT, + }, + { + .iv = 150, + .lvl = 25, + .species = SPECIES_CAMERUPT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiana[] = { - { - .iv = 0, - .lvl = 4, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 4, - .species = SPECIES_SHROOMISH, - } + { + .iv = 0, + .lvl = 4, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 4, + .species = SPECIES_SHROOMISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley1[] = { - { - .iv = 0, - .lvl = 6, - .species = SPECIES_LOTAD, - }, - { - .iv = 0, - .lvl = 6, - .species = SPECIES_SHROOMISH, - } + { + .iv = 0, + .lvl = 6, + .species = SPECIES_LOTAD, + }, + { + .iv = 0, + .lvl = 6, + .species = SPECIES_SHROOMISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Janice[] = { - { - .iv = 0, - .lvl = 9, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 9, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vivi[] = { - { - .iv = 100, - .lvl = 15, - .species = SPECIES_MARILL, - }, - { - .iv = 100, - .lvl = 15, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 100, - .lvl = 15, - .species = SPECIES_NUMEL, - } + { + .iv = 100, + .lvl = 15, + .species = SPECIES_MARILL, + }, + { + .iv = 100, + .lvl = 15, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 100, + .lvl = 15, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley2[] = { - { - .iv = 10, - .lvl = 26, - .species = SPECIES_LOMBRE, - }, - { - .iv = 10, - .lvl = 26, - .species = SPECIES_SHROOMISH, - } + { + .iv = 10, + .lvl = 26, + .species = SPECIES_LOMBRE, + }, + { + .iv = 10, + .lvl = 26, + .species = SPECIES_SHROOMISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_LOMBRE, - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_BRELOOM, - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_LOMBRE, + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley4[] = { - { - .iv = 30, - .lvl = 32, - .species = SPECIES_LOMBRE, - }, - { - .iv = 30, - .lvl = 32, - .species = SPECIES_BRELOOM, - } + { + .iv = 30, + .lvl = 32, + .species = SPECIES_LOMBRE, + }, + { + .iv = 30, + .lvl = 32, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley5[] = { - { - .iv = 40, - .lvl = 34, - .species = SPECIES_SWELLOW, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_LOMBRE, - }, - { - .iv = 40, - .lvl = 34, - .species = SPECIES_BRELOOM, - } + { + .iv = 40, + .lvl = 34, + .species = SPECIES_SWELLOW, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_LOMBRE, + }, + { + .iv = 40, + .lvl = 34, + .species = SPECIES_BRELOOM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sally[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_ODDISH, - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_ODDISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robin[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_SKITTY, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_SKITTY, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrea[] = { - { - .iv = 100, - .lvl = 40, - .species = SPECIES_LUVDISC, - } + { + .iv = 100, + .lvl = 40, + .species = SPECIES_LUVDISC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Crissy[] = { - { - .iv = 100, - .lvl = 39, - .species = SPECIES_GOLDEEN, - }, - { - .iv = 100, - .lvl = 39, - .species = SPECIES_WAILMER, - } + { + .iv = 100, + .lvl = 39, + .species = SPECIES_GOLDEEN, + }, + { + .iv = 100, + .lvl = 39, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rick[] = { - { - .iv = 0, - .lvl = 4, - .species = SPECIES_WURMPLE, - }, - { - .iv = 0, - .lvl = 4, - .species = SPECIES_WURMPLE, - } + { + .iv = 0, + .lvl = 4, + .species = SPECIES_WURMPLE, + }, + { + .iv = 0, + .lvl = 4, + .species = SPECIES_WURMPLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lyle[] = { - { - .iv = 0, - .lvl = 3, - .species = SPECIES_WURMPLE, - }, - { - .iv = 0, - .lvl = 3, - .species = SPECIES_WURMPLE, - }, - { - .iv = 0, - .lvl = 3, - .species = SPECIES_WURMPLE, - }, - { - .iv = 0, - .lvl = 3, - .species = SPECIES_WURMPLE, - } + { + .iv = 0, + .lvl = 3, + .species = SPECIES_WURMPLE, + }, + { + .iv = 0, + .lvl = 3, + .species = SPECIES_WURMPLE, + }, + { + .iv = 0, + .lvl = 3, + .species = SPECIES_WURMPLE, + }, + { + .iv = 0, + .lvl = 3, + .species = SPECIES_WURMPLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jose[] = { - { - .iv = 50, - .lvl = 8, - .species = SPECIES_WURMPLE, - }, - { - .iv = 50, - .lvl = 8, - .species = SPECIES_NINCADA, - } + { + .iv = 50, + .lvl = 8, + .species = SPECIES_WURMPLE, + }, + { + .iv = 50, + .lvl = 8, + .species = SPECIES_NINCADA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Doug[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_NINCADA, - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_NINJASK, - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_NINCADA, + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greg[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_VOLBEAT, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_ILLUMISE, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_VOLBEAT, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_ILLUMISE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kent[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_NINJASK, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_James1[] = { - { - .iv = 0, - .lvl = 6, - .species = SPECIES_NINCADA, - }, - { - .iv = 0, - .lvl = 6, - .species = SPECIES_NINCADA, - } + { + .iv = 0, + .lvl = 6, + .species = SPECIES_NINCADA, + }, + { + .iv = 0, + .lvl = 6, + .species = SPECIES_NINCADA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_James2[] = { - { - .iv = 10, - .lvl = 27, - .species = SPECIES_NINJASK, - } + { + .iv = 10, + .lvl = 27, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_James3[] = { - { - .iv = 20, - .lvl = 29, - .species = SPECIES_DUSTOX, - }, - { - .iv = 20, - .lvl = 29, - .species = SPECIES_NINJASK, - } + { + .iv = 20, + .lvl = 29, + .species = SPECIES_DUSTOX, + }, + { + .iv = 20, + .lvl = 29, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_James4[] = { - { - .iv = 30, - .lvl = 31, - .species = SPECIES_SURSKIT, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_DUSTOX, - }, - { - .iv = 30, - .lvl = 31, - .species = SPECIES_NINJASK, - } + { + .iv = 30, + .lvl = 31, + .species = SPECIES_SURSKIT, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_DUSTOX, + }, + { + .iv = 30, + .lvl = 31, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_James5[] = { - { - .iv = 40, - .lvl = 33, - .species = SPECIES_SURSKIT, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_NINJASK, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_DUSTOX, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_NINJASK, - } + { + .iv = 40, + .lvl = 33, + .species = SPECIES_SURSKIT, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_NINJASK, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_DUSTOX, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_NINJASK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brice[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_NUMEL, - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_MACHOP, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_NUMEL, + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent1[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 17, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 16, - .species = SPECIES_GEODUDE, - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 17, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 16, + .species = SPECIES_GEODUDE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lenny[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_MACHOP, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucas1[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alan[] = { - { - .iv = 0, - .lvl = 22, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 22, - .species = SPECIES_NOSEPASS, - }, - { - .iv = 0, - .lvl = 22, - .species = SPECIES_GRAVELER, - } + { + .iv = 0, + .lvl = 22, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 22, + .species = SPECIES_NOSEPASS, + }, + { + .iv = 0, + .lvl = 22, + .species = SPECIES_GRAVELER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clark[] = { - { - .iv = 0, - .lvl = 8, - .species = SPECIES_GEODUDE, - } + { + .iv = 0, + .lvl = 8, + .species = SPECIES_GEODUDE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eric[] = { - { - .iv = 0, - .lvl = 20, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 20, - .species = SPECIES_BALTOY, - } + { + .iv = 0, + .lvl = 20, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 20, + .species = SPECIES_BALTOY, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Lucas2[] = { - { - .iv = 0, - .lvl = 9, - .species = SPECIES_WAILMER, - .moves = MOVE_SPLASH, MOVE_WATER_GUN, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 9, + .species = SPECIES_WAILMER, + .moves = MOVE_SPLASH, MOVE_WATER_GUN, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Mike1[] = { - { - .iv = 0, - .lvl = 10, - .species = SPECIES_PELIPPER, - .moves = MOVE_GUST, MOVE_GROWL, MOVE_NONE, MOVE_NONE - }, - { - .iv = 0, - .lvl = 10, - .species = SPECIES_POOCHYENA, - .moves = MOVE_BITE, MOVE_SCARY_FACE, MOVE_NONE, MOVE_NONE - } + { + .iv = 0, + .lvl = 10, + .species = SPECIES_PELIPPER, + .moves = MOVE_GUST, MOVE_GROWL, MOVE_NONE, MOVE_NONE + }, + { + .iv = 0, + .lvl = 10, + .species = SPECIES_POOCHYENA, + .moves = MOVE_BITE, MOVE_SCARY_FACE, MOVE_NONE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mike2[] = { - { - .iv = 0, - .lvl = 16, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 16, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 16, - .species = SPECIES_MACHOP, - } + { + .iv = 0, + .lvl = 16, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 16, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 16, + .species = SPECIES_MACHOP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent2[] = { - { - .iv = 10, - .lvl = 24, - .species = SPECIES_GEODUDE, - }, - { - .iv = 10, - .lvl = 24, - .species = SPECIES_GEODUDE, - }, - { - .iv = 10, - .lvl = 24, - .species = SPECIES_GEODUDE, - }, - { - .iv = 10, - .lvl = 24, - .species = SPECIES_GRAVELER, - } + { + .iv = 10, + .lvl = 24, + .species = SPECIES_GEODUDE, + }, + { + .iv = 10, + .lvl = 24, + .species = SPECIES_GEODUDE, + }, + { + .iv = 10, + .lvl = 24, + .species = SPECIES_GEODUDE, + }, + { + .iv = 10, + .lvl = 24, + .species = SPECIES_GRAVELER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent3[] = { - { - .iv = 20, - .lvl = 27, - .species = SPECIES_GEODUDE, - }, - { - .iv = 20, - .lvl = 27, - .species = SPECIES_GEODUDE, - }, - { - .iv = 20, - .lvl = 27, - .species = SPECIES_GRAVELER, - }, - { - .iv = 20, - .lvl = 27, - .species = SPECIES_GRAVELER, - } + { + .iv = 20, + .lvl = 27, + .species = SPECIES_GEODUDE, + }, + { + .iv = 20, + .lvl = 27, + .species = SPECIES_GEODUDE, + }, + { + .iv = 20, + .lvl = 27, + .species = SPECIES_GRAVELER, + }, + { + .iv = 20, + .lvl = 27, + .species = SPECIES_GRAVELER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent4[] = { - { - .iv = 30, - .lvl = 30, - .species = SPECIES_GEODUDE, - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_GRAVELER, - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_GRAVELER, - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_GRAVELER, - } + { + .iv = 30, + .lvl = 30, + .species = SPECIES_GEODUDE, + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_GRAVELER, + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_GRAVELER, + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_GRAVELER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent5[] = { - { - .iv = 40, - .lvl = 33, - .species = SPECIES_GRAVELER, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_GRAVELER, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_GRAVELER, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_GOLEM, - } + { + .iv = 40, + .lvl = 33, + .species = SPECIES_GRAVELER, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_GRAVELER, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_GRAVELER, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_GOLEM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_DezAndLuke[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_DELCATTY, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_MANECTRIC, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_DELCATTY, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_MANECTRIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_LeaAndJed[] = { - { - .iv = 0, - .lvl = 45, - .species = SPECIES_LUVDISC, - }, - { - .iv = 0, - .lvl = 45, - .species = SPECIES_LUVDISC, - } + { + .iv = 0, + .lvl = 45, + .species = SPECIES_LUVDISC, + }, + { + .iv = 0, + .lvl = 45, + .species = SPECIES_LUVDISC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan1[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_VOLBEAT, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_ILLUMISE, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_VOLBEAT, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_ILLUMISE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan2[] = { - { - .iv = 10, - .lvl = 30, - .species = SPECIES_VOLBEAT, - }, - { - .iv = 10, - .lvl = 30, - .species = SPECIES_ILLUMISE, - } + { + .iv = 10, + .lvl = 30, + .species = SPECIES_VOLBEAT, + }, + { + .iv = 10, + .lvl = 30, + .species = SPECIES_ILLUMISE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan3[] = { - { - .iv = 20, - .lvl = 33, - .species = SPECIES_VOLBEAT, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_ILLUMISE, - } + { + .iv = 20, + .lvl = 33, + .species = SPECIES_VOLBEAT, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_ILLUMISE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan4[] = { - { - .iv = 30, - .lvl = 36, - .species = SPECIES_VOLBEAT, - }, - { - .iv = 30, - .lvl = 36, - .species = SPECIES_ILLUMISE, - } + { + .iv = 30, + .lvl = 36, + .species = SPECIES_VOLBEAT, + }, + { + .iv = 30, + .lvl = 36, + .species = SPECIES_ILLUMISE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan5[] = { - { - .iv = 40, - .lvl = 39, - .species = SPECIES_VOLBEAT, - }, - { - .iv = 40, - .lvl = 39, - .species = SPECIES_ILLUMISE, - } + { + .iv = 40, + .lvl = 39, + .species = SPECIES_VOLBEAT, + }, + { + .iv = 40, + .lvl = 39, + .species = SPECIES_ILLUMISE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johanna[] = { - { - .iv = 0, - .lvl = 13, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 13, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Gerald[] = { - { - .iv = 100, - .lvl = 23, - .species = SPECIES_KECLEON, - .moves = MOVE_FLAMETHROWER, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK, MOVE_BIND - } + { + .iv = 100, + .lvl = 23, + .species = SPECIES_KECLEON, + .moves = MOVE_FLAMETHROWER, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK, MOVE_BIND + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Vivian[] = { - { - .iv = 100, - .lvl = 17, - .species = SPECIES_MEDITITE, - .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_THUNDER_PUNCH - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_MEDITITE, - .moves = MOVE_THUNDER_PUNCH, MOVE_DETECT, MOVE_CONFUSION, MOVE_MEDITATE - } + { + .iv = 100, + .lvl = 17, + .species = SPECIES_MEDITITE, + .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_THUNDER_PUNCH + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_MEDITITE, + .moves = MOVE_THUNDER_PUNCH, MOVE_DETECT, MOVE_CONFUSION, MOVE_MEDITATE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Danielle[] = { - { - .iv = 100, - .lvl = 23, - .species = SPECIES_MEDITITE, - .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_FIRE_PUNCH - } + { + .iv = 100, + .lvl = 23, + .species = SPECIES_MEDITITE, + .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_FIRE_PUNCH + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Hideo[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_POISON_GAS, MOVE_SLUDGE, MOVE_SMOKESCREEN - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_KOFFING, + .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_KOFFING, + .moves = MOVE_TACKLE, MOVE_POISON_GAS, MOVE_SLUDGE, MOVE_SMOKESCREEN + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Keigo[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_NINJASK, - .moves = MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM, MOVE_FURY_CUTTER, MOVE_SWORDS_DANCE - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_KOFFING, + .moves = MOVE_POISON_GAS, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_NINJASK, + .moves = MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM, MOVE_FURY_CUTTER, MOVE_SWORDS_DANCE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Riley[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_NINCADA, - .moves = MOVE_LEECH_LIFE, MOVE_FURY_SWIPES, MOVE_MIND_READER, MOVE_DIG - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_NINCADA, + .moves = MOVE_LEECH_LIFE, MOVE_FURY_SWIPES, MOVE_MIND_READER, MOVE_DIG + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_KOFFING, + .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Flint[] = { - { - .iv = 150, - .lvl = 29, - .species = SPECIES_SWELLOW, - }, - { - .iv = 150, - .lvl = 29, - .species = SPECIES_XATU, - } + { + .iv = 150, + .lvl = 29, + .species = SPECIES_SWELLOW, + }, + { + .iv = 150, + .lvl = 29, + .species = SPECIES_XATU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ashley[] = { - { - .iv = 100, - .lvl = 27, - .species = SPECIES_SWABLU, - }, - { - .iv = 100, - .lvl = 27, - .species = SPECIES_SWABLU, - }, - { - .iv = 100, - .lvl = 27, - .species = SPECIES_SWABLU, - } + { + .iv = 100, + .lvl = 27, + .species = SPECIES_SWABLU, + }, + { + .iv = 100, + .lvl = 27, + .species = SPECIES_SWABLU, + }, + { + .iv = 100, + .lvl = 27, + .species = SPECIES_SWABLU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wally2[] = { - { - .iv = 30, - .lvl = 16, - .species = SPECIES_RALTS, - } + { + .iv = 30, + .lvl = 16, + .species = SPECIES_RALTS, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally3[] = { - { - .iv = 150, - .lvl = 47, - .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE - }, - { - .iv = 150, - .lvl = 46, - .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK - }, - { - .iv = 150, - .lvl = 47, - .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC - }, - { - .iv = 150, - .lvl = 44, - .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH - }, - { - .iv = 250, - .lvl = 48, - .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT - } + { + .iv = 150, + .lvl = 47, + .species = SPECIES_ALTARIA, + .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + }, + { + .iv = 150, + .lvl = 46, + .species = SPECIES_DELCATTY, + .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + }, + { + .iv = 150, + .lvl = 47, + .species = SPECIES_ROSELIA, + .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + }, + { + .iv = 150, + .lvl = 44, + .species = SPECIES_MAGNETON, + .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + }, + { + .iv = 250, + .lvl = 48, + .species = SPECIES_GARDEVOIR, + .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally4[] = { - { - .iv = 150, - .lvl = 50, - .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE - }, - { - .iv = 150, - .lvl = 49, - .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK - }, - { - .iv = 150, - .lvl = 50, - .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC - }, - { - .iv = 150, - .lvl = 47, - .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH - }, - { - .iv = 250, - .lvl = 51, - .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT - } + { + .iv = 150, + .lvl = 50, + .species = SPECIES_ALTARIA, + .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + }, + { + .iv = 150, + .lvl = 49, + .species = SPECIES_DELCATTY, + .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + }, + { + .iv = 150, + .lvl = 50, + .species = SPECIES_ROSELIA, + .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + }, + { + .iv = 150, + .lvl = 47, + .species = SPECIES_MAGNETON, + .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + }, + { + .iv = 250, + .lvl = 51, + .species = SPECIES_GARDEVOIR, + .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally5[] = { - { - .iv = 150, - .lvl = 53, - .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE - }, - { - .iv = 150, - .lvl = 52, - .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK - }, - { - .iv = 150, - .lvl = 53, - .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC - }, - { - .iv = 150, - .lvl = 50, - .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH - }, - { - .iv = 250, - .lvl = 54, - .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT - } + { + .iv = 150, + .lvl = 53, + .species = SPECIES_ALTARIA, + .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + }, + { + .iv = 150, + .lvl = 52, + .species = SPECIES_DELCATTY, + .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + }, + { + .iv = 150, + .lvl = 53, + .species = SPECIES_ROSELIA, + .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + }, + { + .iv = 150, + .lvl = 50, + .species = SPECIES_MAGNETON, + .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + }, + { + .iv = 250, + .lvl = 54, + .species = SPECIES_GARDEVOIR, + .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally6[] = { - { - .iv = 150, - .lvl = 56, - .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE - }, - { - .iv = 150, - .lvl = 55, - .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK - }, - { - .iv = 150, - .lvl = 56, - .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC - }, - { - .iv = 150, - .lvl = 53, - .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH - }, - { - .iv = 250, - .lvl = 57, - .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT - } + { + .iv = 150, + .lvl = 56, + .species = SPECIES_ALTARIA, + .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + }, + { + .iv = 150, + .lvl = 55, + .species = SPECIES_DELCATTY, + .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + }, + { + .iv = 150, + .lvl = 56, + .species = SPECIES_ROSELIA, + .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + }, + { + .iv = 150, + .lvl = 53, + .species = SPECIES_MAGNETON, + .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + }, + { + .iv = 250, + .lvl = 57, + .species = SPECIES_GARDEVOIR, + .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan13[] = { - { - .iv = 150, - .lvl = 31, - .species = SPECIES_TROPIUS, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_SLUGMA, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_PELIPPER, - }, - { - .iv = 200, - .lvl = 34, - .species = SPECIES_GROVYLE, - } + { + .iv = 150, + .lvl = 31, + .species = SPECIES_TROPIUS, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_SLUGMA, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_PELIPPER, + }, + { + .iv = 200, + .lvl = 34, + .species = SPECIES_GROVYLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan14[] = { - { - .iv = 150, - .lvl = 31, - .species = SPECIES_TROPIUS, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_PELIPPER, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_LUDICOLO, - }, - { - .iv = 200, - .lvl = 34, - .species = SPECIES_COMBUSKEN, - } + { + .iv = 150, + .lvl = 31, + .species = SPECIES_TROPIUS, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_PELIPPER, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_LUDICOLO, + }, + { + .iv = 200, + .lvl = 34, + .species = SPECIES_COMBUSKEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan15[] = { - { - .iv = 150, - .lvl = 31, - .species = SPECIES_TROPIUS, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_LUDICOLO, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_SLUGMA, - }, - { - .iv = 200, - .lvl = 34, - .species = SPECIES_MARSHTOMP, - } + { + .iv = 150, + .lvl = 31, + .species = SPECIES_TROPIUS, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_LUDICOLO, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_SLUGMA, + }, + { + .iv = 200, + .lvl = 34, + .species = SPECIES_MARSHTOMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May11[] = { - { - .iv = 150, - .lvl = 31, - .species = SPECIES_TROPIUS, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_SLUGMA, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_PELIPPER, - }, - { - .iv = 200, - .lvl = 34, - .species = SPECIES_GROVYLE, - } + { + .iv = 150, + .lvl = 31, + .species = SPECIES_TROPIUS, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_SLUGMA, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_PELIPPER, + }, + { + .iv = 200, + .lvl = 34, + .species = SPECIES_GROVYLE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May12[] = { - { - .iv = 150, - .lvl = 31, - .species = SPECIES_TROPIUS, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_PELIPPER, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_LUDICOLO, - }, - { - .iv = 200, - .lvl = 34, - .species = SPECIES_COMBUSKEN, - } + { + .iv = 150, + .lvl = 31, + .species = SPECIES_TROPIUS, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_PELIPPER, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_LUDICOLO, + }, + { + .iv = 200, + .lvl = 34, + .species = SPECIES_COMBUSKEN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May13[] = { - { - .iv = 150, - .lvl = 31, - .species = SPECIES_TROPIUS, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_LUDICOLO, - }, - { - .iv = 150, - .lvl = 32, - .species = SPECIES_SLUGMA, - }, - { - .iv = 200, - .lvl = 34, - .species = SPECIES_MARSHTOMP, - } + { + .iv = 150, + .lvl = 31, + .species = SPECIES_TROPIUS, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_LUDICOLO, + }, + { + .iv = 150, + .lvl = 32, + .species = SPECIES_SLUGMA, + }, + { + .iv = 200, + .lvl = 34, + .species = SPECIES_MARSHTOMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonah[] = { - { - .iv = 0, - .lvl = 30, - .species = SPECIES_WAILMER, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 32, - .species = SPECIES_SHARPEDO, - } + { + .iv = 0, + .lvl = 30, + .species = SPECIES_WAILMER, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 32, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Henry[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_CARVANHA, - }, - { - .iv = 0, - .lvl = 34, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_CARVANHA, + }, + { + .iv = 0, + .lvl = 34, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roger[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 35, - .species = SPECIES_GYARADOS, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 35, + .species = SPECIES_GYARADOS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexa[] = { - { - .iv = 100, - .lvl = 34, - .species = SPECIES_GLOOM, - }, - { - .iv = 100, - .lvl = 34, - .species = SPECIES_AZUMARILL, - } + { + .iv = 100, + .lvl = 34, + .species = SPECIES_GLOOM, + }, + { + .iv = 100, + .lvl = 34, + .species = SPECIES_AZUMARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ruben[] = { - { - .iv = 100, - .lvl = 34, - .species = SPECIES_SHIFTRY, - }, - { - .iv = 100, - .lvl = 34, - .species = SPECIES_NOSEPASS, - } + { + .iv = 100, + .lvl = 34, + .species = SPECIES_SHIFTRY, + }, + { + .iv = 100, + .lvl = 34, + .species = SPECIES_NOSEPASS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji1[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_MACHOKE, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wayne[] = { - { - .iv = 0, - .lvl = 31, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 31, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 36, - .species = SPECIES_WAILMER, - } + { + .iv = 0, + .lvl = 31, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 31, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 36, + .species = SPECIES_WAILMER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aidan[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_SWELLOW, - }, - { - .iv = 0, - .lvl = 32, - .species = SPECIES_SKARMORY, - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_SWELLOW, + }, + { + .iv = 0, + .lvl = 32, + .species = SPECIES_SKARMORY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reed[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_SPHEAL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_SHARPEDO, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_SPHEAL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tisha[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_CHINCHOU, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_CHINCHOU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_ToriAndTia[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_SPINDA, - }, - { - .iv = 0, - .lvl = 19, - .species = SPECIES_SPINDA, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_SPINDA, + }, + { + .iv = 0, + .lvl = 19, + .species = SPECIES_SPINDA, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_KimAndIris[] = { - { - .iv = 0, - .lvl = 32, - .species = SPECIES_SWABLU, - .moves = MOVE_SING, MOVE_FURY_ATTACK, MOVE_SAFEGUARD, MOVE_AERIAL_ACE - }, - { - .iv = 0, - .lvl = 35, - .species = SPECIES_NUMEL, - .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_REST, MOVE_EARTHQUAKE - } + { + .iv = 0, + .lvl = 32, + .species = SPECIES_SWABLU, + .moves = MOVE_SING, MOVE_FURY_ATTACK, MOVE_SAFEGUARD, MOVE_AERIAL_ACE + }, + { + .iv = 0, + .lvl = 35, + .species = SPECIES_NUMEL, + .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_REST, MOVE_EARTHQUAKE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_TyraAndIvy[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_ROSELIA, - .moves = MOVE_GROWTH, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_LEECH_SEED - }, - { - .iv = 0, - .lvl = 20, - .species = SPECIES_GRAVELER, - .moves = MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_MUD_SPORT, MOVE_ROCK_THROW - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_ROSELIA, + .moves = MOVE_GROWTH, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_LEECH_SEED + }, + { + .iv = 0, + .lvl = 20, + .species = SPECIES_GRAVELER, + .moves = MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_MUD_SPORT, MOVE_ROCK_THROW + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_MelAndPaul[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_DUSTOX, - .moves = MOVE_GUST, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_PROTECT - }, - { - .iv = 0, - .lvl = 27, - .species = SPECIES_BEAUTIFLY, - .moves = MOVE_GUST, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_STUN_SPORE - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_DUSTOX, + .moves = MOVE_GUST, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_PROTECT + }, + { + .iv = 0, + .lvl = 27, + .species = SPECIES_BEAUTIFLY, + .moves = MOVE_GUST, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_STUN_SPORE + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay1[] = { - { - .iv = 200, - .lvl = 39, - .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT - }, - { - .iv = 200, - .lvl = 39, - .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM - } + { + .iv = 200, + .lvl = 39, + .species = SPECIES_MEDICHAM, + .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + }, + { + .iv = 200, + .lvl = 39, + .species = SPECIES_HARIYAMA, + .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay2[] = { - { - .iv = 210, - .lvl = 43, - .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT - }, - { - .iv = 210, - .lvl = 43, - .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM - } + { + .iv = 210, + .lvl = 43, + .species = SPECIES_MEDICHAM, + .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + }, + { + .iv = 210, + .lvl = 43, + .species = SPECIES_HARIYAMA, + .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay3[] = { - { - .iv = 220, - .lvl = 46, - .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT - }, - { - .iv = 220, - .lvl = 46, - .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM - } + { + .iv = 220, + .lvl = 46, + .species = SPECIES_MEDICHAM, + .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + }, + { + .iv = 220, + .lvl = 46, + .species = SPECIES_HARIYAMA, + .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay4[] = { - { - .iv = 230, - .lvl = 49, - .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT - }, - { - .iv = 230, - .lvl = 49, - .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM - } + { + .iv = 230, + .lvl = 49, + .species = SPECIES_MEDICHAM, + .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + }, + { + .iv = 230, + .lvl = 49, + .species = SPECIES_HARIYAMA, + .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay5[] = { - { - .iv = 240, - .lvl = 52, - .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT - }, - { - .iv = 240, - .lvl = 52, - .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM - } + { + .iv = 240, + .lvl = 52, + .species = SPECIES_MEDICHAM, + .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + }, + { + .iv = 240, + .lvl = 52, + .species = SPECIES_HARIYAMA, + .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_ReliAndIan[] = { - { - .iv = 0, - .lvl = 35, - .species = SPECIES_AZUMARILL, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_WINGULL, - } + { + .iv = 0, + .lvl = 35, + .species = SPECIES_AZUMARILL, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy1[] = { - { - .iv = 0, - .lvl = 34, - .species = SPECIES_CHINCHOU, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 34, + .species = SPECIES_CHINCHOU, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy2[] = { - { - .iv = 0, - .lvl = 42, - .species = SPECIES_CHINCHOU, - }, - { - .iv = 0, - .lvl = 40, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 42, + .species = SPECIES_CHINCHOU, + }, + { + .iv = 0, + .lvl = 40, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy3[] = { - { - .iv = 0, - .lvl = 45, - .species = SPECIES_LANTURN, - }, - { - .iv = 0, - .lvl = 43, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 45, + .species = SPECIES_LANTURN, + }, + { + .iv = 0, + .lvl = 43, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy4[] = { - { - .iv = 0, - .lvl = 48, - .species = SPECIES_LANTURN, - }, - { - .iv = 0, - .lvl = 46, - .species = SPECIES_SHARPEDO, - } + { + .iv = 0, + .lvl = 48, + .species = SPECIES_LANTURN, + }, + { + .iv = 0, + .lvl = 46, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy5[] = { - { - .iv = 0, - .lvl = 51, - .species = SPECIES_LANTURN, - }, - { - .iv = 0, - .lvl = 49, - .species = SPECIES_SHARPEDO, - } + { + .iv = 0, + .lvl = 51, + .species = SPECIES_LANTURN, + }, + { + .iv = 0, + .lvl = 49, + .species = SPECIES_SHARPEDO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_LisaAndRay[] = { - { - .iv = 0, - .lvl = 27, - .species = SPECIES_GOLDEEN, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_TENTACOOL, - } + { + .iv = 0, + .lvl = 27, + .species = SPECIES_GOLDEEN, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chris[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_MAGIKARP, - }, - { - .iv = 0, - .lvl = 20, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_FEEBAS, - }, - { - .iv = 0, - .lvl = 23, - .species = SPECIES_CARVANHA, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_MAGIKARP, + }, + { + .iv = 0, + .lvl = 20, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_FEEBAS, + }, + { + .iv = 0, + .lvl = 23, + .species = SPECIES_CARVANHA, + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Dawson[] = { - { - .iv = 0, - .lvl = 8, - .species = SPECIES_ZIGZAGOON, - .heldItem = ITEM_NUGGET - }, - { - .iv = 0, - .lvl = 8, - .species = SPECIES_POOCHYENA, - .heldItem = ITEM_NONE - } + { + .iv = 0, + .lvl = 8, + .species = SPECIES_ZIGZAGOON, + .heldItem = ITEM_NUGGET + }, + { + .iv = 0, + .lvl = 8, + .species = SPECIES_POOCHYENA, + .heldItem = ITEM_NONE + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Sarah[] = { - { - .iv = 0, - .lvl = 8, - .species = SPECIES_LOTAD, - .heldItem = ITEM_NONE - }, - { - .iv = 0, - .lvl = 8, - .species = SPECIES_ZIGZAGOON, - .heldItem = ITEM_NUGGET - } + { + .iv = 0, + .lvl = 8, + .species = SPECIES_LOTAD, + .heldItem = ITEM_NONE + }, + { + .iv = 0, + .lvl = 8, + .species = SPECIES_ZIGZAGOON, + .heldItem = ITEM_NUGGET + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darian[] = { - { - .iv = 0, - .lvl = 9, - .species = SPECIES_MAGIKARP, - } + { + .iv = 0, + .lvl = 9, + .species = SPECIES_MAGIKARP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hailey[] = { - { - .iv = 0, - .lvl = 13, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 13, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chandler[] = { - { - .iv = 0, - .lvl = 12, - .species = SPECIES_TENTACOOL, - }, - { - .iv = 0, - .lvl = 12, - .species = SPECIES_TENTACOOL, - } + { + .iv = 0, + .lvl = 12, + .species = SPECIES_TENTACOOL, + }, + { + .iv = 0, + .lvl = 12, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonItemDefaultMoves gTrainerParty_Kaleb[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_MINUN, - .heldItem = ITEM_ORAN_BERRY - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_PLUSLE, - .heldItem = ITEM_ORAN_BERRY - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_MINUN, + .heldItem = ITEM_ORAN_BERRY + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_PLUSLE, + .heldItem = ITEM_ORAN_BERRY + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joseph[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_VOLTORB, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_VOLTORB, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alyssa[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_MAGNEMITE, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_MAGNEMITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcos[] = { - { - .iv = 100, - .lvl = 15, - .species = SPECIES_VOLTORB, - } + { + .iv = 100, + .lvl = 15, + .species = SPECIES_VOLTORB, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rhett[] = { - { - .iv = 100, - .lvl = 15, - .species = SPECIES_MAKUHITA, - } + { + .iv = 100, + .lvl = 15, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tyron[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_SANDSHREW, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_SANDSHREW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celina[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_ROSELIA, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bianca[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SHROOMISH, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SHROOMISH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hayden[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophie[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_MARILL, - }, - { - .iv = 0, - .lvl = 19, - .species = SPECIES_LOMBRE, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_MARILL, + }, + { + .iv = 0, + .lvl = 19, + .species = SPECIES_LOMBRE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Coby[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_SKARMORY, - }, - { - .iv = 0, - .lvl = 19, - .species = SPECIES_SWELLOW, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_SKARMORY, + }, + { + .iv = 0, + .lvl = 19, + .species = SPECIES_SWELLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lawrence[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_BALTOY, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SANDSHREW, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_BALTOY, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SANDSHREW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wyatt[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_ARON, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_ARON, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_ARON, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_ARON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Angelina[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_LOMBRE, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_LOMBRE, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kai[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_BARBOACH, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_BARBOACH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlotte[] = { - { - .iv = 0, - .lvl = 19, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 19, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Deandre[] = { - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ARON, - }, - { - .iv = 0, - .lvl = 14, - .species = SPECIES_ELECTRIKE, - } + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ARON, + }, + { + .iv = 0, + .lvl = 14, + .species = SPECIES_ELECTRIKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt38[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt39[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt40[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt41[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_BALTOY, - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_BALTOY, + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt42[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_BALTOY, - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_BALTOY, + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt43[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt44[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt45[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_POOCHYENA, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_POOCHYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt46[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt47[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt48[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_BALTOY, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_BALTOY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt49[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt50[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_ZUBAT, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_ZUBAT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt51[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_MIGHTYENA, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_MIGHTYENA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt52[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt53[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_BALTOY, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_BALTOY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha3[] = { - { - .iv = 75, - .lvl = 26, - .species = SPECIES_NUMEL, - }, - { - .iv = 75, - .lvl = 28, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 75, - .lvl = 30, - .species = SPECIES_ZUBAT, - }, - { - .iv = 75, - .lvl = 33, - .species = SPECIES_CAMERUPT, - } + { + .iv = 75, + .lvl = 26, + .species = SPECIES_NUMEL, + }, + { + .iv = 75, + .lvl = 28, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 75, + .lvl = 30, + .species = SPECIES_ZUBAT, + }, + { + .iv = 75, + .lvl = 33, + .species = SPECIES_CAMERUPT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darcy[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_PELIPPER, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_CAMERUPT, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_PELIPPER, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_CAMERUPT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie3[] = { - { - .iv = 150, - .lvl = 42, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 150, - .lvl = 43, - .species = SPECIES_CROBAT, - }, - { - .iv = 150, - .lvl = 44, - .species = SPECIES_CAMERUPT, - } + { + .iv = 150, + .lvl = 42, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 150, + .lvl = 43, + .species = SPECIES_CROBAT, + }, + { + .iv = 150, + .lvl = 44, + .species = SPECIES_CAMERUPT, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pete[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_TENTACOOL, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabelle[] = { - { - .iv = 0, - .lvl = 15, - .species = SPECIES_MARILL, - } + { + .iv = 0, + .lvl = 15, + .species = SPECIES_MARILL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres1[] = { - { - .iv = 50, - .lvl = 25, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 50, - .lvl = 25, - .species = SPECIES_SANDSHREW, - } + { + .iv = 50, + .lvl = 25, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 50, + .lvl = 25, + .species = SPECIES_SANDSHREW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Josue[] = { - { - .iv = 50, - .lvl = 25, - .species = SPECIES_TAILLOW, - }, - { - .iv = 50, - .lvl = 25, - .species = SPECIES_WINGULL, - } + { + .iv = 50, + .lvl = 25, + .species = SPECIES_TAILLOW, + }, + { + .iv = 50, + .lvl = 25, + .species = SPECIES_WINGULL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camron[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_STARYU, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory1[] = { - { - .iv = 0, - .lvl = 24, - .species = SPECIES_WINGULL, - }, - { - .iv = 0, - .lvl = 24, - .species = SPECIES_MACHOP, - }, - { - .iv = 0, - .lvl = 24, - .species = SPECIES_TENTACOOL, - } + { + .iv = 0, + .lvl = 24, + .species = SPECIES_WINGULL, + }, + { + .iv = 0, + .lvl = 24, + .species = SPECIES_MACHOP, + }, + { + .iv = 0, + .lvl = 24, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carolina[] = { - { - .iv = 50, - .lvl = 24, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 50, - .lvl = 24, - .species = SPECIES_SWELLOW, - }, - { - .iv = 50, - .lvl = 24, - .species = SPECIES_MANECTRIC, - } + { + .iv = 50, + .lvl = 24, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 50, + .lvl = 24, + .species = SPECIES_SWELLOW, + }, + { + .iv = 50, + .lvl = 24, + .species = SPECIES_MANECTRIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elijah[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_SKARMORY, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_SKARMORY, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_SKARMORY, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_SKARMORY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celia[] = { - { - .iv = 0, - .lvl = 22, - .species = SPECIES_MARILL, - }, - { - .iv = 0, - .lvl = 22, - .species = SPECIES_LOMBRE, - } + { + .iv = 0, + .lvl = 22, + .species = SPECIES_MARILL, + }, + { + .iv = 0, + .lvl = 22, + .species = SPECIES_LOMBRE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryan[] = { - { - .iv = 0, - .lvl = 22, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 0, - .lvl = 22, - .species = SPECIES_SANDSLASH, - } + { + .iv = 0, + .lvl = 22, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 0, + .lvl = 22, + .species = SPECIES_SANDSLASH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Branden[] = { - { - .iv = 0, - .lvl = 22, - .species = SPECIES_TAILLOW, - }, - { - .iv = 0, - .lvl = 22, - .species = SPECIES_NUZLEAF, - } + { + .iv = 0, + .lvl = 22, + .species = SPECIES_TAILLOW, + }, + { + .iv = 0, + .lvl = 22, + .species = SPECIES_NUZLEAF, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryant[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_NUMEL, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SLUGMA, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_NUMEL, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SLUGMA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shayla[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_ROSELIA, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_ROSELIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyra[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_DODUO, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_DODRIO, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_DODUO, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_DODRIO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaiden[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_NINJASK, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_GULPIN, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_NINJASK, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_GULPIN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alix[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_KADABRA, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_KIRLIA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_KADABRA, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_KIRLIA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Helene[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MEDITITE, - }, - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MAKUHITA, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MEDITITE, + }, + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marlene[] = { - { - .iv = 0, - .lvl = 18, - .species = SPECIES_MEDITITE, - }, - { - .iv = 0, - .lvl = 18, - .species = SPECIES_SPOINK, - } + { + .iv = 0, + .lvl = 18, + .species = SPECIES_MEDITITE, + }, + { + .iv = 0, + .lvl = 18, + .species = SPECIES_SPOINK, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Devan[] = { - { - .iv = 0, - .lvl = 8, - .species = SPECIES_GEODUDE, - }, - { - .iv = 0, - .lvl = 8, - .species = SPECIES_GEODUDE, - } + { + .iv = 0, + .lvl = 8, + .species = SPECIES_GEODUDE, + }, + { + .iv = 0, + .lvl = 8, + .species = SPECIES_GEODUDE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johnson[] = { - { - .iv = 0, - .lvl = 8, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 0, - .lvl = 8, - .species = SPECIES_LOTAD, - } + { + .iv = 0, + .lvl = 8, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 0, + .lvl = 8, + .species = SPECIES_LOTAD, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melina[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_DODUO, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_DODUO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandi[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_RALTS, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_RALTS, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aisha[] = { - { - .iv = 0, - .lvl = 17, - .species = SPECIES_MEDITITE, - } + { + .iv = 0, + .lvl = 17, + .species = SPECIES_MEDITITE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Makayla[] = { - { - .iv = 0, - .lvl = 33, - .species = SPECIES_ROSELIA, - }, - { - .iv = 0, - .lvl = 33, - .species = SPECIES_MEDICHAM, - } + { + .iv = 0, + .lvl = 33, + .species = SPECIES_ROSELIA, + }, + { + .iv = 0, + .lvl = 33, + .species = SPECIES_MEDICHAM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fabian[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_MANECTRIC, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_MANECTRIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dayton[] = { - { - .iv = 0, - .lvl = 25, - .species = SPECIES_SLUGMA, - }, - { - .iv = 0, - .lvl = 25, - .species = SPECIES_NUMEL, - } + { + .iv = 0, + .lvl = 25, + .species = SPECIES_SLUGMA, + }, + { + .iv = 0, + .lvl = 25, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rachel[] = { - { - .iv = 0, - .lvl = 26, - .species = SPECIES_GOLDEEN, - } + { + .iv = 0, + .lvl = 26, + .species = SPECIES_GOLDEEN, + } }; const struct TrainerMonNoItemCustomMoves gTrainerParty_Leonel[] = { - { - .iv = 100, - .lvl = 30, - .species = SPECIES_MANECTRIC, - .moves = MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_NONE - } + { + .iv = 100, + .lvl = 30, + .species = SPECIES_MANECTRIC, + .moves = MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Callie[] = { - { - .iv = 0, - .lvl = 28, - .species = SPECIES_MEDITITE, - }, - { - .iv = 0, - .lvl = 28, - .species = SPECIES_MAKUHITA, - } + { + .iv = 0, + .lvl = 28, + .species = SPECIES_MEDITITE, + }, + { + .iv = 0, + .lvl = 28, + .species = SPECIES_MAKUHITA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cale[] = { - { - .iv = 0, - .lvl = 29, - .species = SPECIES_DUSTOX, - }, - { - .iv = 0, - .lvl = 29, - .species = SPECIES_BEAUTIFLY, - } + { + .iv = 0, + .lvl = 29, + .species = SPECIES_DUSTOX, + }, + { + .iv = 0, + .lvl = 29, + .species = SPECIES_BEAUTIFLY, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Myles[] = { - { - .iv = 10, - .lvl = 25, - .species = SPECIES_MAKUHITA, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_WINGULL, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_TROPIUS, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_NUMEL, - } + { + .iv = 10, + .lvl = 25, + .species = SPECIES_MAKUHITA, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_WINGULL, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_TROPIUS, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pat[] = { - { - .iv = 10, - .lvl = 25, - .species = SPECIES_POOCHYENA, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_SHROOMISH, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_MARILL, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 10, - .lvl = 25, - .species = SPECIES_GULPIN, - } + { + .iv = 10, + .lvl = 25, + .species = SPECIES_POOCHYENA, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_SHROOMISH, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_MARILL, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 10, + .lvl = 25, + .species = SPECIES_GULPIN, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin1[] = { - { - .iv = 100, - .lvl = 29, - .species = SPECIES_LOUDRED, - }, - { - .iv = 100, - .lvl = 29, - .species = SPECIES_VIGOROTH, - } + { + .iv = 100, + .lvl = 29, + .species = SPECIES_LOUDRED, + }, + { + .iv = 100, + .lvl = 29, + .species = SPECIES_VIGOROTH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May14[] = { - { - .iv = 25, - .lvl = 13, - .species = SPECIES_LOTAD, - }, - { - .iv = 50, - .lvl = 15, - .species = SPECIES_TORCHIC, - } + { + .iv = 25, + .lvl = 13, + .species = SPECIES_LOTAD, + }, + { + .iv = 50, + .lvl = 15, + .species = SPECIES_TORCHIC, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May15[] = { - { - .iv = 25, - .lvl = 13, - .species = SPECIES_TORKOAL, - }, - { - .iv = 50, - .lvl = 15, - .species = SPECIES_MUDKIP, - } + { + .iv = 25, + .lvl = 13, + .species = SPECIES_TORKOAL, + }, + { + .iv = 50, + .lvl = 15, + .species = SPECIES_MUDKIP, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne2[] = { - { - .iv = 255, - .lvl = 32, - .species = SPECIES_GOLEM, - .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION - }, - { - .iv = 255, - .lvl = 35, - .species = SPECIES_KABUTO, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 35, - .species = SPECIES_ONIX, - .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 37, - .species = SPECIES_NOSEPASS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE - } + { + .iv = 255, + .lvl = 32, + .species = SPECIES_GOLEM, + .heldItem = ITEM_NONE, + .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION + }, + { + .iv = 255, + .lvl = 35, + .species = SPECIES_KABUTO, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 35, + .species = SPECIES_ONIX, + .heldItem = ITEM_NONE, + .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 37, + .species = SPECIES_NOSEPASS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne3[] = { - { - .iv = 255, - .lvl = 37, - .species = SPECIES_OMANYTE, - .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF - }, - { - .iv = 255, - .lvl = 37, - .species = SPECIES_GOLEM, - .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION - }, - { - .iv = 255, - .lvl = 40, - .species = SPECIES_KABUTOPS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 40, - .species = SPECIES_ONIX, - .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 42, - .species = SPECIES_NOSEPASS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE - } + { + .iv = 255, + .lvl = 37, + .species = SPECIES_OMANYTE, + .heldItem = ITEM_NONE, + .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF + }, + { + .iv = 255, + .lvl = 37, + .species = SPECIES_GOLEM, + .heldItem = ITEM_NONE, + .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION + }, + { + .iv = 255, + .lvl = 40, + .species = SPECIES_KABUTOPS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 40, + .species = SPECIES_ONIX, + .heldItem = ITEM_NONE, + .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 42, + .species = SPECIES_NOSEPASS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne4[] = { - { - .iv = 255, - .lvl = 42, - .species = SPECIES_OMASTAR, - .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF - }, - { - .iv = 255, - .lvl = 42, - .species = SPECIES_GOLEM, - .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_KABUTOPS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_ONIX, - .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 47, - .species = SPECIES_NOSEPASS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE - } + { + .iv = 255, + .lvl = 42, + .species = SPECIES_OMASTAR, + .heldItem = ITEM_NONE, + .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF + }, + { + .iv = 255, + .lvl = 42, + .species = SPECIES_GOLEM, + .heldItem = ITEM_NONE, + .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_KABUTOPS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_ONIX, + .heldItem = ITEM_NONE, + .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 47, + .species = SPECIES_NOSEPASS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne5[] = { - { - .iv = 255, - .lvl = 47, - .species = SPECIES_AERODACTYL, - .heldItem = ITEM_NONE, - .moves = MOVE_ROCK_SLIDE, MOVE_HYPER_BEAM, MOVE_SUPERSONIC, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 47, - .species = SPECIES_GOLEM, - .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION - }, - { - .iv = 255, - .lvl = 47, - .species = SPECIES_OMASTAR, - .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_KABUTOPS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_STEELIX, - .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 52, - .species = SPECIES_NOSEPASS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE - } + { + .iv = 255, + .lvl = 47, + .species = SPECIES_AERODACTYL, + .heldItem = ITEM_NONE, + .moves = MOVE_ROCK_SLIDE, MOVE_HYPER_BEAM, MOVE_SUPERSONIC, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 47, + .species = SPECIES_GOLEM, + .heldItem = ITEM_NONE, + .moves = MOVE_FOCUS_PUNCH, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION + }, + { + .iv = 255, + .lvl = 47, + .species = SPECIES_OMASTAR, + .heldItem = ITEM_NONE, + .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_KABUTOPS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_STEELIX, + .heldItem = ITEM_NONE, + .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 52, + .species = SPECIES_NOSEPASS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Brawly2[] = { - { - .iv = 255, - .lvl = 33, - .species = SPECIES_MACHAMP, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP - }, - { - .iv = 255, - .lvl = 33, - .species = SPECIES_MEDITITE, - .heldItem = ITEM_NONE, - .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH - }, - { - .iv = 255, - .lvl = 35, - .species = SPECIES_HITMONTOP, - .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK - }, - { - .iv = 255, - .lvl = 37, - .species = SPECIES_HARIYAMA, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 33, + .species = SPECIES_MACHAMP, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + }, + { + .iv = 255, + .lvl = 33, + .species = SPECIES_MEDITITE, + .heldItem = ITEM_NONE, + .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH + }, + { + .iv = 255, + .lvl = 35, + .species = SPECIES_HITMONTOP, + .heldItem = ITEM_NONE, + .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + }, + { + .iv = 255, + .lvl = 37, + .species = SPECIES_HARIYAMA, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Brawly3[] = { - { - .iv = 255, - .lvl = 38, - .species = SPECIES_MACHAMP, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP - }, - { - .iv = 255, - .lvl = 38, - .species = SPECIES_MEDICHAM, - .heldItem = ITEM_NONE, - .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH - }, - { - .iv = 255, - .lvl = 40, - .species = SPECIES_HITMONTOP, - .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK - }, - { - .iv = 255, - .lvl = 42, - .species = SPECIES_HARIYAMA, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 38, + .species = SPECIES_MACHAMP, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + }, + { + .iv = 255, + .lvl = 38, + .species = SPECIES_MEDICHAM, + .heldItem = ITEM_NONE, + .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH + }, + { + .iv = 255, + .lvl = 40, + .species = SPECIES_HITMONTOP, + .heldItem = ITEM_NONE, + .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + }, + { + .iv = 255, + .lvl = 42, + .species = SPECIES_HARIYAMA, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Brawly4[] = { - { - .iv = 255, - .lvl = 40, - .species = SPECIES_HITMONCHAN, - .heldItem = ITEM_NONE, - .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_MACHAMP, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_MEDICHAM, - .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_HITMONTOP, - .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK - }, - { - .iv = 255, - .lvl = 47, - .species = SPECIES_HARIYAMA, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 40, + .species = SPECIES_HITMONCHAN, + .heldItem = ITEM_NONE, + .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_MACHAMP, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_MEDICHAM, + .heldItem = ITEM_NONE, + .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_HITMONTOP, + .heldItem = ITEM_NONE, + .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + }, + { + .iv = 255, + .lvl = 47, + .species = SPECIES_HARIYAMA, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Brawly5[] = { - { - .iv = 255, - .lvl = 46, - .species = SPECIES_HITMONLEE, - .heldItem = ITEM_NONE, - .moves = MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_BULK_UP - }, - { - .iv = 255, - .lvl = 46, - .species = SPECIES_HITMONCHAN, - .heldItem = ITEM_NONE, - .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_MACHAMP, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_MEDICHAM, - .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_HITMONTOP, - .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK - }, - { - .iv = 255, - .lvl = 52, - .species = SPECIES_HARIYAMA, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 46, + .species = SPECIES_HITMONLEE, + .heldItem = ITEM_NONE, + .moves = MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_BULK_UP + }, + { + .iv = 255, + .lvl = 46, + .species = SPECIES_HITMONCHAN, + .heldItem = ITEM_NONE, + .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_MACHAMP, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_MEDICHAM, + .heldItem = ITEM_NONE, + .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_HITMONTOP, + .heldItem = ITEM_NONE, + .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + }, + { + .iv = 255, + .lvl = 52, + .species = SPECIES_HARIYAMA, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Wattson2[] = { - { - .iv = 255, - .lvl = 36, - .species = SPECIES_MAREEP, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 36, - .species = SPECIES_ELECTRODE, - .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 38, - .species = SPECIES_MAGNETON, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 40, - .species = SPECIES_MANECTRIC, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT - } + { + .iv = 255, + .lvl = 36, + .species = SPECIES_MAREEP, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 36, + .species = SPECIES_ELECTRODE, + .heldItem = ITEM_NONE, + .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 38, + .species = SPECIES_MAGNETON, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 40, + .species = SPECIES_MANECTRIC, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Wattson3[] = { - { - .iv = 255, - .lvl = 39, - .species = SPECIES_PIKACHU, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_SHOCK_WAVE - }, - { - .iv = 255, - .lvl = 41, - .species = SPECIES_FLAAFFY, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 41, - .species = SPECIES_ELECTRODE, - .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_MAGNETON, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_MANECTRIC, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT - } + { + .iv = 255, + .lvl = 39, + .species = SPECIES_PIKACHU, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_SHOCK_WAVE + }, + { + .iv = 255, + .lvl = 41, + .species = SPECIES_FLAAFFY, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 41, + .species = SPECIES_ELECTRODE, + .heldItem = ITEM_NONE, + .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_MAGNETON, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_MANECTRIC, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Wattson4[] = { - { - .iv = 255, - .lvl = 44, - .species = SPECIES_RAICHU, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 46, - .species = SPECIES_AMPHAROS, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 46, - .species = SPECIES_ELECTRODE, - .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_MAGNETON, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_MANECTRIC, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT - } + { + .iv = 255, + .lvl = 44, + .species = SPECIES_RAICHU, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 46, + .species = SPECIES_AMPHAROS, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 46, + .species = SPECIES_ELECTRODE, + .heldItem = ITEM_NONE, + .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_MAGNETON, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_MANECTRIC, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Wattson5[] = { - { - .iv = 255, - .lvl = 50, - .species = SPECIES_ELECTABUZZ, - .heldItem = ITEM_NONE, - .moves = MOVE_SWIFT, MOVE_FOCUS_PUNCH, MOVE_THUNDER_PUNCH, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_RAICHU, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_AMPHAROS, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_ELECTRODE, - .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_MAGNETON, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_MANECTRIC, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT - } + { + .iv = 255, + .lvl = 50, + .species = SPECIES_ELECTABUZZ, + .heldItem = ITEM_NONE, + .moves = MOVE_SWIFT, MOVE_FOCUS_PUNCH, MOVE_THUNDER_PUNCH, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_RAICHU, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_AMPHAROS, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_ELECTRODE, + .heldItem = ITEM_NONE, + .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_MAGNETON, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_MANECTRIC, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Flannery2[] = { - { - .iv = 255, - .lvl = 38, - .species = SPECIES_MAGCARGO, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 36, - .species = SPECIES_PONYTA, - .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE - }, - { - .iv = 255, - .lvl = 38, - .species = SPECIES_CAMERUPT, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT - }, - { - .iv = 255, - .lvl = 40, - .species = SPECIES_TORKOAL, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT - } + { + .iv = 255, + .lvl = 38, + .species = SPECIES_MAGCARGO, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 36, + .species = SPECIES_PONYTA, + .heldItem = ITEM_NONE, + .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + }, + { + .iv = 255, + .lvl = 38, + .species = SPECIES_CAMERUPT, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + }, + { + .iv = 255, + .lvl = 40, + .species = SPECIES_TORKOAL, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Flannery3[] = { - { - .iv = 255, - .lvl = 41, - .species = SPECIES_GROWLITHE, - .heldItem = ITEM_NONE, - .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_SUNNY_DAY - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_MAGCARGO, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 41, - .species = SPECIES_PONYTA, - .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_CAMERUPT, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_TORKOAL, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT - } + { + .iv = 255, + .lvl = 41, + .species = SPECIES_GROWLITHE, + .heldItem = ITEM_NONE, + .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_SUNNY_DAY + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_MAGCARGO, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 41, + .species = SPECIES_PONYTA, + .heldItem = ITEM_NONE, + .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_CAMERUPT, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_TORKOAL, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Flannery4[] = { - { - .iv = 255, - .lvl = 46, - .species = SPECIES_HOUNDOUR, - .heldItem = ITEM_NONE, - .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY - }, - { - .iv = 255, - .lvl = 46, - .species = SPECIES_GROWLITHE, - .heldItem = ITEM_NONE, - .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_MAGCARGO, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 46, - .species = SPECIES_RAPIDASH, - .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_CAMERUPT, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_TORKOAL, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT - } + { + .iv = 255, + .lvl = 46, + .species = SPECIES_HOUNDOUR, + .heldItem = ITEM_NONE, + .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY + }, + { + .iv = 255, + .lvl = 46, + .species = SPECIES_GROWLITHE, + .heldItem = ITEM_NONE, + .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_MAGCARGO, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 46, + .species = SPECIES_RAPIDASH, + .heldItem = ITEM_NONE, + .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_CAMERUPT, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_TORKOAL, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Flannery5[] = { - { - .iv = 255, - .lvl = 51, - .species = SPECIES_ARCANINE, - .heldItem = ITEM_NONE, - .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_MAGCARGO, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_HOUNDOOM, - .heldItem = ITEM_NONE, - .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_RAPIDASH, - .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_CAMERUPT, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_TORKOAL, - .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT - } + { + .iv = 255, + .lvl = 51, + .species = SPECIES_ARCANINE, + .heldItem = ITEM_NONE, + .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_MAGCARGO, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_HOUNDOOM, + .heldItem = ITEM_NONE, + .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_RAPIDASH, + .heldItem = ITEM_NONE, + .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_CAMERUPT, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_TORKOAL, + .heldItem = ITEM_WHITE_HERB, + .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Norman2[] = { - { - .iv = 255, - .lvl = 42, - .species = SPECIES_CHANSEY, - .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH - }, - { - .iv = 255, - .lvl = 42, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_SPINDA, - .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL - } + { + .iv = 255, + .lvl = 42, + .species = SPECIES_CHANSEY, + .heldItem = ITEM_NONE, + .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + }, + { + .iv = 255, + .lvl = 42, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_SPINDA, + .heldItem = ITEM_NONE, + .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Norman3[] = { - { - .iv = 255, - .lvl = 47, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST - }, - { - .iv = 255, - .lvl = 47, - .species = SPECIES_CHANSEY, - .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_KANGASKHAN, - .heldItem = ITEM_NONE, - .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_SPINDA, - .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL - } + { + .iv = 255, + .lvl = 47, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + }, + { + .iv = 255, + .lvl = 47, + .species = SPECIES_CHANSEY, + .heldItem = ITEM_NONE, + .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_KANGASKHAN, + .heldItem = ITEM_NONE, + .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_SPINDA, + .heldItem = ITEM_NONE, + .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Norman4[] = { - { - .iv = 255, - .lvl = 52, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST - }, - { - .iv = 255, - .lvl = 52, - .species = SPECIES_BLISSEY, - .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_KANGASKHAN, - .heldItem = ITEM_NONE, - .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_SPINDA, - .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL - } + { + .iv = 255, + .lvl = 52, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + }, + { + .iv = 255, + .lvl = 52, + .species = SPECIES_BLISSEY, + .heldItem = ITEM_NONE, + .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_KANGASKHAN, + .heldItem = ITEM_NONE, + .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_SPINDA, + .heldItem = ITEM_NONE, + .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Norman5[] = { - { - .iv = 255, - .lvl = 57, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST - }, - { - .iv = 255, - .lvl = 57, - .species = SPECIES_BLISSEY, - .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_KANGASKHAN, - .heldItem = ITEM_NONE, - .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL - }, - { - .iv = 255, - .lvl = 57, - .species = SPECIES_TAUROS, - .heldItem = ITEM_NONE, - .moves = MOVE_TAKE_DOWN, MOVE_PROTECT, MOVE_FIRE_BLAST, MOVE_EARTHQUAKE - }, - { - .iv = 255, - .lvl = 58, - .species = SPECIES_SPINDA, - .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS - }, - { - .iv = 255, - .lvl = 60, - .species = SPECIES_SLAKING, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL - } + { + .iv = 255, + .lvl = 57, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + }, + { + .iv = 255, + .lvl = 57, + .species = SPECIES_BLISSEY, + .heldItem = ITEM_NONE, + .moves = MOVE_PROTECT, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_KANGASKHAN, + .heldItem = ITEM_NONE, + .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL + }, + { + .iv = 255, + .lvl = 57, + .species = SPECIES_TAUROS, + .heldItem = ITEM_NONE, + .moves = MOVE_TAKE_DOWN, MOVE_PROTECT, MOVE_FIRE_BLAST, MOVE_EARTHQUAKE + }, + { + .iv = 255, + .lvl = 58, + .species = SPECIES_SPINDA, + .heldItem = ITEM_NONE, + .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + }, + { + .iv = 255, + .lvl = 60, + .species = SPECIES_SLAKING, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Winona2[] = { - { - .iv = 255, - .lvl = 40, - .species = SPECIES_DRATINI, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 38, - .species = SPECIES_TROPIUS, - .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE - }, - { - .iv = 255, - .lvl = 41, - .species = SPECIES_PELIPPER, - .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_SKARMORY, - .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 40, + .species = SPECIES_DRATINI, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 38, + .species = SPECIES_TROPIUS, + .heldItem = ITEM_NONE, + .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + }, + { + .iv = 255, + .lvl = 41, + .species = SPECIES_PELIPPER, + .heldItem = ITEM_NONE, + .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_SKARMORY, + .heldItem = ITEM_NONE, + .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Winona3[] = { - { - .iv = 255, - .lvl = 43, - .species = SPECIES_HOOTHOOT, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER - }, - { - .iv = 255, - .lvl = 43, - .species = SPECIES_TROPIUS, - .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE - }, - { - .iv = 255, - .lvl = 45, - .species = SPECIES_DRAGONAIR, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 46, - .species = SPECIES_PELIPPER, - .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_SKARMORY, - .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 43, + .species = SPECIES_HOOTHOOT, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER + }, + { + .iv = 255, + .lvl = 43, + .species = SPECIES_TROPIUS, + .heldItem = ITEM_NONE, + .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + }, + { + .iv = 255, + .lvl = 45, + .species = SPECIES_DRAGONAIR, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 46, + .species = SPECIES_PELIPPER, + .heldItem = ITEM_NONE, + .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_SKARMORY, + .heldItem = ITEM_NONE, + .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Winona4[] = { - { - .iv = 255, - .lvl = 48, - .species = SPECIES_NOCTOWL, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER - }, - { - .iv = 255, - .lvl = 49, - .species = SPECIES_TROPIUS, - .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_DRAGONAIR, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_PELIPPER, - .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_SKARMORY, - .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 48, + .species = SPECIES_NOCTOWL, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER + }, + { + .iv = 255, + .lvl = 49, + .species = SPECIES_TROPIUS, + .heldItem = ITEM_NONE, + .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_DRAGONAIR, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_PELIPPER, + .heldItem = ITEM_NONE, + .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_SKARMORY, + .heldItem = ITEM_NONE, + .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Winona5[] = { - { - .iv = 255, - .lvl = 53, - .species = SPECIES_NOCTOWL, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER - }, - { - .iv = 255, - .lvl = 54, - .species = SPECIES_TROPIUS, - .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_PELIPPER, - .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_DRAGONITE, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 58, - .species = SPECIES_SKARMORY, - .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE - }, - { - .iv = 255, - .lvl = 60, - .species = SPECIES_ALTARIA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_SKY_ATTACK, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE - } + { + .iv = 255, + .lvl = 53, + .species = SPECIES_NOCTOWL, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER + }, + { + .iv = 255, + .lvl = 54, + .species = SPECIES_TROPIUS, + .heldItem = ITEM_NONE, + .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_PELIPPER, + .heldItem = ITEM_NONE, + .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_DRAGONITE, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 58, + .species = SPECIES_SKARMORY, + .heldItem = ITEM_NONE, + .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + }, + { + .iv = 255, + .lvl = 60, + .species = SPECIES_ALTARIA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_SKY_ATTACK, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + } }; const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza2[] = { - { - .iv = 255, - .lvl = 48, - .species = SPECIES_SLOWPOKE, - .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 49, - .species = SPECIES_CLAYDOL, - .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 49, - .species = SPECIES_XATU, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_LUNATONE, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 50, - .species = SPECIES_SOLROCK, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER - } + { + .iv = 255, + .lvl = 48, + .species = SPECIES_SLOWPOKE, + .heldItem = ITEM_NONE, + .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 49, + .species = SPECIES_CLAYDOL, + .heldItem = ITEM_NONE, + .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 49, + .species = SPECIES_XATU, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_LUNATONE, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 50, + .species = SPECIES_SOLROCK, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + } }; const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza3[] = { - { - .iv = 255, - .lvl = 53, - .species = SPECIES_DROWZEE, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_SLOWPOKE, - .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 54, - .species = SPECIES_CLAYDOL, - .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 54, - .species = SPECIES_XATU, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_LUNATONE, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 55, - .species = SPECIES_SOLROCK, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER - } + { + .iv = 255, + .lvl = 53, + .species = SPECIES_DROWZEE, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_SLOWPOKE, + .heldItem = ITEM_NONE, + .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 54, + .species = SPECIES_CLAYDOL, + .heldItem = ITEM_NONE, + .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 54, + .species = SPECIES_XATU, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_LUNATONE, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 55, + .species = SPECIES_SOLROCK, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + } }; const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza4[] = { - { - .iv = 255, - .lvl = 58, - .species = SPECIES_HYPNO, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 59, - .species = SPECIES_CLAYDOL, - .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 58, - .species = SPECIES_SLOWPOKE, - .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 59, - .species = SPECIES_XATU, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 60, - .species = SPECIES_LUNATONE, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 60, - .species = SPECIES_SOLROCK, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER - } + { + .iv = 255, + .lvl = 58, + .species = SPECIES_HYPNO, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 59, + .species = SPECIES_CLAYDOL, + .heldItem = ITEM_NONE, + .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 58, + .species = SPECIES_SLOWPOKE, + .heldItem = ITEM_NONE, + .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 59, + .species = SPECIES_XATU, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 60, + .species = SPECIES_LUNATONE, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 60, + .species = SPECIES_SOLROCK, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + } }; const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza5[] = { - { - .iv = 255, - .lvl = 63, - .species = SPECIES_HYPNO, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 64, - .species = SPECIES_CLAYDOL, - .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN - }, - { - .iv = 255, - .lvl = 63, - .species = SPECIES_SLOWKING, - .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT - }, - { - .iv = 255, - .lvl = 64, - .species = SPECIES_XATU, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 65, - .species = SPECIES_LUNATONE, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND - }, - { - .iv = 255, - .lvl = 65, - .species = SPECIES_SOLROCK, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER - } + { + .iv = 255, + .lvl = 63, + .species = SPECIES_HYPNO, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 64, + .species = SPECIES_CLAYDOL, + .heldItem = ITEM_NONE, + .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + }, + { + .iv = 255, + .lvl = 63, + .species = SPECIES_SLOWKING, + .heldItem = ITEM_NONE, + .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + }, + { + .iv = 255, + .lvl = 64, + .species = SPECIES_XATU, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 65, + .species = SPECIES_LUNATONE, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + }, + { + .iv = 255, + .lvl = 65, + .species = SPECIES_SOLROCK, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Juan2[] = { - { - .iv = 255, - .lvl = 46, - .species = SPECIES_POLIWAG, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP - }, - { - .iv = 255, - .lvl = 46, - .species = SPECIES_WHISCASH, - .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_WALREIN, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 48, - .species = SPECIES_CRAWDAUNT, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_DOUBLE_TEAM - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_KINGDRA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST - } + { + .iv = 255, + .lvl = 46, + .species = SPECIES_POLIWAG, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP + }, + { + .iv = 255, + .lvl = 46, + .species = SPECIES_WHISCASH, + .heldItem = ITEM_NONE, + .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_WALREIN, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 48, + .species = SPECIES_CRAWDAUNT, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_REST, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_DOUBLE_TEAM + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_KINGDRA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Juan3[] = { - { - .iv = 255, - .lvl = 50, - .species = SPECIES_POLIWHIRL, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP - }, - { - .iv = 255, - .lvl = 51, - .species = SPECIES_WHISCASH, - .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_WALREIN, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 53, - .species = SPECIES_CRAWDAUNT, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM - }, - { - .iv = 255, - .lvl = 56, - .species = SPECIES_KINGDRA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST - } + { + .iv = 255, + .lvl = 50, + .species = SPECIES_POLIWHIRL, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP + }, + { + .iv = 255, + .lvl = 51, + .species = SPECIES_WHISCASH, + .heldItem = ITEM_NONE, + .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_WALREIN, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 53, + .species = SPECIES_CRAWDAUNT, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM + }, + { + .iv = 255, + .lvl = 56, + .species = SPECIES_KINGDRA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Juan4[] = { - { - .iv = 255, - .lvl = 56, - .species = SPECIES_LAPRAS, - .heldItem = ITEM_NONE, - .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY - }, - { - .iv = 255, - .lvl = 58, - .species = SPECIES_WHISCASH, - .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE - }, - { - .iv = 255, - .lvl = 56, - .species = SPECIES_POLIWHIRL, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP - }, - { - .iv = 255, - .lvl = 58, - .species = SPECIES_WALREIN, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM - }, - { - .iv = 255, - .lvl = 58, - .species = SPECIES_CRAWDAUNT, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM - }, - { - .iv = 255, - .lvl = 61, - .species = SPECIES_KINGDRA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST - } + { + .iv = 255, + .lvl = 56, + .species = SPECIES_LAPRAS, + .heldItem = ITEM_NONE, + .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY + }, + { + .iv = 255, + .lvl = 58, + .species = SPECIES_WHISCASH, + .heldItem = ITEM_NONE, + .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + }, + { + .iv = 255, + .lvl = 56, + .species = SPECIES_POLIWHIRL, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP + }, + { + .iv = 255, + .lvl = 58, + .species = SPECIES_WALREIN, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM + }, + { + .iv = 255, + .lvl = 58, + .species = SPECIES_CRAWDAUNT, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM + }, + { + .iv = 255, + .lvl = 61, + .species = SPECIES_KINGDRA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Juan5[] = { - { - .iv = 255, - .lvl = 61, - .species = SPECIES_LAPRAS, - .heldItem = ITEM_NONE, - .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY - }, - { - .iv = 255, - .lvl = 63, - .species = SPECIES_WHISCASH, - .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE - }, - { - .iv = 255, - .lvl = 61, - .species = SPECIES_POLITOED, - .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_HYDRO_PUMP, MOVE_PERISH_SONG - }, - { - .iv = 255, - .lvl = 63, - .species = SPECIES_WALREIN, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_SHEER_COLD - }, - { - .iv = 255, - .lvl = 63, - .species = SPECIES_CRAWDAUNT, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM - }, - { - .iv = 255, - .lvl = 66, - .species = SPECIES_KINGDRA, - .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST - } + { + .iv = 255, + .lvl = 61, + .species = SPECIES_LAPRAS, + .heldItem = ITEM_NONE, + .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY + }, + { + .iv = 255, + .lvl = 63, + .species = SPECIES_WHISCASH, + .heldItem = ITEM_NONE, + .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + }, + { + .iv = 255, + .lvl = 61, + .species = SPECIES_POLITOED, + .heldItem = ITEM_NONE, + .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_HYDRO_PUMP, MOVE_PERISH_SONG + }, + { + .iv = 255, + .lvl = 63, + .species = SPECIES_WALREIN, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_SHEER_COLD + }, + { + .iv = 255, + .lvl = 63, + .species = SPECIES_CRAWDAUNT, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM + }, + { + .iv = 255, + .lvl = 66, + .species = SPECIES_KINGDRA, + .heldItem = ITEM_CHESTO_BERRY, + .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Angelo[] = { - { - .iv = 100, - .lvl = 17, - .species = SPECIES_ILLUMISE, - .heldItem = ITEM_NONE, - .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CHARM, MOVE_NONE - }, - { - .iv = 100, - .lvl = 17, - .species = SPECIES_VOLBEAT, - .heldItem = ITEM_NONE, - .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CONFUSE_RAY, MOVE_NONE - } + { + .iv = 100, + .lvl = 17, + .species = SPECIES_ILLUMISE, + .heldItem = ITEM_NONE, + .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CHARM, MOVE_NONE + }, + { + .iv = 100, + .lvl = 17, + .species = SPECIES_VOLBEAT, + .heldItem = ITEM_NONE, + .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CONFUSE_RAY, MOVE_NONE + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darius[] = { - { - .iv = 200, - .lvl = 30, - .species = SPECIES_TROPIUS, - } + { + .iv = 200, + .lvl = 30, + .species = SPECIES_TROPIUS, + } }; const struct TrainerMonItemCustomMoves gTrainerParty_Steven[] = { - { - .iv = 255, - .lvl = 77, - .species = SPECIES_SKARMORY, - .heldItem = ITEM_NONE, - .moves = MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_SPIKES, MOVE_STEEL_WING - }, - { - .iv = 255, - .lvl = 75, - .species = SPECIES_CLAYDOL, - .heldItem = ITEM_NONE, - .moves = MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE - }, - { - .iv = 255, - .lvl = 76, - .species = SPECIES_AGGRON, - .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_EARTHQUAKE, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW - }, - { - .iv = 255, - .lvl = 76, - .species = SPECIES_CRADILY, - .heldItem = ITEM_NONE, - .moves = MOVE_GIGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_INGRAIN, MOVE_CONFUSE_RAY - }, - { - .iv = 255, - .lvl = 76, - .species = SPECIES_ARMALDO, - .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_SLASH - }, - { - .iv = 255, - .lvl = 78, - .species = SPECIES_METAGROSS, - .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_SHADOW_BALL - } + { + .iv = 255, + .lvl = 77, + .species = SPECIES_SKARMORY, + .heldItem = ITEM_NONE, + .moves = MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_SPIKES, MOVE_STEEL_WING + }, + { + .iv = 255, + .lvl = 75, + .species = SPECIES_CLAYDOL, + .heldItem = ITEM_NONE, + .moves = MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE + }, + { + .iv = 255, + .lvl = 76, + .species = SPECIES_AGGRON, + .heldItem = ITEM_NONE, + .moves = MOVE_THUNDER, MOVE_EARTHQUAKE, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW + }, + { + .iv = 255, + .lvl = 76, + .species = SPECIES_CRADILY, + .heldItem = ITEM_NONE, + .moves = MOVE_GIGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_INGRAIN, MOVE_CONFUSE_RAY + }, + { + .iv = 255, + .lvl = 76, + .species = SPECIES_ARMALDO, + .heldItem = ITEM_NONE, + .moves = MOVE_WATER_PULSE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_SLASH + }, + { + .iv = 255, + .lvl = 78, + .species = SPECIES_METAGROSS, + .heldItem = ITEM_SITRUS_BERRY, + .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_SHADOW_BALL + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anabel[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BELDUM, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BELDUM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tucker[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BELDUM, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BELDUM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spenser[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BELDUM, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BELDUM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greta[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BELDUM, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BELDUM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Noland[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BELDUM, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BELDUM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucy[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BELDUM, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BELDUM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandon[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BELDUM, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BELDUM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres2[] = { - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SANDSHREW, - } + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SANDSHREW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres3[] = { - { - .iv = 20, - .lvl = 33, - .species = SPECIES_NOSEPASS, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_SANDSHREW, - } + { + .iv = 20, + .lvl = 33, + .species = SPECIES_NOSEPASS, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_SANDSHREW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres4[] = { - { - .iv = 30, - .lvl = 35, - .species = SPECIES_NOSEPASS, - }, - { - .iv = 30, - .lvl = 35, - .species = SPECIES_SANDSHREW, - }, - { - .iv = 30, - .lvl = 35, - .species = SPECIES_SANDSHREW, - } + { + .iv = 30, + .lvl = 35, + .species = SPECIES_NOSEPASS, + }, + { + .iv = 30, + .lvl = 35, + .species = SPECIES_SANDSHREW, + }, + { + .iv = 30, + .lvl = 35, + .species = SPECIES_SANDSHREW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres5[] = { - { - .iv = 40, - .lvl = 37, - .species = SPECIES_NOSEPASS, - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_SANDSLASH, - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_SANDSLASH, - } + { + .iv = 40, + .lvl = 37, + .species = SPECIES_NOSEPASS, + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_SANDSLASH, + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_SANDSLASH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory2[] = { - { - .iv = 10, - .lvl = 30, - .species = SPECIES_WINGULL, - }, - { - .iv = 10, - .lvl = 30, - .species = SPECIES_MACHOP, - }, - { - .iv = 10, - .lvl = 30, - .species = SPECIES_TENTACOOL, - } + { + .iv = 10, + .lvl = 30, + .species = SPECIES_WINGULL, + }, + { + .iv = 10, + .lvl = 30, + .species = SPECIES_MACHOP, + }, + { + .iv = 10, + .lvl = 30, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory3[] = { - { - .iv = 20, - .lvl = 32, - .species = SPECIES_PELIPPER, - }, - { - .iv = 20, - .lvl = 32, - .species = SPECIES_MACHOP, - }, - { - .iv = 20, - .lvl = 32, - .species = SPECIES_TENTACOOL, - } + { + .iv = 20, + .lvl = 32, + .species = SPECIES_PELIPPER, + }, + { + .iv = 20, + .lvl = 32, + .species = SPECIES_MACHOP, + }, + { + .iv = 20, + .lvl = 32, + .species = SPECIES_TENTACOOL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory4[] = { - { - .iv = 30, - .lvl = 34, - .species = SPECIES_PELIPPER, - }, - { - .iv = 30, - .lvl = 34, - .species = SPECIES_MACHOP, - }, - { - .iv = 30, - .lvl = 34, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 30, + .lvl = 34, + .species = SPECIES_PELIPPER, + }, + { + .iv = 30, + .lvl = 34, + .species = SPECIES_MACHOP, + }, + { + .iv = 30, + .lvl = 34, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory5[] = { - { - .iv = 40, - .lvl = 36, - .species = SPECIES_PELIPPER, - }, - { - .iv = 40, - .lvl = 36, - .species = SPECIES_MACHOKE, - }, - { - .iv = 40, - .lvl = 36, - .species = SPECIES_TENTACRUEL, - } + { + .iv = 40, + .lvl = 36, + .species = SPECIES_PELIPPER, + }, + { + .iv = 40, + .lvl = 36, + .species = SPECIES_MACHOKE, + }, + { + .iv = 40, + .lvl = 36, + .species = SPECIES_TENTACRUEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo2[] = { - { - .iv = 10, - .lvl = 37, - .species = SPECIES_STARYU, - }, - { - .iv = 10, - .lvl = 37, - .species = SPECIES_STARYU, - } + { + .iv = 10, + .lvl = 37, + .species = SPECIES_STARYU, + }, + { + .iv = 10, + .lvl = 37, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo3[] = { - { - .iv = 20, - .lvl = 39, - .species = SPECIES_WINGULL, - }, - { - .iv = 20, - .lvl = 39, - .species = SPECIES_STARYU, - }, - { - .iv = 20, - .lvl = 39, - .species = SPECIES_STARYU, - } + { + .iv = 20, + .lvl = 39, + .species = SPECIES_WINGULL, + }, + { + .iv = 20, + .lvl = 39, + .species = SPECIES_STARYU, + }, + { + .iv = 20, + .lvl = 39, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo4[] = { - { - .iv = 30, - .lvl = 41, - .species = SPECIES_PELIPPER, - }, - { - .iv = 30, - .lvl = 41, - .species = SPECIES_STARYU, - }, - { - .iv = 30, - .lvl = 41, - .species = SPECIES_STARYU, - } + { + .iv = 30, + .lvl = 41, + .species = SPECIES_PELIPPER, + }, + { + .iv = 30, + .lvl = 41, + .species = SPECIES_STARYU, + }, + { + .iv = 30, + .lvl = 41, + .species = SPECIES_STARYU, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo5[] = { - { - .iv = 40, - .lvl = 43, - .species = SPECIES_PELIPPER, - }, - { - .iv = 40, - .lvl = 43, - .species = SPECIES_STARMIE, - }, - { - .iv = 40, - .lvl = 43, - .species = SPECIES_STARMIE, - } + { + .iv = 40, + .lvl = 43, + .species = SPECIES_PELIPPER, + }, + { + .iv = 40, + .lvl = 43, + .species = SPECIES_STARMIE, + }, + { + .iv = 40, + .lvl = 43, + .species = SPECIES_STARMIE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji2[] = { - { - .iv = 10, - .lvl = 37, - .species = SPECIES_MACHOKE, - }, - { - .iv = 10, - .lvl = 37, - .species = SPECIES_MACHOKE, - } + { + .iv = 10, + .lvl = 37, + .species = SPECIES_MACHOKE, + }, + { + .iv = 10, + .lvl = 37, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji3[] = { - { - .iv = 20, - .lvl = 39, - .species = SPECIES_MAKUHITA, - }, - { - .iv = 20, - .lvl = 39, - .species = SPECIES_MACHOKE, - }, - { - .iv = 20, - .lvl = 39, - .species = SPECIES_MACHOKE, - } + { + .iv = 20, + .lvl = 39, + .species = SPECIES_MAKUHITA, + }, + { + .iv = 20, + .lvl = 39, + .species = SPECIES_MACHOKE, + }, + { + .iv = 20, + .lvl = 39, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji4[] = { - { - .iv = 30, - .lvl = 41, - .species = SPECIES_HARIYAMA, - }, - { - .iv = 30, - .lvl = 41, - .species = SPECIES_MACHOKE, - }, - { - .iv = 30, - .lvl = 41, - .species = SPECIES_MACHOKE, - } + { + .iv = 30, + .lvl = 41, + .species = SPECIES_HARIYAMA, + }, + { + .iv = 30, + .lvl = 41, + .species = SPECIES_MACHOKE, + }, + { + .iv = 30, + .lvl = 41, + .species = SPECIES_MACHOKE, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji5[] = { - { - .iv = 40, - .lvl = 43, - .species = SPECIES_HARIYAMA, - }, - { - .iv = 40, - .lvl = 43, - .species = SPECIES_MACHAMP, - }, - { - .iv = 40, - .lvl = 43, - .species = SPECIES_MACHAMP, - } + { + .iv = 40, + .lvl = 43, + .species = SPECIES_HARIYAMA, + }, + { + .iv = 40, + .lvl = 43, + .species = SPECIES_MACHAMP, + }, + { + .iv = 40, + .lvl = 43, + .species = SPECIES_MACHAMP, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin2[] = { - { - .iv = 110, - .lvl = 35, - .species = SPECIES_LOUDRED, - }, - { - .iv = 110, - .lvl = 35, - .species = SPECIES_VIGOROTH, - } + { + .iv = 110, + .lvl = 35, + .species = SPECIES_LOUDRED, + }, + { + .iv = 110, + .lvl = 35, + .species = SPECIES_VIGOROTH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin3[] = { - { - .iv = 120, - .lvl = 37, - .species = SPECIES_SPINDA, - }, - { - .iv = 120, - .lvl = 37, - .species = SPECIES_LOUDRED, - }, - { - .iv = 120, - .lvl = 37, - .species = SPECIES_VIGOROTH, - } + { + .iv = 120, + .lvl = 37, + .species = SPECIES_SPINDA, + }, + { + .iv = 120, + .lvl = 37, + .species = SPECIES_LOUDRED, + }, + { + .iv = 120, + .lvl = 37, + .species = SPECIES_VIGOROTH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin4[] = { - { - .iv = 130, - .lvl = 39, - .species = SPECIES_SPINDA, - }, - { - .iv = 130, - .lvl = 39, - .species = SPECIES_LOUDRED, - }, - { - .iv = 100, - .lvl = 39, - .species = SPECIES_VIGOROTH, - } + { + .iv = 130, + .lvl = 39, + .species = SPECIES_SPINDA, + }, + { + .iv = 130, + .lvl = 39, + .species = SPECIES_LOUDRED, + }, + { + .iv = 100, + .lvl = 39, + .species = SPECIES_VIGOROTH, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin5[] = { - { - .iv = 140, - .lvl = 41, - .species = SPECIES_SPINDA, - }, - { - .iv = 140, - .lvl = 41, - .species = SPECIES_EXPLOUD, - }, - { - .iv = 140, - .lvl = 41, - .species = SPECIES_SLAKING, - } + { + .iv = 140, + .lvl = 41, + .species = SPECIES_SPINDA, + }, + { + .iv = 140, + .lvl = 41, + .species = SPECIES_EXPLOUD, + }, + { + .iv = 140, + .lvl = 41, + .species = SPECIES_SLAKING, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando2[] = { - { - .iv = 10, - .lvl = 35, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 10, - .lvl = 35, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 10, - .lvl = 35, - .species = SPECIES_LOUDRED, - } + { + .iv = 10, + .lvl = 35, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 10, + .lvl = 35, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 10, + .lvl = 35, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando3[] = { - { - .iv = 20, - .lvl = 37, - .species = SPECIES_ELECTRIKE, - }, - { - .iv = 20, - .lvl = 37, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 20, - .lvl = 37, - .species = SPECIES_LOUDRED, - } + { + .iv = 20, + .lvl = 37, + .species = SPECIES_ELECTRIKE, + }, + { + .iv = 20, + .lvl = 37, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 20, + .lvl = 37, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando4[] = { - { - .iv = 30, - .lvl = 39, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 30, - .lvl = 39, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 30, - .lvl = 39, - .species = SPECIES_LOUDRED, - } + { + .iv = 30, + .lvl = 39, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 30, + .lvl = 39, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 30, + .lvl = 39, + .species = SPECIES_LOUDRED, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando5[] = { - { - .iv = 40, - .lvl = 41, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 40, - .lvl = 41, - .species = SPECIES_MANECTRIC, - }, - { - .iv = 40, - .lvl = 41, - .species = SPECIES_EXPLOUD, - } + { + .iv = 40, + .lvl = 41, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 40, + .lvl = 41, + .species = SPECIES_MANECTRIC, + }, + { + .iv = 40, + .lvl = 41, + .species = SPECIES_EXPLOUD, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer2[] = { - { - .iv = 10, - .lvl = 26, - .species = SPECIES_GEODUDE, - }, - { - .iv = 10, - .lvl = 26, - .species = SPECIES_NUMEL, - } + { + .iv = 10, + .lvl = 26, + .species = SPECIES_GEODUDE, + }, + { + .iv = 10, + .lvl = 26, + .species = SPECIES_NUMEL, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer3[] = { - { - .iv = 20, - .lvl = 28, - .species = SPECIES_MACHOP, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_NUMEL, - }, - { - .iv = 20, - .lvl = 28, - .species = SPECIES_GRAVELER, - } + { + .iv = 20, + .lvl = 28, + .species = SPECIES_MACHOP, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_NUMEL, + }, + { + .iv = 20, + .lvl = 28, + .species = SPECIES_GRAVELER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer4[] = { - { - .iv = 30, - .lvl = 30, - .species = SPECIES_MACHOP, - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_NUMEL, - }, - { - .iv = 30, - .lvl = 30, - .species = SPECIES_GRAVELER, - } + { + .iv = 30, + .lvl = 30, + .species = SPECIES_MACHOP, + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_NUMEL, + }, + { + .iv = 30, + .lvl = 30, + .species = SPECIES_GRAVELER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer5[] = { - { - .iv = 40, - .lvl = 33, - .species = SPECIES_MACHOKE, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_CAMERUPT, - }, - { - .iv = 40, - .lvl = 33, - .species = SPECIES_GOLEM, - } + { + .iv = 40, + .lvl = 33, + .species = SPECIES_MACHOKE, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_CAMERUPT, + }, + { + .iv = 40, + .lvl = 33, + .species = SPECIES_GOLEM, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle2[] = { - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SKITTY, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_ZIGZAGOON, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_LOTAD, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_SEEDOT, - }, - { - .iv = 10, - .lvl = 31, - .species = SPECIES_TAILLOW, - } + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SKITTY, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_ZIGZAGOON, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_LOTAD, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_SEEDOT, + }, + { + .iv = 10, + .lvl = 31, + .species = SPECIES_TAILLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle3[] = { - { - .iv = 20, - .lvl = 33, - .species = SPECIES_SKITTY, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_LINOONE, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_LOMBRE, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_NUZLEAF, - }, - { - .iv = 20, - .lvl = 33, - .species = SPECIES_TAILLOW, - } + { + .iv = 20, + .lvl = 33, + .species = SPECIES_SKITTY, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_LINOONE, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_LOMBRE, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_NUZLEAF, + }, + { + .iv = 20, + .lvl = 33, + .species = SPECIES_TAILLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle4[] = { - { - .iv = 30, - .lvl = 35, - .species = SPECIES_DELCATTY, - }, - { - .iv = 30, - .lvl = 35, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 30, - .lvl = 35, - .species = SPECIES_LINOONE, - }, - { - .iv = 30, - .lvl = 35, - .species = SPECIES_LOMBRE, - }, - { - .iv = 30, - .lvl = 35, - .species = SPECIES_NUZLEAF, - }, - { - .iv = 30, - .lvl = 35, - .species = SPECIES_SWELLOW, - } + { + .iv = 30, + .lvl = 35, + .species = SPECIES_DELCATTY, + }, + { + .iv = 30, + .lvl = 35, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 30, + .lvl = 35, + .species = SPECIES_LINOONE, + }, + { + .iv = 30, + .lvl = 35, + .species = SPECIES_LOMBRE, + }, + { + .iv = 30, + .lvl = 35, + .species = SPECIES_NUZLEAF, + }, + { + .iv = 30, + .lvl = 35, + .species = SPECIES_SWELLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle5[] = { - { - .iv = 40, - .lvl = 37, - .species = SPECIES_DELCATTY, - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_MIGHTYENA, - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_LINOONE, - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_LUDICOLO, - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_SHIFTRY, - }, - { - .iv = 40, - .lvl = 37, - .species = SPECIES_SWELLOW, - } + { + .iv = 40, + .lvl = 37, + .species = SPECIES_DELCATTY, + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_MIGHTYENA, + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_LINOONE, + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_LUDICOLO, + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_SHIFTRY, + }, + { + .iv = 40, + .lvl = 37, + .species = SPECIES_SWELLOW, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia2[] = { - { - .iv = 10, - .lvl = 34, - .species = SPECIES_WAILMER, - }, - { - .iv = 10, - .lvl = 34, - .species = SPECIES_HORSEA, - } + { + .iv = 10, + .lvl = 34, + .species = SPECIES_WAILMER, + }, + { + .iv = 10, + .lvl = 34, + .species = SPECIES_HORSEA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia3[] = { - { - .iv = 20, - .lvl = 36, - .species = SPECIES_LUVDISC, - }, - { - .iv = 20, - .lvl = 36, - .species = SPECIES_WAILMER, - }, - { - .iv = 20, - .lvl = 36, - .species = SPECIES_SEADRA, - } + { + .iv = 20, + .lvl = 36, + .species = SPECIES_LUVDISC, + }, + { + .iv = 20, + .lvl = 36, + .species = SPECIES_WAILMER, + }, + { + .iv = 20, + .lvl = 36, + .species = SPECIES_SEADRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia4[] = { - { - .iv = 30, - .lvl = 38, - .species = SPECIES_LUVDISC, - }, - { - .iv = 30, - .lvl = 38, - .species = SPECIES_WAILMER, - }, - { - .iv = 30, - .lvl = 38, - .species = SPECIES_SEADRA, - } + { + .iv = 30, + .lvl = 38, + .species = SPECIES_LUVDISC, + }, + { + .iv = 30, + .lvl = 38, + .species = SPECIES_WAILMER, + }, + { + .iv = 30, + .lvl = 38, + .species = SPECIES_SEADRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia5[] = { - { - .iv = 40, - .lvl = 40, - .species = SPECIES_LUVDISC, - }, - { - .iv = 40, - .lvl = 40, - .species = SPECIES_WAILORD, - }, - { - .iv = 40, - .lvl = 40, - .species = SPECIES_KINGDRA, - } + { + .iv = 40, + .lvl = 40, + .species = SPECIES_LUVDISC, + }, + { + .iv = 40, + .lvl = 40, + .species = SPECIES_WAILORD, + }, + { + .iv = 40, + .lvl = 40, + .species = SPECIES_KINGDRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mariela[] = { - { - .iv = 0, - .lvl = 41, - .species = SPECIES_CHIMECHO, - } + { + .iv = 0, + .lvl = 41, + .species = SPECIES_CHIMECHO, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alvaro[] = { - { - .iv = 0, - .lvl = 41, - .species = SPECIES_BANETTE, - }, - { - .iv = 0, - .lvl = 41, - .species = SPECIES_KADABRA, - } + { + .iv = 0, + .lvl = 41, + .species = SPECIES_BANETTE, + }, + { + .iv = 0, + .lvl = 41, + .species = SPECIES_KADABRA, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Everett[] = { - { - .iv = 0, - .lvl = 41, - .species = SPECIES_WOBBUFFET, - } + { + .iv = 0, + .lvl = 41, + .species = SPECIES_WOBBUFFET, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Red[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_CHARMANDER, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_CHARMANDER, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leaf[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_BULBASAUR, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_BULBASAUR, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan16[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_GROUDON, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_GROUDON, + } }; const struct TrainerMonNoItemDefaultMoves gTrainerParty_May16[] = { - { - .iv = 0, - .lvl = 5, - .species = SPECIES_KYOGRE, - } + { + .iv = 0, + .lvl = 5, + .species = SPECIES_KYOGRE, + } }; - diff --git a/src/data/trainers.h b/src/data/trainers.h index 214a72df1..7ec297eb3 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -156,9 +156,9 @@ const struct Trainer gTrainers[] = { [TRAINER_MARCEL] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("MARCEL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -534,9 +534,9 @@ const struct Trainer gTrainers[] = { [TRAINER_FELIX] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("FELIX"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -800,7 +800,7 @@ const struct Trainer gTrainers[] = { [TRAINER_LOLA_1] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), @@ -814,7 +814,7 @@ const struct Trainer gTrainers[] = { [TRAINER_AUSTINA] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("AUSTINA"), @@ -828,7 +828,7 @@ const struct Trainer gTrainers[] = { [TRAINER_GWEN] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("GWEN"), @@ -842,7 +842,7 @@ const struct Trainer gTrainers[] = { [TRAINER_LOLA_2] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), @@ -856,7 +856,7 @@ const struct Trainer gTrainers[] = { [TRAINER_LOLA_3] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), @@ -870,7 +870,7 @@ const struct Trainer gTrainers[] = { [TRAINER_LOLA_4] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), @@ -884,7 +884,7 @@ const struct Trainer gTrainers[] = { [TRAINER_LOLA_5] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("LOLA"), @@ -898,7 +898,7 @@ const struct Trainer gTrainers[] = { [TRAINER_RICKY_1] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), @@ -912,7 +912,7 @@ const struct Trainer gTrainers[] = { [TRAINER_SIMON] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("SIMON"), @@ -926,7 +926,7 @@ const struct Trainer gTrainers[] = { [TRAINER_CHARLIE] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("CHARLIE"), @@ -940,7 +940,7 @@ const struct Trainer gTrainers[] = { [TRAINER_RICKY_2] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), @@ -954,7 +954,7 @@ const struct Trainer gTrainers[] = { [TRAINER_RICKY_3] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), @@ -968,7 +968,7 @@ const struct Trainer gTrainers[] = { [TRAINER_RICKY_4] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), @@ -982,7 +982,7 @@ const struct Trainer gTrainers[] = { [TRAINER_RICKY_5] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("RICKY"), @@ -996,9 +996,9 @@ const struct Trainer gTrainers[] = { [TRAINER_RANDALL] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("RANDALL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1010,9 +1010,9 @@ const struct Trainer gTrainers[] = { [TRAINER_PARKER] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("PARKER"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1024,9 +1024,9 @@ const struct Trainer gTrainers[] = { [TRAINER_GEORGE] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("GEORGE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1038,9 +1038,9 @@ const struct Trainer gTrainers[] = { [TRAINER_BERKE] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("BERKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1052,9 +1052,9 @@ const struct Trainer gTrainers[] = { [TRAINER_BRAXTON] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("BRAXTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1066,9 +1066,9 @@ const struct Trainer gTrainers[] = { [TRAINER_VINCENT] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("VINCENT"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1080,9 +1080,9 @@ const struct Trainer gTrainers[] = { [TRAINER_LEROY] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("LEROY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1094,9 +1094,9 @@ const struct Trainer gTrainers[] = { [TRAINER_WILTON_1] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("WILTON"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1108,9 +1108,9 @@ const struct Trainer gTrainers[] = { [TRAINER_EDGAR] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("EDGAR"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1122,9 +1122,9 @@ const struct Trainer gTrainers[] = { [TRAINER_ALBERT] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("ALBERT"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1136,9 +1136,9 @@ const struct Trainer gTrainers[] = { [TRAINER_SAMUEL] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("SAMUEL"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1150,9 +1150,9 @@ const struct Trainer gTrainers[] = { [TRAINER_VITO] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("VITO"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1164,9 +1164,9 @@ const struct Trainer gTrainers[] = { [TRAINER_OWEN] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("OWEN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1178,9 +1178,9 @@ const struct Trainer gTrainers[] = { [TRAINER_WILTON_2] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("WILTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1192,9 +1192,9 @@ const struct Trainer gTrainers[] = { [TRAINER_WILTON_3] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("WILTON"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1206,9 +1206,9 @@ const struct Trainer gTrainers[] = { [TRAINER_WILTON_4] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("WILTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1220,9 +1220,9 @@ const struct Trainer gTrainers[] = { [TRAINER_WILTON_5] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("WILTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1234,9 +1234,9 @@ const struct Trainer gTrainers[] = { [TRAINER_WARREN] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("WARREN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1248,9 +1248,9 @@ const struct Trainer gTrainers[] = { [TRAINER_MARY] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("MARY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1262,9 +1262,9 @@ const struct Trainer gTrainers[] = { [TRAINER_ALEXIA] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("ALEXIA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1276,9 +1276,9 @@ const struct Trainer gTrainers[] = { [TRAINER_JODY] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("JODY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1290,9 +1290,9 @@ const struct Trainer gTrainers[] = { [TRAINER_WENDY] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("WENDY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1304,9 +1304,9 @@ const struct Trainer gTrainers[] = { [TRAINER_KEIRA] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("KEIRA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1318,9 +1318,9 @@ const struct Trainer gTrainers[] = { [TRAINER_BROOKE_1] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("BROOKE"), .items = {ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1332,9 +1332,9 @@ const struct Trainer gTrainers[] = { [TRAINER_JENNIFER] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("JENNIFER"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1346,9 +1346,9 @@ const struct Trainer gTrainers[] = { [TRAINER_HOPE] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("HOPE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1360,9 +1360,9 @@ const struct Trainer gTrainers[] = { [TRAINER_SHANNON] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("SHANNON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1374,9 +1374,9 @@ const struct Trainer gTrainers[] = { [TRAINER_MICHELLE] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("MICHELLE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1388,9 +1388,9 @@ const struct Trainer gTrainers[] = { [TRAINER_CAROLINE] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("CAROLINE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1402,9 +1402,9 @@ const struct Trainer gTrainers[] = { [TRAINER_JULIE] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("JULIE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1416,9 +1416,9 @@ const struct Trainer gTrainers[] = { [TRAINER_BROOKE_2] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("BROOKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1430,9 +1430,9 @@ const struct Trainer gTrainers[] = { [TRAINER_BROOKE_3] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("BROOKE"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1444,9 +1444,9 @@ const struct Trainer gTrainers[] = { [TRAINER_BROOKE_4] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("BROOKE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -1458,9 +1458,9 @@ const struct Trainer gTrainers[] = { [TRAINER_BROOKE_5] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("BROOKE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -4092,7 +4092,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_WINSTRATE, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("VICTOR"), .items = {}, .doubleBattle = FALSE, @@ -4106,7 +4106,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, @@ -4120,7 +4120,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("COLTON"), .items = {}, .doubleBattle = FALSE, @@ -4134,7 +4134,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, @@ -4148,7 +4148,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, @@ -4162,7 +4162,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, @@ -4176,7 +4176,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("MIGUEL"), .items = {}, .doubleBattle = FALSE, @@ -4190,7 +4190,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_WINSTRATE, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("VICTORIA"), .items = {}, .doubleBattle = FALSE, @@ -4204,7 +4204,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("VANESSA"), .items = {}, .doubleBattle = FALSE, @@ -4218,7 +4218,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("BETHANY"), .items = {}, .doubleBattle = FALSE, @@ -4232,7 +4232,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, @@ -4246,7 +4246,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, @@ -4260,7 +4260,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, @@ -4274,7 +4274,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, @@ -4288,7 +4288,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("ISABEL"), .items = {}, .doubleBattle = FALSE, @@ -4538,9 +4538,9 @@ const struct Trainer gTrainers[] = { [TRAINER_QUINCY] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("QUINCY"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -4552,9 +4552,9 @@ const struct Trainer gTrainers[] = { [TRAINER_KATELYNN] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("KATELYNN"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -5840,9 +5840,9 @@ const struct Trainer gTrainers[] = { [TRAINER_DIANNE] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("DIANNE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -5854,7 +5854,7 @@ const struct Trainer gTrainers[] = { [TRAINER_JANI] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("JANI"), @@ -7032,7 +7032,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_F, + .trainerPic = TRAINER_PIC_POKEFAN_F, .trainerName = _("ANNIKA"), .items = {}, .doubleBattle = FALSE, @@ -7044,9 +7044,9 @@ const struct Trainer gTrainers[] = { [TRAINER_JAZMYN] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_2, + .trainerClass = TRAINER_CLASS_COOLTRAINER_UNUSED, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("JAZMYN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -7114,9 +7114,9 @@ const struct Trainer gTrainers[] = { [TRAINER_MARLEY] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("MARLEY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -7562,9 +7562,9 @@ const struct Trainer gTrainers[] = { [TRAINER_MITCHELL] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("MITCHELL"), .items = {}, .doubleBattle = FALSE, @@ -7646,9 +7646,9 @@ const struct Trainer gTrainers[] = { [TRAINER_HALLE] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("HALLE"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -8080,9 +8080,9 @@ const struct Trainer gTrainers[] = { [TRAINER_ATHENA] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("ATHENA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -8374,9 +8374,9 @@ const struct Trainer gTrainers[] = { [TRAINER_JONATHAN] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("JONATHAN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -9074,9 +9074,9 @@ const struct Trainer gTrainers[] = { [TRAINER_GERALD] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("GERALD"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -9382,9 +9382,9 @@ const struct Trainer gTrainers[] = { [TRAINER_ALEXA] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("ALEXA"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -9396,9 +9396,9 @@ const struct Trainer gTrainers[] = { [TRAINER_RUBEN] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("RUBEN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -9760,7 +9760,7 @@ const struct Trainer gTrainers[] = { [TRAINER_HAILEY] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_1, + .trainerClass = TRAINER_CLASS_TUBER_F, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_F, .trainerName = _("HAILEY"), @@ -9774,7 +9774,7 @@ const struct Trainer gTrainers[] = { [TRAINER_CHANDLER] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_TUBER_2, + .trainerClass = TRAINER_CLASS_TUBER_M, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_GIRL, .trainerPic = TRAINER_PIC_TUBER_M, .trainerName = _("CHANDLER"), @@ -9790,7 +9790,7 @@ const struct Trainer gTrainers[] = { .partyFlags = F_TRAINER_PARTY_HELD_ITEM, .trainerClass = TRAINER_CLASS_POKEFAN, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_TWINS, - .trainerPic = TRAINER_PIC_WINSTRATE_M, + .trainerPic = TRAINER_PIC_POKEFAN_M, .trainerName = _("KALEB"), .items = {}, .doubleBattle = FALSE, @@ -10264,9 +10264,9 @@ const struct Trainer gTrainers[] = { [TRAINER_DARCY] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("DARCY"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -10376,9 +10376,9 @@ const struct Trainer gTrainers[] = { [TRAINER_CAROLINA] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("CAROLINA"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -10670,9 +10670,9 @@ const struct Trainer gTrainers[] = { [TRAINER_LEONEL] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_M, + .trainerPic = TRAINER_PIC_COOLTRAINER_M, .trainerName = _("LEONEL"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -10740,9 +10740,9 @@ const struct Trainer gTrainers[] = { [TRAINER_CRISTIN_1] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -11594,9 +11594,9 @@ const struct Trainer gTrainers[] = { [TRAINER_CRISTIN_2] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -11608,9 +11608,9 @@ const struct Trainer gTrainers[] = { [TRAINER_CRISTIN_3] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -11622,9 +11622,9 @@ const struct Trainer gTrainers[] = { [TRAINER_CRISTIN_4] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -11636,9 +11636,9 @@ const struct Trainer gTrainers[] = { [TRAINER_CRISTIN_5] = { .partyFlags = 0, - .trainerClass = TRAINER_CLASS_COOLTRAINER_1, + .trainerClass = TRAINER_CLASS_COOLTRAINER, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL, - .trainerPic = TRAINER_PIC_COOL_TRAINER_F, + .trainerPic = TRAINER_PIC_COOLTRAINER_F, .trainerName = _("CRISTIN"), .items = {ITEM_HYPER_POTION, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, @@ -11946,7 +11946,7 @@ const struct Trainer gTrainers[] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_4, .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, - .trainerPic = TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, + .trainerPic = TRAINER_PIC_RS_BRENDAN, .trainerName = _("BRENDAN"), .items = {}, .doubleBattle = FALSE, @@ -11960,7 +11960,7 @@ const struct Trainer gTrainers[] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_4, .encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE, - .trainerPic = TRAINER_PIC_RUBY_SAPPHIRE_MAY, + .trainerPic = TRAINER_PIC_RS_MAY, .trainerName = _("MAY"), .items = {}, .doubleBattle = FALSE, diff --git a/src/data2b.c b/src/data2b.c index 3be2bdba7..bb1baa266 100644 --- a/src/data2b.c +++ b/src/data2b.c @@ -1,7 +1,8 @@ #include "global.h" #include "data2.h" #include "graphics.h" -#include "malloc.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"); diff --git a/src/daycare.c b/src/daycare.c index 2356b36f5..131540f6e 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -19,6 +19,7 @@ #include "task.h" #include "window.h" #include "list_menu.h" +#include "overworld.h" #define EGG_MOVES_ARRAY_COUNT 10 #define EGG_LVL_UP_MOVES_ARRAY_COUNT 50 @@ -39,12 +40,8 @@ extern const u8 gDaycareText_PlayOther[]; extern u8 GetCursorSelectionMonId(void); extern u16 ItemIdToBattleMoveId(u16); -extern s32 ListMenuHandleInputGetItemId(u8); -extern void DestroyListMenuTask(u8, u16*, u16*); extern void sub_819746C(u8, bool8); -extern void NewMenuHelpers_DrawStdWindowFrame(u8, bool8); extern void sub_81B9328(void); -extern void CB2_ReturnToField(void); // this file's functions static void ClearDaycareMonMail(struct DayCareMail *mail); @@ -535,7 +532,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv) s32 i, j; u8 temp[NUM_STATS]; - ivs[selectedIv] = 0xff; + ivs[selectedIv] = 0xFF; for (i = 0; i < NUM_STATS; i++) { temp[i] = ivs[i]; @@ -544,7 +541,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv) j = 0; for (i = 0; i < NUM_STATS; i++) { - if (temp[i] != 0xff) + if (temp[i] != 0xFF) ivs[j++] = temp[i]; } } @@ -684,7 +681,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j]) { - if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xffff) + if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF) DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]); break; } @@ -703,7 +700,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j)) { - if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xffff) + if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF) DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]); } } @@ -728,7 +725,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j]) { - if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xffff) + if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xFFFF) DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]); break; } diff --git a/src/decompress.c b/src/decompress.c index da1df436b..24d23209f 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -2,7 +2,7 @@ #include "decompress.h" #include "constants/species.h" #include "text.h" -#include "malloc.h" +#include "alloc.h" #include "pokemon.h" EWRAM_DATA ALIGNED(4) u8 gDecompressionBuffer[0x4000] = {0}; @@ -122,346 +122,346 @@ void sub_803471C() { 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, 0x24\n\ - mov r9, r0\n\ - str r1, [sp]\n\ - str r2, [sp, 0x4]\n\ - adds r5, r3, 0\n\ - movs r0, 0x1\n\ - mov r1, r9\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803473C\n\ - b _080348D4\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x24\n\ + mov r9, r0\n\ + str r1, [sp]\n\ + str r2, [sp, 0x4]\n\ + adds r5, r3, 0\n\ + movs r0, 0x1\n\ + mov r1, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803473C\n\ + b _080348D4\n\ _0803473C:\n\ - asrs r0, r1, 1\n\ - adds r0, 0x4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x8]\n\ - movs r0, 0\n\ - ldr r2, [sp]\n\ - cmp r0, r2\n\ - blt _08034750\n\ - b _08034964\n\ + asrs r0, r1, 1\n\ + adds r0, 0x4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x8]\n\ + movs r0, 0\n\ + ldr r2, [sp]\n\ + cmp r0, r2\n\ + blt _08034750\n\ + b _08034964\n\ _08034750:\n\ - movs r4, 0x8\n\ - subs r1, r4, r1\n\ - str r1, [sp, 0x10]\n\ + movs r4, 0x8\n\ + subs r1, r4, r1\n\ + str r1, [sp, 0x10]\n\ _08034756:\n\ - movs r7, 0\n\ - adds r0, 0x1\n\ - str r0, [sp, 0x14]\n\ - ldr r0, [sp, 0x10]\n\ - cmp r7, r0\n\ - bge _080347D2\n\ - ldr r1, [sp, 0x8]\n\ - lsls r1, 8\n\ - str r1, [sp, 0x18]\n\ - movs r2, 0\n\ - mov r10, r2\n\ - mov r0, r9\n\ - movs r4, 0x8\n\ - subs r0, r4, r0\n\ - str r0, [sp, 0xC]\n\ + movs r7, 0\n\ + adds r0, 0x1\n\ + str r0, [sp, 0x14]\n\ + ldr r0, [sp, 0x10]\n\ + cmp r7, r0\n\ + bge _080347D2\n\ + ldr r1, [sp, 0x8]\n\ + lsls r1, 8\n\ + str r1, [sp, 0x18]\n\ + movs r2, 0\n\ + mov r10, r2\n\ + mov r0, r9\n\ + movs r4, 0x8\n\ + subs r0, r4, r0\n\ + str r0, [sp, 0xC]\n\ _08034774:\n\ - movs r3, 0\n\ - asrs r0, r7, 1\n\ - adds r1, r7, 0\n\ - movs r2, 0x1\n\ - ands r1, r2\n\ - str r1, [sp, 0x20]\n\ - lsls r0, 8\n\ - mov r8, r0\n\ - mov r12, r5\n\ + movs r3, 0\n\ + asrs r0, r7, 1\n\ + adds r1, r7, 0\n\ + movs r2, 0x1\n\ + ands r1, r2\n\ + str r1, [sp, 0x20]\n\ + lsls r0, 8\n\ + mov r8, r0\n\ + mov r12, r5\n\ _08034786:\n\ - lsls r1, r3, 5\n\ - ldr r4, [sp, 0x18]\n\ - adds r0, r5, r4\n\ - adds r0, r1\n\ - mov r1, r8\n\ - adds r2, r0, r1\n\ - mov r1, r12\n\ - add r1, r8\n\ - movs r6, 0xF\n\ + lsls r1, r3, 5\n\ + ldr r4, [sp, 0x18]\n\ + adds r0, r5, r4\n\ + adds r0, r1\n\ + mov r1, r8\n\ + adds r2, r0, r1\n\ + mov r1, r12\n\ + add r1, r8\n\ + movs r6, 0xF\n\ _08034798:\n\ - ldr r4, [sp, 0x20]\n\ - cmp r4, 0\n\ - bne _080347A8\n\ - strb r4, [r1]\n\ - add r4, sp, 0x20\n\ - ldrb r4, [r4]\n\ - strb r4, [r2, 0x10]\n\ - b _080347B6\n\ + ldr r4, [sp, 0x20]\n\ + cmp r4, 0\n\ + bne _080347A8\n\ + strb r4, [r1]\n\ + add r4, sp, 0x20\n\ + ldrb r4, [r4]\n\ + strb r4, [r2, 0x10]\n\ + b _080347B6\n\ _080347A8:\n\ - mov r0, r10\n\ - strb r0, [r1, 0x10]\n\ - movs r4, 0x80\n\ - lsls r4, 1\n\ - adds r4, r2, r4\n\ - str r4, [sp, 0x1C]\n\ - strb r0, [r4]\n\ + mov r0, r10\n\ + strb r0, [r1, 0x10]\n\ + movs r4, 0x80\n\ + lsls r4, 1\n\ + adds r4, r2, r4\n\ + str r4, [sp, 0x1C]\n\ + strb r0, [r4]\n\ _080347B6:\n\ - adds r2, 0x1\n\ - adds r1, 0x1\n\ - subs r6, 0x1\n\ - cmp r6, 0\n\ - bge _08034798\n\ - movs r0, 0x20\n\ - add r12, r0\n\ - adds r3, 0x1\n\ - cmp r3, 0x7\n\ - ble _08034786\n\ - adds r7, 0x1\n\ - ldr r1, [sp, 0xC]\n\ - cmp r7, r1\n\ - blt _08034774\n\ + adds r2, 0x1\n\ + adds r1, 0x1\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _08034798\n\ + movs r0, 0x20\n\ + add r12, r0\n\ + adds r3, 0x1\n\ + cmp r3, 0x7\n\ + ble _08034786\n\ + adds r7, 0x1\n\ + ldr r1, [sp, 0xC]\n\ + cmp r7, r1\n\ + blt _08034774\n\ _080347D2:\n\ - movs r7, 0\n\ - movs r2, 0\n\ + movs r7, 0\n\ + movs r2, 0\n\ _080347D6:\n\ - movs r6, 0\n\ - adds r4, r7, 0x1\n\ - mov r8, r4\n\ - lsls r4, r7, 5\n\ + movs r6, 0\n\ + adds r4, r7, 0x1\n\ + mov r8, r4\n\ + lsls r4, r7, 5\n\ _080347DE:\n\ - adds r0, r6, 0x1\n\ - mov r10, r0\n\ - lsls r1, r6, 8\n\ - adds r0, r1, 0\n\ - adds r0, 0xC0\n\ - adds r0, r5, r0\n\ - adds r0, r4\n\ - adds r1, r5, r1\n\ - adds r1, r4\n\ - movs r3, 0x1F\n\ + adds r0, r6, 0x1\n\ + mov r10, r0\n\ + lsls r1, r6, 8\n\ + adds r0, r1, 0\n\ + adds r0, 0xC0\n\ + adds r0, r5, r0\n\ + adds r0, r4\n\ + adds r1, r5, r1\n\ + adds r1, r4\n\ + movs r3, 0x1F\n\ _080347F2:\n\ - strb r2, [r1]\n\ - strb r2, [r0]\n\ - adds r0, 0x1\n\ - adds r1, 0x1\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bge _080347F2\n\ - mov r6, r10\n\ - cmp r6, 0x7\n\ - ble _080347DE\n\ - mov r7, r8\n\ - cmp r7, 0x1\n\ - ble _080347D6\n\ - mov r1, r9\n\ - cmp r1, 0x5\n\ - bne _08034818\n\ - movs r2, 0x90\n\ - lsls r2, 1\n\ - adds r5, r2\n\ + strb r2, [r1]\n\ + strb r2, [r0]\n\ + adds r0, 0x1\n\ + adds r1, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _080347F2\n\ + mov r6, r10\n\ + cmp r6, 0x7\n\ + ble _080347DE\n\ + mov r7, r8\n\ + cmp r7, 0x1\n\ + ble _080347D6\n\ + mov r1, r9\n\ + cmp r1, 0x5\n\ + bne _08034818\n\ + movs r2, 0x90\n\ + lsls r2, 1\n\ + adds r5, r2\n\ _08034818:\n\ - movs r7, 0\n\ - cmp r7, r9\n\ - bge _080348AE\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _080348AE\n\ _0803481E:\n\ - movs r3, 0\n\ - adds r7, 0x1\n\ - mov r8, r7\n\ - cmp r3, r9\n\ - bge _0803488E\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + cmp r3, r9\n\ + bge _0803488E\n\ _08034828:\n\ - adds r3, 0x1\n\ - mov r10, r3\n\ - ldr r4, [sp, 0x4]\n\ - adds r4, 0x20\n\ - adds r7, r5, 0\n\ - adds r7, 0x20\n\ - movs r0, 0x12\n\ - adds r0, r5\n\ - mov r12, r0\n\ - ldr r2, [sp, 0x4]\n\ - adds r3, r5, 0\n\ - movs r6, 0x3\n\ + adds r3, 0x1\n\ + mov r10, r3\n\ + ldr r4, [sp, 0x4]\n\ + adds r4, 0x20\n\ + adds r7, r5, 0\n\ + adds r7, 0x20\n\ + movs r0, 0x12\n\ + adds r0, r5\n\ + mov r12, r0\n\ + ldr r2, [sp, 0x4]\n\ + adds r3, r5, 0\n\ + movs r6, 0x3\n\ _08034840:\n\ - ldrb r0, [r2]\n\ - mov r1, r12\n\ - strb r0, [r1]\n\ - ldrb r0, [r2, 0x1]\n\ - strb r0, [r1, 0x1]\n\ - ldrb r0, [r2, 0x2]\n\ - strb r0, [r1, 0x1E]\n\ - ldrb r0, [r2, 0x3]\n\ - strb r0, [r1, 0x1F]\n\ - movs r0, 0x81\n\ - lsls r0, 1\n\ - adds r1, r3, r0\n\ - ldrb r0, [r2, 0x10]\n\ - strb r0, [r1]\n\ - ldr r0, =0x00000103\n\ - adds r1, r3, r0\n\ - ldrb r0, [r2, 0x11]\n\ - strb r0, [r1]\n\ - movs r0, 0x90\n\ - lsls r0, 1\n\ - adds r1, r3, r0\n\ - ldrb r0, [r2, 0x12]\n\ - strb r0, [r1]\n\ - ldr r0, =0x00000121\n\ - adds r1, r3, r0\n\ - ldrb r0, [r2, 0x13]\n\ - strb r0, [r1]\n\ - movs r1, 0x4\n\ - add r12, r1\n\ - adds r2, 0x4\n\ - adds r3, 0x4\n\ - subs r6, 0x1\n\ - cmp r6, 0\n\ - bge _08034840\n\ - str r4, [sp, 0x4]\n\ - adds r5, r7, 0\n\ - mov r3, r10\n\ - cmp r3, r9\n\ - blt _08034828\n\ + ldrb r0, [r2]\n\ + mov r1, r12\n\ + strb r0, [r1]\n\ + ldrb r0, [r2, 0x1]\n\ + strb r0, [r1, 0x1]\n\ + ldrb r0, [r2, 0x2]\n\ + strb r0, [r1, 0x1E]\n\ + ldrb r0, [r2, 0x3]\n\ + strb r0, [r1, 0x1F]\n\ + movs r0, 0x81\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x10]\n\ + strb r0, [r1]\n\ + ldr r0, =0x00000103\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x11]\n\ + strb r0, [r1]\n\ + movs r0, 0x90\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x12]\n\ + strb r0, [r1]\n\ + ldr r0, =0x00000121\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x13]\n\ + strb r0, [r1]\n\ + movs r1, 0x4\n\ + add r12, r1\n\ + adds r2, 0x4\n\ + adds r3, 0x4\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _08034840\n\ + str r4, [sp, 0x4]\n\ + adds r5, r7, 0\n\ + mov r3, r10\n\ + cmp r3, r9\n\ + blt _08034828\n\ _0803488E:\n\ - mov r2, r9\n\ - cmp r2, 0x7\n\ - bne _080348A0\n\ - adds r5, 0x20\n\ - b _080348A8\n\ - .pool\n\ + mov r2, r9\n\ + cmp r2, 0x7\n\ + bne _080348A0\n\ + adds r5, 0x20\n\ + b _080348A8\n\ + .pool\n\ _080348A0:\n\ - mov r4, r9\n\ - cmp r4, 0x5\n\ - bne _080348A8\n\ - adds r5, 0x60\n\ + mov r4, r9\n\ + cmp r4, 0x5\n\ + bne _080348A8\n\ + adds r5, 0x60\n\ _080348A8:\n\ - mov r7, r8\n\ - cmp r7, r9\n\ - blt _0803481E\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _0803481E\n\ _080348AE:\n\ - mov r0, r9\n\ - cmp r0, 0x7\n\ - bne _080348BC\n\ - movs r1, 0x80\n\ - lsls r1, 1\n\ - adds r5, r1\n\ - b _080348C8\n\ + mov r0, r9\n\ + cmp r0, 0x7\n\ + bne _080348BC\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + adds r5, r1\n\ + b _080348C8\n\ _080348BC:\n\ - mov r2, r9\n\ - cmp r2, 0x5\n\ - bne _080348C8\n\ - movs r4, 0xF0\n\ - lsls r4, 1\n\ - adds r5, r4\n\ + mov r2, r9\n\ + cmp r2, 0x5\n\ + bne _080348C8\n\ + movs r4, 0xF0\n\ + lsls r4, 1\n\ + adds r5, r4\n\ _080348C8:\n\ - ldr r0, [sp, 0x14]\n\ - ldr r1, [sp]\n\ - cmp r0, r1\n\ - bge _080348D2\n\ - b _08034756\n\ + ldr r0, [sp, 0x14]\n\ + ldr r1, [sp]\n\ + cmp r0, r1\n\ + bge _080348D2\n\ + b _08034756\n\ _080348D2:\n\ - b _08034964\n\ + b _08034964\n\ _080348D4:\n\ - movs r6, 0\n\ - ldr r2, [sp]\n\ - cmp r6, r2\n\ - bge _08034964\n\ + movs r6, 0\n\ + ldr r2, [sp]\n\ + cmp r6, r2\n\ + bge _08034964\n\ _080348DC:\n\ - adds r6, 0x1\n\ - mov r10, r6\n\ - mov r4, r9\n\ - cmp r4, 0x6\n\ - bne _080348F4\n\ - movs r0, 0\n\ - movs r3, 0xFF\n\ + adds r6, 0x1\n\ + mov r10, r6\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _080348F4\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ _080348EA:\n\ - strb r0, [r5]\n\ - adds r5, 0x1\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bge _080348EA\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _080348EA\n\ _080348F4:\n\ - movs r7, 0\n\ - cmp r7, r9\n\ - bge _08034948\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _08034948\n\ _080348FA:\n\ - adds r7, 0x1\n\ - mov r8, r7\n\ - mov r1, r9\n\ - lsls r0, r1, 5\n\ - cmp r1, 0x6\n\ - bne _08034914\n\ - movs r1, 0\n\ - movs r3, 0x1F\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + mov r1, r9\n\ + lsls r0, r1, 5\n\ + cmp r1, 0x6\n\ + bne _08034914\n\ + movs r1, 0\n\ + movs r3, 0x1F\n\ _0803490A:\n\ - strb r1, [r5]\n\ - adds r5, 0x1\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bge _0803490A\n\ + strb r1, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0803490A\n\ _08034914:\n\ - adds r1, r0, 0\n\ - cmp r1, 0\n\ - ble _0803492E\n\ - adds r3, r1, 0\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + ble _0803492E\n\ + adds r3, r1, 0\n\ _0803491C:\n\ - ldr r2, [sp, 0x4]\n\ - ldrb r0, [r2]\n\ - strb r0, [r5]\n\ - adds r2, 0x1\n\ - str r2, [sp, 0x4]\n\ - adds r5, 0x1\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bne _0803491C\n\ + ldr r2, [sp, 0x4]\n\ + ldrb r0, [r2]\n\ + strb r0, [r5]\n\ + adds r2, 0x1\n\ + str r2, [sp, 0x4]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bne _0803491C\n\ _0803492E:\n\ - mov r4, r9\n\ - cmp r4, 0x6\n\ - bne _08034942\n\ - movs r0, 0\n\ - movs r3, 0x1F\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _08034942\n\ + movs r0, 0\n\ + movs r3, 0x1F\n\ _08034938:\n\ - strb r0, [r5]\n\ - adds r5, 0x1\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bge _08034938\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _08034938\n\ _08034942:\n\ - mov r7, r8\n\ - cmp r7, r9\n\ - blt _080348FA\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _080348FA\n\ _08034948:\n\ - mov r0, r9\n\ - cmp r0, 0x6\n\ - bne _0803495C\n\ - movs r0, 0\n\ - movs r3, 0xFF\n\ + mov r0, r9\n\ + cmp r0, 0x6\n\ + bne _0803495C\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ _08034952:\n\ - strb r0, [r5]\n\ - adds r5, 0x1\n\ - subs r3, 0x1\n\ - cmp r3, 0\n\ - bge _08034952\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _08034952\n\ _0803495C:\n\ - mov r6, r10\n\ - ldr r1, [sp]\n\ - cmp r6, r1\n\ - blt _080348DC\n\ + mov r6, r10\n\ + ldr r1, [sp]\n\ + cmp r6, r1\n\ + blt _080348DC\n\ _08034964:\n\ - add sp, 0x24\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\ + add sp, 0x24\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"); } u32 GetDecompressedDataSize(const u32 *ptr) { - const u8 *ptr8 = (const u8 *)ptr; + const u8 *ptr8 = (const u8 *)ptr; return (ptr8[3] << 16) | (ptr8[2] << 8) | (ptr8[1]); } diff --git a/src/decoration.c b/src/decoration.c index eb85b4f5c..dd691721a 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1,7 +1,7 @@ #include "global.h" #include "constants/decorations.h" #include "decompress.h" -#include "malloc.h" +#include "alloc.h" #include "text.h" #include "string_util.h" #include "international_string_util.h" @@ -16,7 +16,7 @@ #include "field_weather.h" #include "field_player_avatar.h" #include "field_camera.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "event_object_movement.h" #include "list_menu.h" #include "menu_helpers.h" @@ -312,7 +312,7 @@ const struct SpriteFrameImage sDecorSelectorSpriteFrameImages = { }; const struct SpriteTemplate sDecorSelectorSpriteTemplate = { - 0xffff, + 0xFFFF, OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG, &sDecorSelectorOam, sDecorSelectorAnims, diff --git a/src/dewford_trend.c b/src/dewford_trend.c index 3050ebecf..cad5ef9c2 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -3,7 +3,7 @@ #include "easy_chat.h" #include "event_data.h" #include "link.h" -#include "malloc.h" +#include "alloc.h" #include "random.h" #include "text.h" #include "tv.h" diff --git a/src/diploma.c b/src/diploma.c index f8556eb7d..b3d5a48fa 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -5,7 +5,7 @@ #include "gpu_regs.h" #include "scanline_effect.h" #include "task.h" -#include "malloc.h" +#include "alloc.h" #include "decompress.h" #include "bg.h" #include "window.h" diff --git a/src/easy_chat.c b/src/easy_chat.c index e4233fb7f..c4bc02e42 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1,7 +1,7 @@ // Includes #include "global.h" -#include "malloc.h" +#include "alloc.h" #include "constants/songs.h" #include "sound.h" #include "overworld.h" @@ -51,6 +51,9 @@ EWRAM_DATA struct u16 ecWordBuffer[9]; } *gUnknown_0203A118 = NULL; +EWRAM_DATA void *gUnknown_0203A11C = 0; +EWRAM_DATA void *gUnknown_0203A120 = 0; + // Static ROM declarations static void sub_811A2C0(u8); diff --git a/src/effects_1.c b/src/effects_1.c deleted file mode 100644 index a8687bc38..000000000 --- a/src/effects_1.c +++ /dev/null @@ -1,2093 +0,0 @@ -#include "global.h" -#include "battle_anim.h" -#include "constants/rgb.h" - -extern void sub_80FE840(struct Sprite *); -extern void sub_80FE8E0(struct Sprite *); -extern void sub_80FE930(struct Sprite *); -extern void sub_80FE988(struct Sprite *); -extern void sub_80FEAD8(struct Sprite *); -extern void sub_80FEB44(struct Sprite *); -extern void sub_80FEC48(struct Sprite *); -extern void sub_80FED28(struct Sprite *); -extern void sub_80FEE78(struct Sprite *); -extern void sub_80FEF44(struct Sprite *); -extern void sub_80FEFFC(struct Sprite *); -extern void AnimMoveTwisterParticle(struct Sprite *); -extern void sub_80FF0F4(struct Sprite *); -extern void sub_80FF374(struct Sprite *); -extern void sub_80FF698(struct Sprite *); -extern void sub_80FF768(struct Sprite *); -extern void sub_80FF7EC(struct Sprite *); -extern void sub_80FF934(struct Sprite *); -extern void sub_80FFB18(struct Sprite *); -extern void sub_80FFBF4(struct Sprite *); -extern void sub_80FFC70(struct Sprite *); -extern void sub_80FFCB4(struct Sprite *); -extern void sub_80FFDBC(struct Sprite *); -extern void sub_8100640(struct Sprite *); -extern void sub_8100898(struct Sprite *); -extern void sub_8100A50(struct Sprite *); -extern void sub_81009F8(struct Sprite *); -extern void sub_8100A94(struct Sprite *); -extern void sub_8100AE0(struct Sprite *); -extern void sub_8100B88(struct Sprite *); -extern void sub_8100E1C(struct Sprite *); -extern void sub_8100EF0(struct Sprite *); -extern void sub_81010CC(struct Sprite *); -extern void sub_810130C(struct Sprite *); -extern void sub_810135C(struct Sprite *); -extern void sub_8101440(struct Sprite *); -extern void sub_81014F4(struct Sprite *); -extern void sub_81015AC(struct Sprite *); -extern void sub_8101898(struct Sprite *); -extern void sub_8101940(struct Sprite *); -extern void sub_8101B90(struct Sprite *); -extern void sub_8101F40(struct Sprite *); -extern void sub_8101FA8(struct Sprite *); -extern void sub_8101FF0(struct Sprite *); -extern void sub_81020D8(struct Sprite *); -extern void sub_810217C(struct Sprite *); -extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); -extern void sub_80A77C8(struct Sprite *); -extern void sub_8102268(struct Sprite *); -extern void sub_810234C(struct Sprite *); -extern void sub_81024E0(struct Sprite *); -extern void sub_8102540(struct Sprite *); -extern void sub_80A77C8(struct Sprite *); -extern void sub_8102844(struct Sprite *); -extern void sub_8102BCC(struct Sprite *); -extern void sub_8102CD4(struct Sprite *); -extern void sub_8102EB0(struct Sprite *); -extern void sub_8102FB8(struct Sprite *); -extern void sub_8103028(struct Sprite *); -extern void sub_8103164(struct Sprite *); -extern void sub_8103208(struct Sprite *); -extern void sub_8103284(struct Sprite *); -extern void sub_8103390(struct Sprite *); - -const union AnimCmd gUnknown_085920F0[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(2, 5), - ANIMCMD_FRAME(4, 5), - ANIMCMD_FRAME(6, 5), - ANIMCMD_FRAME(8, 5), - ANIMCMD_FRAME(10, 5), - ANIMCMD_FRAME(12, 5), - ANIMCMD_FRAME(14, 5), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd *const gUnknown_08592114[] = -{ - gUnknown_085920F0, -}; - -const struct SpriteTemplate gSleepPowderParticleSpriteTemplate = -{ - .tileTag = ANIM_TAG_SLEEP_POWDER, - .paletteTag = ANIM_TAG_SLEEP_POWDER, - .oam = &gUnknown_08524944, - .anims = gUnknown_08592114, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FE840, -}; - -const struct SpriteTemplate gStunSporeParticleSpriteTemplate = -{ - .tileTag = ANIM_TAG_STUN_SPORE, - .paletteTag = ANIM_TAG_STUN_SPORE, - .oam = &gUnknown_08524944, - .anims = gUnknown_08592114, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FE840, -}; - -const struct SpriteTemplate gPoisonPowderParticleSpriteTemplate = -{ - .tileTag = ANIM_TAG_POISON_POWDER, - .paletteTag = ANIM_TAG_POISON_POWDER, - .oam = &gUnknown_08524944, - .anims = gUnknown_08592114, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FE840, -}; - -const union AnimCmd gUnknown_08592160[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592168[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592170[] = -{ - ANIMCMD_FRAME(2, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592178[] = -{ - ANIMCMD_FRAME(3, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592180[] = -{ - ANIMCMD_FRAME(4, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592188[] = -{ - ANIMCMD_FRAME(5, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592190[] = -{ - ANIMCMD_FRAME(6, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592198[] = -{ - ANIMCMD_FRAME(7, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085921A0[] = -{ - ANIMCMD_FRAME(8, 1), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_085921A8[] = -{ - gUnknown_08592160, - gUnknown_08592168, - gUnknown_08592170, - gUnknown_08592178, - gUnknown_08592180, - gUnknown_08592188, - gUnknown_08592190, -}; - -const union AnimCmd *const gUnknown_085921C4[] = -{ - gUnknown_08592198, -}; - -const union AnimCmd *const gUnknown_085921C8[] = -{ - gUnknown_085921A0, -}; - -const union AffineAnimCmd gUnknown_085921CC[] = { - AFFINEANIMCMD_FRAME(-5, -5, 0, 1), - AFFINEANIMCMD_JUMP(0), -}; - -const union AffineAnimCmd *const gUnknown_085921DC[] = { - gUnknown_085921CC, -}; - -const struct SpriteTemplate gUnknown_085921E0 = -{ - .tileTag = ANIM_TAG_ORBS, - .paletteTag = ANIM_TAG_ORBS, - .oam = &gUnknown_08524A8C, - .anims = gUnknown_085921C8, - .images = NULL, - .affineAnims = gUnknown_085921DC, - .callback = sub_80FE8E0, -}; - -const struct SpriteTemplate gUnknown_085921F8 = -{ - .tileTag = ANIM_TAG_ORBS, - .paletteTag = ANIM_TAG_ORBS, - .oam = &gUnknown_08524904, - .anims = gUnknown_085921A8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FE930, -}; - -const struct SpriteTemplate gUnknown_08592210 = -{ - .tileTag = ANIM_TAG_ORBS, - .paletteTag = ANIM_TAG_ORBS, - .oam = &gUnknown_08524904, - .anims = gUnknown_085921C4, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FE988, -}; - -const union AffineAnimCmd gUnknown_08592228[] = { - AFFINEANIMCMD_FRAME(320, 320, 0, 0), - AFFINEANIMCMD_FRAME(-14, -14, 0, 1), - AFFINEANIMCMD_JUMP(1), -}; - -const union AffineAnimCmd *const gUnknown_08592240[] = { - gUnknown_08592228, -}; - -const struct SpriteTemplate gUnknown_08592244 = -{ - .tileTag = ANIM_TAG_GRAY_ORB, - .paletteTag = ANIM_TAG_GRAY_ORB, - .oam = &gUnknown_085249C4, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_08592240, - .callback = sub_80FE8E0, -}; - -const union AffineAnimCmd gUnknown_0859225C[] = { - AFFINEANIMCMD_FRAME(-5, -5, 0, 1), - AFFINEANIMCMD_JUMP(0), -}; - -const union AffineAnimCmd *const gUnknown_0859226C[] = { - gUnknown_0859225C, -}; - -const struct SpriteTemplate gUnknown_08592270 = -{ - .tileTag = ANIM_TAG_ORBS, - .paletteTag = ANIM_TAG_ORBS, - .oam = &gUnknown_08524A8C, - .anims = gUnknown_085921C8, - .images = NULL, - .affineAnims = gUnknown_0859226C, - .callback = sub_80FEAD8, -}; - -const struct SpriteTemplate gUnknown_08592288 = -{ - .tileTag = ANIM_TAG_ORBS, - .paletteTag = ANIM_TAG_ORBS, - .oam = &gUnknown_08524904, - .anims = gUnknown_085921A8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FEB44, -}; - -const union AnimCmd gUnknown_085922A0[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085922A8[] = -{ - ANIMCMD_FRAME(4, 7), - ANIMCMD_FRAME(8, 7), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd *const gUnknown_085922B4[] = -{ - gUnknown_085922A0, - gUnknown_085922A8, -}; - -const struct SpriteTemplate gLeechSeedSpriteTemplate = -{ - .tileTag = ANIM_TAG_SEED, - .paletteTag = ANIM_TAG_SEED, - .oam = &gUnknown_0852490C, - .anims = gUnknown_085922B4, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FEC48, -}; - -const union AnimCmd gUnknown_085922D4[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085922DC[] = -{ - ANIMCMD_FRAME(4, 7), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_085922E4[] = -{ - gUnknown_085922D4, - gUnknown_085922DC, -}; - -const struct SpriteTemplate gUnknown_085922EC = -{ - .tileTag = ANIM_TAG_SPORE, - .paletteTag = ANIM_TAG_SPORE, - .oam = &gUnknown_0852490C, - .anims = gUnknown_085922E4, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FED28, -}; - -const union AnimCmd gUnknown_08592304[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_0859230C[] = -{ - ANIMCMD_FRAME(4, 1), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592314[] = -{ - gUnknown_08592304, -}; - -const union AnimCmd *const gUnknown_08592318[] = -{ - gUnknown_0859230C, -}; - -const struct SpriteTemplate gUnknown_0859231C = -{ - .tileTag = ANIM_TAG_FLOWER, - .paletteTag = ANIM_TAG_FLOWER, - .oam = &gUnknown_0852490C, - .anims = gUnknown_08592314, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FEE78, -}; - -const struct SpriteTemplate gUnknown_08592334 = -{ - .tileTag = ANIM_TAG_FLOWER, - .paletteTag = ANIM_TAG_FLOWER, - .oam = &gUnknown_08524904, - .anims = gUnknown_08592318, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FEF44, -}; - -const union AnimCmd gUnknown_0859234C[] = -{ - 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(16, 5), - ANIMCMD_FRAME(12, 5), - ANIMCMD_FRAME(8, 5), - ANIMCMD_FRAME(4, 5), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd gUnknown_08592378[] = -{ - ANIMCMD_FRAME(24, 5), - ANIMCMD_FRAME(28, 5), - ANIMCMD_FRAME(32, 5), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592388[] = -{ - gUnknown_0859234C, - gUnknown_08592378, -}; - -const struct SpriteTemplate gUnknown_08592390 = -{ - .tileTag = ANIM_TAG_LEAF, - .paletteTag = ANIM_TAG_LEAF, - .oam = &gUnknown_0852490C, - .anims = gUnknown_08592388, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FEFFC, -}; - -const struct SpriteTemplate gUnknown_085923A8 = -{ - .tileTag = ANIM_TAG_LEAF, - .paletteTag = ANIM_TAG_LEAF, - .oam = &gUnknown_0852490C, - .anims = gUnknown_08592388, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimMoveTwisterParticle, -}; - -const union AnimCmd gUnknown_085923C0[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(0, 3, .hFlip = TRUE), - ANIMCMD_FRAME(0, 3, .vFlip = TRUE, .hFlip = TRUE), - ANIMCMD_FRAME(0, 3, .vFlip = TRUE), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd *const gUnknown_085923D4[] = -{ - gUnknown_085923C0, -}; - -const struct SpriteTemplate gUnknown_085923D8 = -{ - .tileTag = ANIM_TAG_RAZOR_LEAF, - .paletteTag = ANIM_TAG_RAZOR_LEAF, - .oam = &gUnknown_08524934, - .anims = gUnknown_085923D4, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FF0F4, -}; - -const union AffineAnimCmd gUnknown_085923F0[] = { - AFFINEANIMCMD_FRAME(0, 0, 0, 1), - AFFINEANIMCMD_JUMP(0), -}; - -const union AffineAnimCmd *const gUnknown_08592400[] = { - gUnknown_085923F0, -}; - -const struct SpriteTemplate gSwiftStarSpriteTemplate = -{ - .tileTag = ANIM_TAG_YELLOW_STAR, - .paletteTag = ANIM_TAG_YELLOW_STAR, - .oam = &gUnknown_08524974, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_08592400, - .callback = sub_80FF0F4, -}; - -const union AnimCmd gUnknown_0859241C[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(32, 4), - ANIMCMD_FRAME(64, 4), - ANIMCMD_FRAME(96, 4), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592430[] = -{ - ANIMCMD_FRAME(0, 4, .hFlip = TRUE), - ANIMCMD_FRAME(32, 4, .hFlip = TRUE), - ANIMCMD_FRAME(64, 4, .hFlip = TRUE), - ANIMCMD_FRAME(96, 4, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592444[] = -{ - gUnknown_0859241C, - gUnknown_08592430, -}; - -const union AffineAnimCmd gUnknown_0859244C[] = { - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_FRAME(-11, 0, 0, 6), - AFFINEANIMCMD_FRAME(11, 0, 0, 6), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_0859246C[] = { - AFFINEANIMCMD_FRAME(-256, 256, 0, 0), - AFFINEANIMCMD_FRAME(11, 0, 0, 6), - AFFINEANIMCMD_FRAME(-11, 0, 0, 6), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd *const gUnknown_0859248C[] = { - gUnknown_0859244C, - gUnknown_0859246C, -}; - -const struct SpriteTemplate gUnknown_08592494 = -{ - .tileTag = ANIM_TAG_TENDRILS, - .paletteTag = ANIM_TAG_TENDRILS, - .oam = &gUnknown_0852499C, - .anims = gUnknown_08592444, - .images = NULL, - .affineAnims = gUnknown_0859248C, - .callback = sub_80FF374, -}; - -const union AffineAnimCmd gUnknown_085924AC[] = { - AFFINEANIMCMD_FRAME(0, 0, 0, 0), - AFFINEANIMCMD_FRAME(48, 48, 0, 14), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_085924C4[] = { - AFFINEANIMCMD_FRAME(-16, -16, 0, 1), - AFFINEANIMCMD_JUMP(0), -}; - -const union AffineAnimCmd *const gUnknown_085924D4[] = { - gUnknown_085924AC, - gUnknown_085924C4, -}; - -const struct SpriteTemplate gUnknown_085924DC = -{ - .tileTag = ANIM_TAG_ORBS, - .paletteTag = ANIM_TAG_ORBS, - .oam = &gUnknown_085249CC, - .anims = gUnknown_085921C8, - .images = NULL, - .affineAnims = gUnknown_085924D4, - .callback = sub_80FF698, -}; - -const union AnimCmd gUnknown_085924F4[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(16, 7), - ANIMCMD_FRAME(32, 7), - ANIMCMD_FRAME(48, 7), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592508[] = -{ - ANIMCMD_FRAME(0, 7, .hFlip = TRUE), - ANIMCMD_FRAME(16, 7, .hFlip = TRUE), - ANIMCMD_FRAME(32, 7, .hFlip = TRUE), - ANIMCMD_FRAME(48, 7, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_0859251C[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(16, 7), - ANIMCMD_FRAME(32, 7), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_0859252C[] = -{ - ANIMCMD_FRAME(0, 7, .hFlip = TRUE), - ANIMCMD_FRAME(16, 7, .hFlip = TRUE), - ANIMCMD_FRAME(32, 7, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_0859253C[] = -{ - gUnknown_085924F4, - gUnknown_08592508, - gUnknown_0859251C, - gUnknown_0859252C, -}; - -const struct SpriteTemplate gUnknown_0859254C = -{ - .tileTag = ANIM_TAG_ROOTS, - .paletteTag = ANIM_TAG_ROOTS, - .oam = &gUnknown_08524914, - .anims = gUnknown_0859253C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FF768, -}; - -const struct SpriteTemplate gUnknown_08592564 = -{ - .tileTag = ANIM_TAG_ROOTS, - .paletteTag = ANIM_TAG_ROOTS, - .oam = &gUnknown_08524914, - .anims = gUnknown_0859253C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FF7EC, -}; - -const union AnimCmd gUnknown_0859257C[] = -{ - ANIMCMD_FRAME(3, 3), - ANIMCMD_FRAME(0, 5), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd *const gUnknown_08592588[] = -{ - gUnknown_0859257C, -}; - -const struct SpriteTemplate gUnknown_0859258C = -{ - .tileTag = ANIM_TAG_ORBS, - .paletteTag = ANIM_TAG_ORBS, - .oam = &gUnknown_08524904, - .anims = gUnknown_08592588, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FF934, -}; - -const union AnimCmd gUnknown_085925A4[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_085925AC[] = -{ - gUnknown_085925A4, -}; - -const union AffineAnimCmd gUnknown_085925B0[] = { - AFFINEANIMCMD_FRAME(0, 0, -4, 10), - AFFINEANIMCMD_FRAME(0, 0, 4, 20), - AFFINEANIMCMD_FRAME(0, 0, -4, 10), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_085925D0[] = { - AFFINEANIMCMD_FRAME(0, 0, -1, 2), - AFFINEANIMCMD_FRAME(0, 0, 1, 4), - AFFINEANIMCMD_FRAME(0, 0, -1, 4), - AFFINEANIMCMD_FRAME(0, 0, 1, 4), - AFFINEANIMCMD_FRAME(0, 0, -1, 4), - AFFINEANIMCMD_FRAME(0, 0, 1, 2), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd *const gUnknown_08592608[] = { - gUnknown_085925B0, - gUnknown_085925D0, -}; - -const struct SpriteTemplate gUnknown_08592610 = -{ - .tileTag = ANIM_TAG_ITEM_BAG, - .paletteTag = ANIM_TAG_ITEM_BAG, - .oam = &gUnknown_08524974, - .anims = gUnknown_085925AC, - .images = NULL, - .affineAnims = gUnknown_08592608, - .callback = sub_80FFB18, -}; - -const struct SpriteTemplate gBattleAnimSpriteTemplate_8592628 = -{ - .tileTag = ANIM_TAG_ITEM_BAG, - .paletteTag = ANIM_TAG_ITEM_BAG, - .oam = &gUnknown_08524974, - .anims = gUnknown_085925AC, - .images = NULL, - .affineAnims = gUnknown_08592608, - .callback = sub_80FFBF4, -}; - -const union AnimCmd gUnknown_08592640[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(8, 4), - ANIMCMD_FRAME(12, 4), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592654[] = -{ - gUnknown_08592640, -}; - -const struct SpriteTemplate gUnknown_08592658 = -{ - .tileTag = ANIM_TAG_GREEN_SPARKLE, - .paletteTag = ANIM_TAG_GREEN_SPARKLE, - .oam = &gUnknown_0852490C, - .anims = gUnknown_08592654, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80FFC70, -}; - -const struct SpriteTemplate gUnknown_08592670 = -{ - .tileTag = ANIM_TAG_ITEM_BAG, - .paletteTag = ANIM_TAG_ITEM_BAG, - .oam = &gUnknown_08524974, - .anims = gUnknown_085925AC, - .images = NULL, - .affineAnims = gUnknown_08592608, - .callback = sub_80FFCB4, -}; - -const union AffineAnimCmd gUnknown_08592688[] = { - AFFINEANIMCMD_FRAME(0, 0, 0, 3), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_08592698[] = { - AFFINEANIMCMD_FRAME(0, -10, 0, 3), - AFFINEANIMCMD_FRAME(0, -6, 0, 3), - AFFINEANIMCMD_FRAME(0, -2, 0, 3), - AFFINEANIMCMD_FRAME(0, 0, 0, 3), - AFFINEANIMCMD_FRAME(0, 2, 0, 3), - AFFINEANIMCMD_FRAME(0, 6, 0, 3), - AFFINEANIMCMD_FRAME(0, 10, 0, 3), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd *const gUnknown_085926D8[] = { - gUnknown_08592688, - gUnknown_08592698, - gUnknown_085925B0, - gUnknown_085925D0, -}; - -const struct SpriteTemplate gUnknown_085926E8 = -{ - .tileTag = ANIM_TAG_ITEM_BAG, - .paletteTag = ANIM_TAG_ITEM_BAG, - .oam = &gUnknown_08524974, - .anims = gUnknown_085925AC, - .images = NULL, - .affineAnims = gUnknown_085926D8, - .callback = sub_80FFDBC, -}; - -const s8 gUnknown_08592700[][3] = -{ - {5, 24, 1}, - {0, 4, 0}, - {8, 16, -1}, - {0, 2, 0}, - {8, 16, 1}, - {0, 2, 0}, - {8, 16, 1}, - {0, 2, 0}, - {8, 16, 1}, - {0, 16, 0}, - {0, 0, 127}, -}; - -const union AnimCmd gUnknown_08592724[] = -{ - ANIMCMD_FRAME(28, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_0859272C[] = -{ - ANIMCMD_FRAME(32, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592734[] = -{ - ANIMCMD_FRAME(20, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_0859273C[] = -{ - ANIMCMD_FRAME(28, 1, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592744[] = -{ - ANIMCMD_FRAME(16, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_0859274C[] = -{ - ANIMCMD_FRAME(16, 1, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592754[] = -{ - ANIMCMD_FRAME(28, 1), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_0859275C[] = -{ - gUnknown_08592724, - gUnknown_0859272C, - gUnknown_08592734, - gUnknown_0859273C, - gUnknown_08592744, - gUnknown_0859274C, - gUnknown_08592754, -}; - -const struct SpriteTemplate gUnknown_08592778 = -{ - .tileTag = ANIM_TAG_LEAF, - .paletteTag = ANIM_TAG_LEAF, - .oam = &gUnknown_0852490C, - .anims = gUnknown_0859275C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, -}; - -const union AffineAnimCmd gUnknown_08592790[] = { - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_FRAME(0, 0, 4, 1), - AFFINEANIMCMD_JUMP(1), -}; - -const union AffineAnimCmd *const gUnknown_085927A8[] = { - gUnknown_08592790, -}; - -const struct SpriteTemplate gUnknown_085927AC = -{ - .tileTag = ANIM_TAG_FLOWER, - .paletteTag = ANIM_TAG_FLOWER, - .oam = &gUnknown_08524904, - .anims = gUnknown_08592318, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100640, -}; - -const struct SpriteTemplate gUnknown_085927C4 = -{ - .tileTag = ANIM_TAG_FLOWER, - .paletteTag = ANIM_TAG_FLOWER, - .oam = &gUnknown_0852496C, - .anims = gUnknown_08592314, - .images = NULL, - .affineAnims = gUnknown_085927A8, - .callback = sub_8100640, -}; - -const union AffineAnimCmd gUnknown_085927DC[] = { - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_FRAME(0, 0, -10, 1), - AFFINEANIMCMD_JUMP(1), -}; - -const union AffineAnimCmd gUnknown_085927F4[] = { - AFFINEANIMCMD_FRAME(192, 192, 0, 0), - AFFINEANIMCMD_FRAME(0, 0, -12, 1), - AFFINEANIMCMD_JUMP(1), -}; - -const union AffineAnimCmd gUnknown_0859280C[] = { - AFFINEANIMCMD_FRAME(143, 143, 0, 0), - AFFINEANIMCMD_FRAME(0, 0, -15, 1), - AFFINEANIMCMD_JUMP(1), -}; - -const union AffineAnimCmd *const gUnknown_08592824[] = { - gUnknown_085927DC, -}; - -const union AffineAnimCmd *const gUnknown_08592828[] = { - gUnknown_085927F4, -}; - -const union AffineAnimCmd *const gUnknown_0859282C[] = { - gUnknown_0859280C, -}; - -const struct SpriteTemplate gUnknown_08592830 = -{ - .tileTag = ANIM_TAG_SPARKLE_6, - .paletteTag = ANIM_TAG_SPARKLE_6, - .oam = &gUnknown_0852496C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_08592824, - .callback = sub_8100640, -}; - -const struct SpriteTemplate gUnknown_08592848 = -{ - .tileTag = ANIM_TAG_SPARKLE_6, - .paletteTag = ANIM_TAG_SPARKLE_6, - .oam = &gUnknown_0852496C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_08592828, - .callback = sub_8100640, -}; - -const struct SpriteTemplate gUnknown_08592860 = -{ - .tileTag = ANIM_TAG_SPARKLE_6, - .paletteTag = ANIM_TAG_SPARKLE_6, - .oam = &gUnknown_0852496C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_0859282C, - .callback = sub_8100640, -}; - -// sMagicalLeafBlendColors -const u16 gUnknown_08592878[] = -{ - RGB(31, 0, 0), - RGB(31, 19, 0), - RGB(31, 31, 0), - RGB(0, 31, 0), - RGB(5, 14, 31), - RGB(22, 10, 31), - RGB(22, 21, 31), -}; - -const struct SpriteTemplate gUnknown_08592888 = -{ - .tileTag = ANIM_TAG_GREEN_SPIKE, - .paletteTag = ANIM_TAG_GREEN_SPIKE, - .oam = &gUnknown_0852496C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100898, -}; - -const union AnimCmd gUnknown_085928A0[] = -{ - ANIMCMD_FRAME(64, 3), - ANIMCMD_FRAME(80, 3), - ANIMCMD_FRAME(96, 3), - ANIMCMD_FRAME(112, 6), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085928B4[] = -{ - ANIMCMD_FRAME(64, 3, .hFlip = TRUE), - ANIMCMD_FRAME(80, 3, .hFlip = TRUE), - ANIMCMD_FRAME(96, 3, .hFlip = TRUE), - ANIMCMD_FRAME(112, 6, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_085928C8[] = -{ - gUnknown_085928A0, - gUnknown_085928B4, -}; - -const struct SpriteTemplate gUnknown_085928D0 = -{ - .tileTag = ANIM_TAG_SLAM_HIT, - .paletteTag = ANIM_TAG_SLAM_HIT, - .oam = &gUnknown_08524914, - .anims = gUnknown_085928C8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100A50, -}; - -const struct SpriteTemplate gUnknown_085928E8 = -{ - .tileTag = ANIM_TAG_WHIP_HIT, - .paletteTag = ANIM_TAG_WHIP_HIT, - .oam = &gUnknown_08524914, - .anims = gUnknown_085928C8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100A50, -}; - -const union AnimCmd gUnknown_08592900[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(16, 4), - ANIMCMD_FRAME(32, 4), - ANIMCMD_FRAME(48, 4), - ANIMCMD_FRAME(64, 5), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592918[] = -{ - gUnknown_08592900, -}; - -const struct SpriteTemplate gUnknown_0859291C = -{ - .tileTag = ANIM_TAG_UNUSED_HIT, - .paletteTag = ANIM_TAG_UNUSED_HIT, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592918, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81009F8, -}; - -const struct SpriteTemplate gUnknown_08592934 = -{ - .tileTag = ANIM_TAG_UNUSED_HIT_2, - .paletteTag = ANIM_TAG_UNUSED_HIT_2, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592918, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81009F8, -}; - -const union AffineAnimCmd gUnknown_0859294C[] = { - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_0859295C[] = { - AFFINEANIMCMD_FRAME(256, 256, 32, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_0859296C[] = { - AFFINEANIMCMD_FRAME(256, 256, 64, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_0859297C[] = { - AFFINEANIMCMD_FRAME(256, 256, 96, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_0859298C[] = { - AFFINEANIMCMD_FRAME(256, 256, -128, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_0859299C[] = { - AFFINEANIMCMD_FRAME(256, 256, -96, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_085929AC[] = { - AFFINEANIMCMD_FRAME(256, 256, -64, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_085929BC[] = { - AFFINEANIMCMD_FRAME(256, 256, -32, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd *const gUnknown_085929CC[] = { - gUnknown_0859294C, - gUnknown_0859295C, - gUnknown_0859296C, - gUnknown_0859297C, - gUnknown_0859298C, - gUnknown_0859299C, - gUnknown_085929AC, - gUnknown_085929BC, -}; - -const struct SpriteTemplate gUnknown_085929EC = -{ - .tileTag = ANIM_TAG_HANDS_AND_FEET, - .paletteTag = ANIM_TAG_HANDS_AND_FEET, - .oam = &gUnknown_08524974, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_085929CC, - .callback = sub_8100A94, -}; - -const union AnimCmd gUnknown_08592A04[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(16, 5), - ANIMCMD_FRAME(32, 5), - ANIMCMD_FRAME(48, 5), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592A18[] = -{ - gUnknown_08592A04, -}; - -const struct SpriteTemplate gCuttingSliceSpriteTemplate = -{ - .tileTag = ANIM_TAG_CUT, - .paletteTag = ANIM_TAG_CUT, - .oam = &gUnknown_08524A34, - .anims = gUnknown_08592A18, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100AE0, -}; - -const struct SpriteTemplate gUnknown_08592A34 = -{ - .tileTag = ANIM_TAG_CUT, - .paletteTag = ANIM_TAG_CUT, - .oam = &gUnknown_08524A34, - .anims = gUnknown_08592A18, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100B88, -}; - -const union AnimCmd gUnknown_08592A4C[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A54[] = -{ - ANIMCMD_FRAME(4, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A5C[] = -{ - ANIMCMD_FRAME(8, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A64[] = -{ - ANIMCMD_FRAME(12, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A6C[] = -{ - ANIMCMD_FRAME(16, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A74[] = -{ - ANIMCMD_FRAME(20, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A7C[] = -{ - ANIMCMD_FRAME(0, 1, .vFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A84[] = -{ - ANIMCMD_FRAME(4, 1, .vFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A8C[] = -{ - ANIMCMD_FRAME(8, 1, .vFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592A94[] = -{ - ANIMCMD_FRAME(12, 1, .vFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592A9C[] = -{ - gUnknown_08592A4C, - gUnknown_08592A54, - gUnknown_08592A5C, - gUnknown_08592A64, - gUnknown_08592A6C, - gUnknown_08592A74, - gUnknown_08592A7C, - gUnknown_08592A84, - gUnknown_08592A8C, - gUnknown_08592A94, -}; - -const struct SpriteTemplate gUnknown_08592AC4 = -{ - .tileTag = ANIM_TAG_MUSIC_NOTES, - .paletteTag = ANIM_TAG_MUSIC_NOTES, - .oam = &gUnknown_0852490C, - .anims = gUnknown_08592A9C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100E1C, -}; - -const struct SpriteTemplate gUnknown_08592ADC = -{ - .tileTag = ANIM_TAG_PROTECT, - .paletteTag = ANIM_TAG_PROTECT, - .oam = &gUnknown_08524A3C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8100EF0, -}; - -const union AffineAnimCmd gUnknown_08592AF4[] = -{ - AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_08592B04[] = -{ - AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 12), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 6), - AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 24), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 6), - AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 12), - AFFINEANIMCMD_JUMP(0), -}; - -const union AffineAnimCmd *const gUnknown_08592B34[] = -{ - gUnknown_08592AF4, - gUnknown_08592B04, -}; - -const struct SpriteTemplate gUnknown_08592B3C = -{ - .tileTag = ANIM_TAG_MILK_BOTTLE, - .paletteTag = ANIM_TAG_MILK_BOTTLE, - .oam = &gUnknown_08524A94, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_08592B34, - .callback = sub_81010CC, -}; - -const union AnimCmd gUnknown_08592B54[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(16, 7), - ANIMCMD_FRAME(32, 7), - ANIMCMD_FRAME(48, 7), - ANIMCMD_FRAME(64, 7), - ANIMCMD_FRAME(80, 7), - ANIMCMD_FRAME(96, 7), - ANIMCMD_FRAME(112, 7), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd *const gUnknown_08592B78[] = -{ - gUnknown_08592B54, -}; - -const struct SpriteTemplate gUnknown_08592B7C = -{ - .tileTag = ANIM_TAG_SPARKLE_2, - .paletteTag = ANIM_TAG_SPARKLE_2, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592B78, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810130C, -}; - -const struct SpriteTemplate gUnknown_08592B94 = -{ - .tileTag = ANIM_TAG_SPARKLE_2, - .paletteTag = ANIM_TAG_SPARKLE_2, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592B78, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810135C, -}; - -const union AnimCmd gUnknown_08592BAC[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(4, 10), - ANIMCMD_FRAME(8, 10), - ANIMCMD_FRAME(12, 10), - ANIMCMD_FRAME(16, 26), - ANIMCMD_FRAME(16, 5), - ANIMCMD_FRAME(20, 5), - ANIMCMD_FRAME(24, 15), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592BD0[] = -{ - ANIMCMD_FRAME(0, 10, .hFlip = TRUE), - ANIMCMD_FRAME(4, 10, .hFlip = TRUE), - ANIMCMD_FRAME(8, 10, .hFlip = TRUE), - ANIMCMD_FRAME(12, 10, .hFlip = TRUE), - ANIMCMD_FRAME(16, 26, .hFlip = TRUE), - ANIMCMD_FRAME(16, 5, .hFlip = TRUE), - ANIMCMD_FRAME(20, 5, .hFlip = TRUE), - ANIMCMD_FRAME(24, 15, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592BF4[] = -{ - gUnknown_08592BAC, - gUnknown_08592BD0, -}; - -const struct SpriteTemplate gUnknown_08592BFC = -{ - .tileTag = ANIM_TAG_UNUSED_BUBBLE_BURST, - .paletteTag = ANIM_TAG_UNUSED_BUBBLE_BURST, - .oam = &gUnknown_0852490C, - .anims = gUnknown_08592BF4, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101440, -}; - -const union AnimCmd gUnknown_08592C14[] = -{ - ANIMCMD_FRAME(0, 40), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592C1C[] = -{ - gUnknown_08592C14, -}; - -const union AffineAnimCmd gUnknown_08592C20[] = -{ - AFFINEANIMCMD_FRAME(0x14, 0x14, -30, 0), - AFFINEANIMCMD_FRAME(0x8, 0x8, 1, 24), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_08592C20_2[] = -{ - AFFINEANIMCMD_LOOP(0), - AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 24), - AFFINEANIMCMD_LOOP(10), -}; - -const union AffineAnimCmd gUnknown_08592C50[] = -{ - AFFINEANIMCMD_FRAME(0x14, 0x14, 30, 0), - AFFINEANIMCMD_FRAME(0x8, 0x8, -1, 24), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_08592C50_2[] = -{ - AFFINEANIMCMD_LOOP(0), - AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 24), - AFFINEANIMCMD_LOOP(10), -}; - -const union AffineAnimCmd *const gUnknown_08592C80[] = -{ - gUnknown_08592C20, - gUnknown_08592C50, -}; - -const struct SpriteTemplate gUnknown_08592C88 = -{ - .tileTag = ANIM_TAG_LETTER_Z, - .paletteTag = ANIM_TAG_LETTER_Z, - .oam = &gUnknown_08524974, - .anims = gUnknown_08592C1C, - .images = NULL, - .affineAnims = gUnknown_08592C80, - .callback = sub_81014F4, -}; - -const struct SpriteTemplate gUnknown_08592CA0 = -{ - .tileTag = ANIM_TAG_LOCK_ON, - .paletteTag = ANIM_TAG_LOCK_ON, - .oam = &gUnknown_08524914, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81015AC, -}; - -const struct SpriteTemplate gUnknown_08592CB8 = -{ - .tileTag = ANIM_TAG_LOCK_ON, - .paletteTag = ANIM_TAG_LOCK_ON, - .oam = &gUnknown_0852490C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101898, -}; - -const s8 gUnknown_08592CD0[][2] = -{ - { 64, 64}, - { 0, -64}, - {-64, 64}, - { 32, -32}, -}; - -const struct SpriteTemplate gUnknown_08592CD8 = -{ - .tileTag = 0, - .paletteTag = 0, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101940, -}; - -const struct SpriteTemplate gUnknown_08592CF0 = -{ - .tileTag = 0, - .paletteTag = 0, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101B90, -}; - -const union AnimCmd gUnknown_08592D08[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(16, 4), - ANIMCMD_FRAME(32, 4), - ANIMCMD_FRAME(48, 4), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592D1C[] = -{ - ANIMCMD_FRAME(48, 4), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592D24[] = -{ - gUnknown_08592D08, - gUnknown_08592D1C, -}; - -const struct SpriteTemplate gUnknown_08592D2C = -{ - .tileTag = ANIM_TAG_SLASH, - .paletteTag = ANIM_TAG_SLASH, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592D24, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101F40, -}; - -const struct SpriteTemplate gUnknown_08592D44 = -{ - .tileTag = ANIM_TAG_SLASH_2, - .paletteTag = ANIM_TAG_SLASH_2, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592D24, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101FA8, -}; - -const struct SpriteTemplate gUnknown_08592D5C = -{ - .tileTag = ANIM_TAG_SLASH_2, - .paletteTag = ANIM_TAG_SLASH_2, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592D24, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101FF0, -}; - -const union AnimCmd gUnknown_08592D74[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(8, 12), - ANIMCMD_FRAME(16, 4), - ANIMCMD_FRAME(24, 4), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592D88[] = -{ - gUnknown_08592D74, -}; - -const struct SpriteTemplate gUnknown_08592D8C = -{ - .tileTag = ANIM_TAG_FOCUS_ENERGY, - .paletteTag = ANIM_TAG_FOCUS_ENERGY, - .oam = &gUnknown_08524954, - .anims = gUnknown_08592D88, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81020D8, -}; - -const union AnimCmd gUnknown_08592DA4[] = -{ - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(16, 18), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(16, 6), - ANIMCMD_FRAME(32, 18), - ANIMCMD_FRAME(16, 6), - ANIMCMD_FRAME(32, 6), - ANIMCMD_FRAME(48, 18), - ANIMCMD_FRAME(32, 6), - ANIMCMD_FRAME(48, 6), - ANIMCMD_FRAME(64, 18), - ANIMCMD_FRAME(48, 6), - ANIMCMD_FRAME(64, 54), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592DE0[] = -{ - gUnknown_08592DA4, -}; - -const struct SpriteTemplate gUnknown_08592DE4 = -{ - .tileTag = ANIM_TAG_SPHERE_TO_CUBE, - .paletteTag = ANIM_TAG_SPHERE_TO_CUBE, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592DE0, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810217C, -}; - -const struct SpriteTemplate gUnknown_08592DFC = -{ - .tileTag = ANIM_TAG_BLACK_BALL, - .paletteTag = ANIM_TAG_BLACK_BALL, - .oam = &gUnknown_08524904, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = TranslateAnimSpriteToTargetMonLocation, -}; - -const union AnimCmd gUnknown_08592E14[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(16, 3), - ANIMCMD_FRAME(32, 3), - ANIMCMD_FRAME(48, 3), - ANIMCMD_FRAME(64, 3), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592E2C[] = -{ - gUnknown_08592E14, -}; - -const struct SpriteTemplate gUnknown_08592E30 = -{ - .tileTag = ANIM_TAG_GRAY_SMOKE, - .paletteTag = ANIM_TAG_GRAY_SMOKE, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592E2C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A77C8, -}; - -const union AnimCmd gUnknown_08592E48[] = -{ - ANIMCMD_FRAME(3, 5), - ANIMCMD_FRAME(2, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592E5C[] = -{ - gUnknown_08592E48, -}; - -const union AffineAnimCmd gUnknown_08592E60[] = -{ - AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd *const gUnknown_08592E70[] = -{ - gUnknown_08592E60, -}; - -const struct SpriteTemplate gUnknown_08592E74 = -{ - .tileTag = ANIM_TAG_CONVERSION, - .paletteTag = ANIM_TAG_CONVERSION, - .oam = &gUnknown_08524AE4, - .anims = gUnknown_08592E5C, - .images = NULL, - .affineAnims = gUnknown_08592E70, - .callback = sub_8102268, -}; - -const union AnimCmd gUnknown_08592E8C[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(2, 5), - ANIMCMD_FRAME(3, 5), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592EA0[] = -{ - gUnknown_08592E8C, -}; - -const struct SpriteTemplate gUnknown_08592EA4 = -{ - .tileTag = ANIM_TAG_CONVERSION, - .paletteTag = ANIM_TAG_CONVERSION, - .oam = &gUnknown_08524AE4, - .anims = gUnknown_08592EA0, - .images = NULL, - .affineAnims = gUnknown_08592E70, - .callback = sub_810234C, -}; - -const struct SpriteTemplate gUnknown_08592EBC = -{ - .tileTag = ANIM_TAG_MOON, - .paletteTag = ANIM_TAG_MOON, - .oam = &gUnknown_08524A3C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81024E0, -}; - -const union AnimCmd gUnknown_08592ED4[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(8, 8), - ANIMCMD_FRAME(12, 8), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd *const gUnknown_08592EE8[] = -{ - gUnknown_08592ED4, -}; - -const struct SpriteTemplate gBattleAnimSpriteTemplate_8592EEC = -{ - .tileTag = ANIM_TAG_GREEN_SPARKLE, - .paletteTag = ANIM_TAG_GREEN_SPARKLE, - .oam = &gUnknown_0852490C, - .anims = gUnknown_08592EE8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8102540, -}; - -const union AnimCmd gUnknown_08592F04[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(16, 2), - ANIMCMD_FRAME(32, 2), - ANIMCMD_FRAME(48, 3), - ANIMCMD_FRAME(64, 5), - ANIMCMD_FRAME(80, 3), - ANIMCMD_FRAME(96, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592F28[] = -{ - gUnknown_08592F04, -}; - -const struct SpriteTemplate gUnknown_08592F2C = -{ - .tileTag = ANIM_TAG_BLUE_STAR, - .paletteTag = ANIM_TAG_BLUE_STAR, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592F28, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A77C8, -}; - -const struct SpriteTemplate gUnknown_08592F44 = -{ - .tileTag = ANIM_TAG_HORN_HIT, - .paletteTag = ANIM_TAG_HORN_HIT, - .oam = &gUnknown_08524914, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8102844, -}; - -const union AnimCmd gUnknown_08592F5C[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(16, 2), - ANIMCMD_FRAME(32, 2), - ANIMCMD_FRAME(48, 2), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592F70[] = -{ - gUnknown_08592F5C, -}; - -const struct SpriteTemplate gUnknown_08592F74 = -{ - .tileTag = ANIM_TAG_FANG_ATTACK, - .paletteTag = ANIM_TAG_FANG_ATTACK, - .oam = &gUnknown_08524914, - .anims = gUnknown_08592F70, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8102BCC, -}; - -const union AnimCmd gUnknown_08592F8C[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592F94[] = -{ - ANIMCMD_FRAME(4, 10), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592F9C[] = -{ - ANIMCMD_FRAME(8, 41), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592FA4[] = -{ - ANIMCMD_FRAME(12, 10), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592FAC[] = -{ - ANIMCMD_FRAME(16, 10), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592FB4[] = -{ - ANIMCMD_FRAME(20, 10), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592FBC[] = -{ - ANIMCMD_FRAME(0, 10, .vFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_08592FC4[] = -{ - ANIMCMD_FRAME(4, 10, .vFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08592FCC[] = -{ - gUnknown_08592F8C, - gUnknown_08592F94, - gUnknown_08592F9C, - gUnknown_08592FA4, - gUnknown_08592FAC, - gUnknown_08592FB4, - gUnknown_08592FBC, - gUnknown_08592FC4, -}; - -const union AffineAnimCmd gUnknown_08592FEC[] = -{ - AFFINEANIMCMD_FRAME(0xC, 0xC, 0, 16), - AFFINEANIMCMD_FRAME(0xFFF4, 0xFFF4, 0, 16), - AFFINEANIMCMD_JUMP(0), -}; - -const union AffineAnimCmd *const gUnknown_08593004[] = -{ - gUnknown_08592FEC, -}; - -const struct SpriteTemplate gUnknown_08593008 = -{ - .tileTag = ANIM_TAG_MUSIC_NOTES, - .paletteTag = ANIM_TAG_MUSIC_NOTES, - .oam = &gUnknown_085249CC, - .anims = gUnknown_08592FCC, - .images = NULL, - .affineAnims = gUnknown_08593004, - .callback = sub_8102CD4, -}; - -const u16 gUnknown_08593020[][6] = -{ - {10072, RGB(31, 31, 31), RGB(31, 26, 28), RGB(31, 22, 26), RGB(31, 17, 24), RGB(31, 13, 22)}, - {10097, RGB(31, 31, 31), RGB(25, 31, 26), RGB(20, 31, 21), RGB(15, 31, 16), RGB(10, 31, 12)}, - {10185, RGB(31, 31, 31), RGB(31, 31, 24), RGB(31, 31, 17), RGB(31, 31, 10), RGB(31, 31, 3)}, - {10175, RGB(31, 31, 31), RGB(26, 28, 31), RGB(21, 26, 31), RGB(16, 24, 31), RGB(12, 22, 31)}, -}; - -const struct SpriteTemplate gUnknown_08593050 = -{ - .tileTag = ANIM_TAG_MUSIC_NOTES, - .paletteTag = ANIM_TAG_MUSIC_NOTES, - .oam = &gUnknown_085249CC, - .anims = gUnknown_08592FCC, - .images = NULL, - .affineAnims = gUnknown_08593004, - .callback = sub_8102EB0, -}; - -const struct SpriteTemplate gUnknown_08593068 = -{ - .tileTag = ANIM_TAG_PURPLE_HAND_OUTLINE, - .paletteTag = ANIM_TAG_PURPLE_HAND_OUTLINE, - .oam = &gUnknown_08524914, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8102FB8, -}; - -const union AffineAnimCmd gUnknown_08593080[] = -{ - AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0), - AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 1), - AFFINEANIMCMD_JUMP(1), -}; - -const union AffineAnimCmd *const gUnknown_08593098[] = -{ - gUnknown_08593080, -}; - -const struct SpriteTemplate gUnknown_0859309C = -{ - .tileTag = ANIM_TAG_MUSIC_NOTES, - .paletteTag = ANIM_TAG_MUSIC_NOTES, - .oam = &gUnknown_085249CC, - .anims = gUnknown_08592FCC, - .images = NULL, - .affineAnims = gUnknown_08593098, - .callback = sub_8103028, -}; - -const union AnimCmd gUnknown_085930B4[] = -{ - ANIMCMD_FRAME(0, 2, .hFlip = TRUE), - ANIMCMD_FRAME(16, 2, .hFlip = TRUE), - ANIMCMD_FRAME(32, 2, .hFlip = TRUE), - ANIMCMD_FRAME(48, 2, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085930C8[] = -{ - ANIMCMD_FRAME(48, 2, .hFlip = TRUE), - ANIMCMD_FRAME(32, 2, .hFlip = TRUE), - ANIMCMD_FRAME(16, 2, .hFlip = TRUE), - ANIMCMD_FRAME(0, 2, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085930DC[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(16, 2), - ANIMCMD_FRAME(32, 2), - ANIMCMD_FRAME(48, 2), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085930F0[] = -{ - ANIMCMD_FRAME(48, 2), - ANIMCMD_FRAME(32, 2), - ANIMCMD_FRAME(16, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_08593104[] = -{ - gUnknown_085930B4, - gUnknown_085930DC, - gUnknown_085930C8, - gUnknown_085930F0, -}; - -const struct SpriteTemplate gUnknown_08593114 = -{ - .tileTag = ANIM_TAG_THOUGHT_BUBBLE, - .paletteTag = ANIM_TAG_THOUGHT_BUBBLE, - .oam = &gUnknown_08524914, - .anims = gUnknown_08593104, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8103164, -}; - -const union AffineAnimCmd gUnknown_0859312C[] = -{ - AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), - AFFINEANIMCMD_FRAME(0x1E, 0x1E, 0, 8), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_08593144[] = -{ - AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 11), - AFFINEANIMCMD_FRAME(0x0, 0x0, -4, 11), - AFFINEANIMCMD_LOOP(2), - AFFINEANIMCMD_FRAME(0xFFE2, 0xFFE2, 0, 8), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_08593144_2[] = -{ - AFFINEANIMCMD_FRAME(16, 16, 0, 0), - AFFINEANIMCMD_FRAME(30, 30, 0, 8), - AFFINEANIMCMD_FRAME(0, 0, 0, 16), - AFFINEANIMCMD_LOOP(0), - AFFINEANIMCMD_FRAME(0, 0, 4, 11), - AFFINEANIMCMD_FRAME(0, 0, -4, 11), - AFFINEANIMCMD_LOOP(2), - AFFINEANIMCMD_FRAME(-30, -30, 0, 8), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd *const gUnknown_085931B4[] = -{ - gUnknown_0859312C, - gUnknown_08593144, -}; - -const struct SpriteTemplate gUnknown_085931BC = -{ - .tileTag = ANIM_TAG_FINGER, - .paletteTag = ANIM_TAG_FINGER, - .oam = &gUnknown_085249D4, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_085931B4, - .callback = sub_8103208, -}; - -const struct SpriteTemplate gUnknown_085931D4 = -{ - .tileTag = ANIM_TAG_FINGER, - .paletteTag = ANIM_TAG_FINGER, - .oam = &gUnknown_08524974, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_085931B4, - .callback = sub_8103284, -}; - -const union AnimCmd gUnknown_085931EC[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085931F4[] = -{ - ANIMCMD_FRAME(0, 1, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085931FC[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(16, 4), - ANIMCMD_FRAME(32, 4), - ANIMCMD_FRAME(16, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(16, 4), - ANIMCMD_FRAME(32, 4), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_0859321C[] = -{ - ANIMCMD_FRAME(0, 4, .hFlip = TRUE), - ANIMCMD_FRAME(16, 4, .hFlip = TRUE), - ANIMCMD_FRAME(32, 4, .hFlip = TRUE), - ANIMCMD_FRAME(16, 4, .hFlip = TRUE), - ANIMCMD_FRAME(0, 4, .hFlip = TRUE), - ANIMCMD_FRAME(16, 4, .hFlip = TRUE), - ANIMCMD_FRAME(32, 4, .hFlip = TRUE), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_0859323C[] = -{ - gUnknown_085931EC, - gUnknown_085931F4, - gUnknown_085931FC, - gUnknown_0859321C, -}; - -const struct SpriteTemplate gUnknown_0859324C = -{ - .tileTag = ANIM_TAG_FINGER_2, - .paletteTag = ANIM_TAG_FINGER_2, - .oam = &gUnknown_08524914, - .anims = gUnknown_0859323C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8103390, -}; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 4b7ee9a61..ed25a2c68 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -17,7 +17,7 @@ #include "menu.h" #include "trig.h" #include "random.h" -#include "malloc.h" +#include "alloc.h" #include "dma3.h" #include "gpu_regs.h" #include "bg.h" @@ -30,7 +30,7 @@ #include "field_weather.h" #include "international_string_util.h" #include "naming_screen.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "battle.h" // to get rid of later struct EggHatchData @@ -60,7 +60,7 @@ extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle extern const u8 gText_HatchedFromEgg[]; extern const u8 gText_NickHatchPrompt[]; -extern void play_some_sound(void); +extern void PlayRainSoundEffect(void); extern u16 sub_80D22D0(void); extern u8 CountPartyAliveNonEggMonsExcept(u8); @@ -581,7 +581,7 @@ static void Task_EggHatchPlayBGM(u8 taskID) if (gTasks[taskID].data[0] == 0) { StopMapMusic(); - play_some_sound(); + PlayRainSoundEffect(); } if (gTasks[taskID].data[0] == 1) PlayBGM(MUS_ME_SHINKA); diff --git a/src/event_data.c b/src/event_data.c index 8a998fe26..f6a1cde78 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -1,5 +1,6 @@ #include "global.h" #include "event_data.h" +#include "pokedex.h" #define TEMP_FLAGS_SIZE 0x4 #define TEMP_UPPER_FLAGS_SIZE 0x8 @@ -67,7 +68,7 @@ void EnableNationalPokedex(void) gSaveBlock2Ptr->pokedex.nationalMagic = 0xDA; *nationalDexVar = 0x302; FlagSet(FLAG_SYS_NATIONAL_DEX); - gSaveBlock2Ptr->pokedex.unknown1 = 1; + gSaveBlock2Ptr->pokedex.mode = DEX_MODE_NATIONAL; gSaveBlock2Ptr->pokedex.order = 0; sub_80BB358(); } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index cd5a547a9..ef125e564 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -9,7 +9,7 @@ #include "field_effect_helpers.h" #include "field_player_avatar.h" #include "fieldmap.h" -#include "malloc.h" +#include "alloc.h" #include "mauville_old_man.h" #include "metatile_behavior.h" #include "overworld.h" @@ -27,6 +27,28 @@ // this file was known as evobjmv.c in Game Freak's original source +#define movement_type_def(setup, table) \ +static u8 setup##_callback(struct EventObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\ +}\ +static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\ +{\ + return table[sprite->data[1]](eventObject, sprite);\ +} + +#define movement_type_empty_callback(setup) \ +static u8 setup##_callback(struct EventObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\ +}\ +static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\ +{\ + return 0;\ +} + EWRAM_DATA u8 sCurrentReflectionType = 0; EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; EWRAM_DATA struct LockedAnimEventObjects *gLockedAnimEventObjects = {0}; @@ -120,255 +142,255 @@ void (*const gCameraObjectFuncs[])(struct Sprite *) = { // movement type callbacks static void (*const sMovementTypeCallbacks[])(struct Sprite *) = { - MovementType_None, // MOVEMENT_TYPE_NONE - MovementType_LookAround, // MOVEMENT_TYPE_LOOK_AROUND - MovementType_WanderAround, // MOVEMENT_TYPE_WANDER_AROUND - MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN - MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP - MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT - MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_UP - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_DOWN - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_LEFT - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_RIGHT - MovementType_Player, // MOVEMENT_TYPE_PLAYER - MovementType_BerryTreeGrowth, // MOVEMENT_TYPE_BERRY_TREE_GROWTH - MovementType_FaceDownAndUp, // MOVEMENT_TYPE_FACE_DOWN_AND_UP - MovementType_FaceLeftAndRight, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT - MovementType_FaceUpAndLeft, // MOVEMENT_TYPE_FACE_UP_AND_LEFT - MovementType_FaceUpAndRight, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT - MovementType_FaceDownAndLeft, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT - MovementType_FaceDownAndRight, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT - MovementType_FaceDownUpAndLeft, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT - MovementType_FaceDownUpAndRight, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT - MovementType_FaceUpRightAndLeft, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT - MovementType_FaceDownRightAndLeft, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT - MovementType_RotateCounterclockwise, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE - MovementType_RotateClockwise, // MOVEMENT_TYPE_ROTATE_CLOCKWISE - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_UP_AND_DOWN - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_DOWN_AND_UP - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT - MovementType_WalkSequenceUpRightLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN - MovementType_WalkSequenceRightLeftDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP - MovementType_WalkSequenceDownUpRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT - MovementType_WalkSequenceLeftDownUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT - MovementType_WalkSequenceUpLeftRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN - MovementType_WalkSequenceLeftRightDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP - MovementType_WalkSequenceDownUpLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT - MovementType_WalkSequenceRightDownUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT - MovementType_WalkSequenceLeftUpDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT - MovementType_WalkSequenceUpDownRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT - MovementType_WalkSequenceRightLeftUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN - MovementType_WalkSequenceDownRightLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP - MovementType_WalkSequenceRightUpDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT - MovementType_WalkSequenceUpDownLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT - MovementType_WalkSequenceLeftRightUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN - MovementType_WalkSequenceDownLeftRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP - MovementType_WalkSequenceUpLeftDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT - MovementType_WalkSequenceDownRightUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT - MovementType_WalkSequenceLeftDownRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP - MovementType_WalkSequenceRightUpLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN - MovementType_WalkSequenceUpRightDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT - MovementType_WalkSequenceDownLeftUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT - MovementType_WalkSequenceLeftUpRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN - MovementType_WalkSequenceRightDownLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE - MovementType_TreeDisguise, // MOVEMENT_TYPE_TREE_DISGUISE - MovementType_MountainDisguise, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS - MovementType_Hidden, // MOVEMENT_TYPE_HIDDEN - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_UP - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_UP - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_UP - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT - MovementType_Invisible, // MOVEMENT_TYPE_INVISIBLE - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT + [MOVEMENT_TYPE_NONE] = MovementType_None, + [MOVEMENT_TYPE_LOOK_AROUND] = MovementType_LookAround, + [MOVEMENT_TYPE_WANDER_AROUND] = MovementType_WanderAround, + [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = MovementType_WanderUpAndDown, + [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = MovementType_WanderUpAndDown, + [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = MovementType_WanderLeftAndRight, + [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = MovementType_WanderLeftAndRight, + [MOVEMENT_TYPE_FACE_UP] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_DOWN] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_LEFT] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_RIGHT] = MovementType_FaceDirection, + [MOVEMENT_TYPE_PLAYER] = MovementType_Player, + [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = MovementType_BerryTreeGrowth, + [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = MovementType_FaceDownAndUp, + [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = MovementType_FaceLeftAndRight, + [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = MovementType_FaceUpAndLeft, + [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = MovementType_FaceUpAndRight, + [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = MovementType_FaceDownAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = MovementType_FaceDownAndRight, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = MovementType_FaceDownUpAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = MovementType_FaceDownUpAndRight, + [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = MovementType_FaceUpRightAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = MovementType_FaceDownRightAndLeft, + [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = MovementType_RotateCounterclockwise, + [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = MovementType_RotateClockwise, + [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = MovementType_WalkSequenceUpRightLeftDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = MovementType_WalkSequenceRightLeftDownUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = MovementType_WalkSequenceDownUpRightLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = MovementType_WalkSequenceLeftDownUpRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = MovementType_WalkSequenceUpLeftRightDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = MovementType_WalkSequenceLeftRightDownUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = MovementType_WalkSequenceDownUpLeftRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = MovementType_WalkSequenceRightDownUpLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = MovementType_WalkSequenceLeftUpDownRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = MovementType_WalkSequenceUpDownRightLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = MovementType_WalkSequenceRightLeftUpDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = MovementType_WalkSequenceDownRightLeftUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = MovementType_WalkSequenceRightUpDownLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = MovementType_WalkSequenceUpDownLeftRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = MovementType_WalkSequenceLeftRightUpDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = MovementType_WalkSequenceDownLeftRightUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = MovementType_WalkSequenceUpLeftDownRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = MovementType_WalkSequenceDownRightUpLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = MovementType_WalkSequenceLeftDownRightUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = MovementType_WalkSequenceRightUpLeftDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = MovementType_WalkSequenceUpRightDownLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = MovementType_WalkSequenceDownLeftUpRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = MovementType_WalkSequenceLeftUpRightDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = MovementType_WalkSequenceRightDownLeftUp, + [MOVEMENT_TYPE_COPY_PLAYER] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_TREE_DISGUISE] = MovementType_TreeDisguise, + [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = MovementType_MountainDisguise, + [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_HIDDEN] = MovementType_Hidden, + [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = MovementType_JogInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = MovementType_RunInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = MovementType_RunInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = MovementType_RunInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = MovementType_RunInPlace, + [MOVEMENT_TYPE_INVISIBLE] = MovementType_Invisible, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace, }; const u8 gRangedMovementTypes[] = { - 0, // MOVEMENT_TYPE_NONE - 0, // MOVEMENT_TYPE_LOOK_AROUND - 1, // MOVEMENT_TYPE_WANDER_AROUND - 1, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN - 1, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP - 1, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT - 1, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_UP - 0, // MOVEMENT_TYPE_FACE_DOWN - 0, // MOVEMENT_TYPE_FACE_LEFT - 0, // MOVEMENT_TYPE_FACE_RIGHT - 0, // MOVEMENT_TYPE_PLAYER - 0, // MOVEMENT_TYPE_BERRY_TREE_GROWTH - 0, // MOVEMENT_TYPE_FACE_DOWN_AND_UP - 0, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_UP_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT - 0, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE - 0, // MOVEMENT_TYPE_ROTATE_CLOCKWISE - 1, // MOVEMENT_TYPE_WALK_UP_AND_DOWN - 1, // MOVEMENT_TYPE_WALK_DOWN_AND_UP - 1, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT - 1, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP - 1, // MOVEMENT_TYPE_COPY_PLAYER - 1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE - 1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE - 1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE - 0, // MOVEMENT_TYPE_TREE_DISGUISE - 0, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE - 1, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS - 1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS - 1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS - 1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS - 0, // MOVEMENT_TYPE_HIDDEN - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_UP - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_UP - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_UP - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT - 0, // MOVEMENT_TYPE_INVISIBLE - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT + [MOVEMENT_TYPE_NONE] = 0, + [MOVEMENT_TYPE_LOOK_AROUND] = 0, + [MOVEMENT_TYPE_WANDER_AROUND] = 1, + [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = 1, + [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = 1, + [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = 1, + [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = 1, + [MOVEMENT_TYPE_FACE_UP] = 0, + [MOVEMENT_TYPE_FACE_DOWN] = 0, + [MOVEMENT_TYPE_FACE_LEFT] = 0, + [MOVEMENT_TYPE_FACE_RIGHT] = 0, + [MOVEMENT_TYPE_PLAYER] = 0, + [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = 0, + [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = 0, + [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = 0, + [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = 0, + [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = 0, + [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = 0, + [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = 1, + [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = 1, + [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = 1, + [MOVEMENT_TYPE_COPY_PLAYER] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = 1, + [MOVEMENT_TYPE_TREE_DISGUISE] = 0, + [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = 0, + [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = 1, + [MOVEMENT_TYPE_HIDDEN] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = 0, + [MOVEMENT_TYPE_INVISIBLE] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = 0, }; const u8 gInitialMovementTypeFacingDirections[] = { - DIR_SOUTH, // MOVEMENT_TYPE_NONE - DIR_SOUTH, // MOVEMENT_TYPE_LOOK_AROUND - DIR_SOUTH, // MOVEMENT_TYPE_WANDER_AROUND - DIR_NORTH, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP - DIR_WEST, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT - DIR_EAST, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN - DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_FACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_PLAYER - DIR_SOUTH, // MOVEMENT_TYPE_BERRY_TREE_GROWTH - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_UP - DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_LEFT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE - DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_CLOCKWISE - DIR_NORTH, // MOVEMENT_TYPE_WALK_UP_AND_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_DOWN_AND_UP - DIR_WEST, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT - DIR_EAST, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP - DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER - DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE - DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE - DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE - DIR_SOUTH, // MOVEMENT_TYPE_TREE_DISGUISE - DIR_SOUTH, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE - DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS - DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS - DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS - DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS - DIR_SOUTH, // MOVEMENT_TYPE_HIDDEN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_WALK_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_JOG_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_RUN_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_INVISIBLE - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT + [MOVEMENT_TYPE_NONE] = DIR_SOUTH, + [MOVEMENT_TYPE_LOOK_AROUND] = DIR_SOUTH, + [MOVEMENT_TYPE_WANDER_AROUND] = DIR_SOUTH, + [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_FACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_FACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_PLAYER] = DIR_SOUTH, + [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = DIR_SOUTH, + [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = DIR_EAST, + [MOVEMENT_TYPE_COPY_PLAYER] = DIR_NORTH, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = DIR_SOUTH, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = DIR_WEST, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = DIR_EAST, + [MOVEMENT_TYPE_TREE_DISGUISE] = DIR_SOUTH, + [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = DIR_SOUTH, + [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = DIR_NORTH, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST, + [MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST, }; #define EVENT_OBJ_PAL_TAG_0 0x1103 @@ -646,181 +668,181 @@ const s16 gMovementDelaysShort[] = {32, 48, 64, 80}; #include "data/field_event_obj/movement_type_func_tables.h" const u8 gFaceDirectionAnimNums[] = { - 0, // DIR_NONE - 0, // DIR_SOUTH - 1, // DIR_NORTH - 2, // DIR_WEST - 3, // DIR_EAST - 0, // DIR_SOUTHWEST - 0, // DIR_SOUTHEAST - 1, // DIR_NORTHWEST - 1, // DIR_NORTHEAST + [DIR_NONE] = 0, + [DIR_SOUTH] = 0, + [DIR_NORTH] = 1, + [DIR_WEST] = 2, + [DIR_EAST] = 3, + [DIR_SOUTHWEST] = 0, + [DIR_SOUTHEAST] = 0, + [DIR_NORTHWEST] = 1, + [DIR_NORTHEAST] = 1, }; const u8 gMoveDirectionAnimNums[] = { - 4, // DIR_NONE - 4, // DIR_SOUTH - 5, // DIR_NORTH - 6, // DIR_WEST - 7, // DIR_EAST - 4, // DIR_SOUTHWEST - 4, // DIR_SOUTHEAST - 5, // DIR_NORTHWEST - 5, // DIR_NORTHEAST + [DIR_NONE] = 4, + [DIR_SOUTH] = 4, + [DIR_NORTH] = 5, + [DIR_WEST] = 6, + [DIR_EAST] = 7, + [DIR_SOUTHWEST] = 4, + [DIR_SOUTHEAST] = 4, + [DIR_NORTHWEST] = 5, + [DIR_NORTHEAST] = 5, }; const u8 gMoveDirectionFastAnimNums[] = { - 8, // DIR_NONE - 8, // DIR_SOUTH - 9, // DIR_NORTH - 10, // DIR_WEST - 11, // DIR_EAST - 8, // DIR_SOUTHWEST - 8, // DIR_SOUTHEAST - 9, // DIR_NORTHWEST - 9, // DIR_NORTHEAST + [DIR_NONE] = 8, + [DIR_SOUTH] = 8, + [DIR_NORTH] = 9, + [DIR_WEST] = 10, + [DIR_EAST] = 11, + [DIR_SOUTHWEST] = 8, + [DIR_SOUTHEAST] = 8, + [DIR_NORTHWEST] = 9, + [DIR_NORTHEAST] = 9, }; const u8 gMoveDirectionFasterAnimNums[] = { - 12, // DIR_NONE - 12, // DIR_SOUTH - 13, // DIR_NORTH - 14, // DIR_WEST - 15, // DIR_EAST - 12, // DIR_SOUTHWEST - 12, // DIR_SOUTHEAST - 13, // DIR_NORTHWEST - 13, // DIR_NORTHEAST + [DIR_NONE] = 12, + [DIR_SOUTH] = 12, + [DIR_NORTH] = 13, + [DIR_WEST] = 14, + [DIR_EAST] = 15, + [DIR_SOUTHWEST] = 12, + [DIR_SOUTHEAST] = 12, + [DIR_NORTHWEST] = 13, + [DIR_NORTHEAST] = 13, }; const u8 gMoveDirectionFastestAnimNums[] = { - 16, // DIR_NONE - 16, // DIR_SOUTH - 17, // DIR_NORTH - 18, // DIR_WEST - 19, // DIR_EAST - 16, // DIR_SOUTHWEST - 16, // DIR_SOUTHEAST - 17, // DIR_NORTHWEST - 17, // DIR_NORTHEAST + [DIR_NONE] = 16, + [DIR_SOUTH] = 16, + [DIR_NORTH] = 17, + [DIR_WEST] = 18, + [DIR_EAST] = 19, + [DIR_SOUTHWEST] = 16, + [DIR_SOUTHEAST] = 16, + [DIR_NORTHWEST] = 17, + [DIR_NORTHEAST] = 17, }; const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon - 20, // DIR_NONE - 20, // DIR_SOUTH - 21, // DIR_NORTH - 22, // DIR_WEST - 23, // DIR_EAST - 20, // DIR_SOUTHWEST - 20, // DIR_SOUTHEAST - 21, // DIR_NORTHWEST - 21, // DIR_NORTHEAST + [DIR_NONE] = 20, + [DIR_SOUTH] = 20, + [DIR_NORTH] = 21, + [DIR_WEST] = 22, + [DIR_EAST] = 23, + [DIR_SOUTHWEST] = 20, + [DIR_SOUTHEAST] = 20, + [DIR_NORTHWEST] = 21, + [DIR_NORTHEAST] = 21, }; const u8 gAcroWheelieDirectionAnimNums[] = { - 20, // DIR_NONE - 20, // DIR_SOUTH - 21, // DIR_NORTH - 22, // DIR_WEST - 23, // DIR_EAST - 20, // DIR_SOUTHWEST - 20, // DIR_SOUTHEAST - 21, // DIR_NORTHWEST - 21, // DIR_NORTHEAST + [DIR_NONE] = 20, + [DIR_SOUTH] = 20, + [DIR_NORTH] = 21, + [DIR_WEST] = 22, + [DIR_EAST] = 23, + [DIR_SOUTHWEST] = 20, + [DIR_SOUTHEAST] = 20, + [DIR_NORTHWEST] = 21, + [DIR_NORTHEAST] = 21, }; const u8 gUnrefAnimNums_08375633[] = { - 24, // DIR_NONE - 24, // DIR_SOUTH - 25, // DIR_NORTH - 26, // DIR_WEST - 27, // DIR_EAST - 24, // DIR_SOUTHWEST - 24, // DIR_SOUTHEAST - 25, // DIR_NORTHWEST - 25, // DIR_NORTHEAST + [DIR_NONE] = 24, + [DIR_SOUTH] = 24, + [DIR_NORTH] = 25, + [DIR_WEST] = 26, + [DIR_EAST] = 27, + [DIR_SOUTHWEST] = 24, + [DIR_SOUTHEAST] = 24, + [DIR_NORTHWEST] = 25, + [DIR_NORTHEAST] = 25, }; const u8 gAcroEndWheelieDirectionAnimNums[] = { - 28, // DIR_NONE - 28, // DIR_SOUTH - 29, // DIR_NORTH - 30, // DIR_WEST - 31, // DIR_EAST - 28, // DIR_SOUTHWEST - 28, // DIR_SOUTHEAST - 29, // DIR_NORTHWEST - 29, // DIR_NORTHEAST + [DIR_NONE] = 28, + [DIR_SOUTH] = 28, + [DIR_NORTH] = 29, + [DIR_WEST] = 30, + [DIR_EAST] = 31, + [DIR_SOUTHWEST] = 28, + [DIR_SOUTHEAST] = 28, + [DIR_NORTHWEST] = 29, + [DIR_NORTHEAST] = 29, }; const u8 gAcroUnusedActionDirectionAnimNums[] = { - 32, // DIR_NONE - 32, // DIR_SOUTH - 33, // DIR_NORTH - 34, // DIR_WEST - 35, // DIR_EAST - 32, // DIR_SOUTHWEST - 32, // DIR_SOUTHEAST - 33, // DIR_NORTHWEST - 33, // DIR_NORTHEAST + [DIR_NONE] = 32, + [DIR_SOUTH] = 32, + [DIR_NORTH] = 33, + [DIR_WEST] = 34, + [DIR_EAST] = 35, + [DIR_SOUTHWEST] = 32, + [DIR_SOUTHEAST] = 32, + [DIR_NORTHWEST] = 33, + [DIR_NORTHEAST] = 33, }; const u8 gAcroWheeliePedalDirectionAnimNums[] = { - 36, // DIR_NONE - 36, // DIR_SOUTH - 37, // DIR_NORTH - 38, // DIR_WEST - 39, // DIR_EAST - 36, // DIR_SOUTHWEST - 36, // DIR_SOUTHEAST - 37, // DIR_NORTHWEST - 37, // DIR_NORTHEAST + [DIR_NONE] = 36, + [DIR_SOUTH] = 36, + [DIR_NORTH] = 37, + [DIR_WEST] = 38, + [DIR_EAST] = 39, + [DIR_SOUTHWEST] = 36, + [DIR_SOUTHEAST] = 36, + [DIR_NORTHWEST] = 37, + [DIR_NORTHEAST] = 37, }; const u8 gFishingDirectionAnimNums[] = { - 0, // DIR_NONE - 0, // DIR_SOUTH - 1, // DIR_NORTH - 2, // DIR_WEST - 3, // DIR_EAST - 0, // DIR_SOUTHWEST - 0, // DIR_SOUTHEAST - 1, // DIR_NORTHWEST - 1, // DIR_NORTHEAST + [DIR_NONE] = 0, + [DIR_SOUTH] = 0, + [DIR_NORTH] = 1, + [DIR_WEST] = 2, + [DIR_EAST] = 3, + [DIR_SOUTHWEST] = 0, + [DIR_SOUTHEAST] = 0, + [DIR_NORTHWEST] = 1, + [DIR_NORTHEAST] = 1, }; const u8 gFishingNoCatchDirectionAnimNums[] = { - 4, // DIR_NONE - 4, // DIR_SOUTH - 5, // DIR_NORTH - 6, // DIR_WEST - 7, // DIR_EAST - 4, // DIR_SOUTHWEST - 4, // DIR_SOUTHEAST - 5, // DIR_NORTHWEST - 5, // DIR_NORTHEAST + [DIR_NONE] = 4, + [DIR_SOUTH] = 4, + [DIR_NORTH] = 5, + [DIR_WEST] = 6, + [DIR_EAST] = 7, + [DIR_SOUTHWEST] = 4, + [DIR_SOUTHEAST] = 4, + [DIR_NORTHWEST] = 5, + [DIR_NORTHEAST] = 5, }; const u8 gFishingBiteDirectionAnimNums[] = { - 8, // DIR_NONE - 8, // DIR_SOUTH - 9, // DIR_NORTH - 10, // DIR_WEST - 11, // DIR_EAST - 8, // DIR_SOUTHWEST - 8, // DIR_SOUTHEAST - 9, // DIR_NORTHWEST - 9, // DIR_NORTHEAST + [DIR_NONE] = 8, + [DIR_SOUTH] = 8, + [DIR_NORTH] = 9, + [DIR_WEST] = 10, + [DIR_EAST] = 11, + [DIR_SOUTHWEST] = 8, + [DIR_SOUTHEAST] = 8, + [DIR_NORTHWEST] = 9, + [DIR_NORTHEAST] = 9, }; const u8 gRunningDirectionAnimNums[] = { - 20, // DIR_NONE - 20, // DIR_SOUTH - 21, // DIR_NORTH - 22, // DIR_WEST - 23, // DIR_EAST - 20, // DIR_SOUTHWEST - 20, // DIR_SOUTHEAST - 21, // DIR_NORTHWEST - 21, // DIR_NORTHEAST + [DIR_NONE] = 20, + [DIR_SOUTH] = 20, + [DIR_NORTH] = 21, + [DIR_WEST] = 22, + [DIR_EAST] = 23, + [DIR_SOUTHWEST] = 20, + [DIR_SOUTHEAST] = 20, + [DIR_NORTHWEST] = 21, + [DIR_NORTHEAST] = 21, }; const u8 gTrainerFacingDirectionMovementTypes[] = { - MOVEMENT_TYPE_FACE_DOWN, // DIR_NONE - MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTH - MOVEMENT_TYPE_FACE_UP, // DIR_NORTH - MOVEMENT_TYPE_FACE_LEFT, // DIR_WEST - MOVEMENT_TYPE_FACE_RIGHT, // DIR_EAST - MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHWEST - MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHEAST - MOVEMENT_TYPE_FACE_UP, // DIR_NORTHWEST - MOVEMENT_TYPE_FACE_UP, // DIR_NORTHEAST + [DIR_NONE] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_SOUTH] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_NORTH] = MOVEMENT_TYPE_FACE_UP, + [DIR_WEST] = MOVEMENT_TYPE_FACE_LEFT, + [DIR_EAST] = MOVEMENT_TYPE_FACE_RIGHT, + [DIR_SOUTHWEST] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_SOUTHEAST] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_NORTHWEST] = MOVEMENT_TYPE_FACE_UP, + [DIR_NORTHEAST] = MOVEMENT_TYPE_FACE_UP, }; bool8 (*const gOppositeDirectionBlockedMetatileFuncs[])(u8) = { diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 0d2072a15..1070c69e9 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -2,7 +2,7 @@ #include "evolution_scene.h" #include "evolution_graphics.h" #include "sprite.h" -#include "malloc.h" +#include "alloc.h" #include "task.h" #include "palette.h" #include "main.h" diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index ae598045e..7b17413d3 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -8,10 +8,9 @@ #include "event_scripts.h" #include "fieldmap.h" #include "field_control_avatar.h" -#include "field_fadetransition.h" #include "field_player_avatar.h" #include "field_poison.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_specials.h" #include "fldeff_80F9BCC.h" #include "item_menu.h" diff --git a/src/field_effect.c b/src/field_effect.c index a26d43030..1442c611a 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -6,7 +6,7 @@ #include "field_effect.h" #include "field_effect_helpers.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "fieldmap.h" #include "fldeff_groundshake.h" @@ -244,7 +244,7 @@ extern void pal_fill_for_maplights(void); extern void sub_80E1558(u8); extern void sub_80E1570(void); extern bool8 sub_80E1584(void); -extern void sub_80AF0B4(void); +extern void WarpFadeScreen(void); // .rodata const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); @@ -305,7 +305,7 @@ const union AnimCmd *const gNewGameBirchImageAnimTable[] = { }; const struct SpriteTemplate gNewGameBirchObjectTemplate = { - .tileTag = 0xffff, + .tileTag = 0xFFFF, .paletteTag = 4102, .oam = &gNewGameBirchOamAttributes, .anims = gNewGameBirchImageAnimTable, @@ -383,7 +383,7 @@ const union AnimCmd *const gSpriteAnimTable_855C300[] = { }; const struct SpriteTemplate gSpriteTemplate_855C304 = { - .tileTag = 0xffff, + .tileTag = 0xFFFF, .paletteTag = 4103, .oam = &gOamData_855C218, .anims = gSpriteAnimTable_855C2F8, @@ -393,7 +393,7 @@ const struct SpriteTemplate gSpriteTemplate_855C304 = { }; const struct SpriteTemplate gSpriteTemplate_855C31C = { - .tileTag = 0xffff, + .tileTag = 0xFFFF, .paletteTag = 4100, .oam = &gOamData_855C220, .anims = gSpriteAnimTable_855C2F8, @@ -403,7 +403,7 @@ const struct SpriteTemplate gSpriteTemplate_855C31C = { }; const struct SpriteTemplate gSpriteTemplate_855C334 = { - .tileTag = 0xffff, + .tileTag = 0xFFFF, .paletteTag = 4112, .oam = &gOamData_855C220, .anims = gSpriteAnimTable_855C300, @@ -413,7 +413,7 @@ const struct SpriteTemplate gSpriteTemplate_855C334 = { }; const struct SpriteTemplate gSpriteTemplate_855C34C = { - .tileTag = 0xffff, + .tileTag = 0xFFFF, .paletteTag = 4112, .oam = &gOamData_855C26C, .anims = gSpriteAnimTable_855C300, @@ -773,7 +773,7 @@ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subprio u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, d, g, 1, x, y, 0, spritePalette->tag); PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); if (spriteId == 0xFFFF) - return 0x40; + return MAX_SPRITES; else return spriteId; } @@ -1593,8 +1593,8 @@ static void sub_80B7004(struct Task *task) static void sub_80B7050(void) { - music_something(); - sub_80AF0B4(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); } static void sub_80B7060(void) @@ -1943,8 +1943,8 @@ static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, str static bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { - music_something(); - sub_80AF0B4(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); task->data[0]++; return FALSE; } @@ -2099,8 +2099,8 @@ static bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, str { if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) { - music_something(); - sub_80AF0B4(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); task->data[0]++; } return FALSE; @@ -2161,8 +2161,8 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task) u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; if (task->data[14] != 0 && (--task->data[14]) == 0) { - music_something(); - sub_80AF0B4(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); } eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject)) @@ -2314,8 +2314,8 @@ static void TeleportFieldEffectTask3(struct Task *task) if (task->data[4] >= 0xa8) { task->data[0]++; - music_something(); - sub_80AF0B4(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); } } @@ -2501,10 +2501,8 @@ static void sub_80B8584(struct Task *task) static void sub_80B85F8(struct Task *task) { - u16 offset; - u16 delta; - offset = ((REG_BG0CNT >> 2) << 14); - delta = ((REG_BG0CNT >> 8) << 11); + u16 offset = ((REG_BG0CNT >> 2) << 14); + u16 delta = ((REG_BG0CNT >> 8) << 11); CpuCopy16(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x200); CpuFill32(0, (void *)(VRAM + delta), 0x800); LoadPalette(gFieldMoveStreaksPalette, 0xf0, 0x20); @@ -2580,8 +2578,7 @@ static void sub_80B871C(struct Task *task) static void sub_80B8770(struct Task *task) { - u16 bg0cnt; - bg0cnt = (REG_BG0CNT >> 8) << 11; + u16 bg0cnt = (REG_BG0CNT >> 8) << 11; CpuFill32(0, (void *)VRAM + bg0cnt, 0x800); task->data[1] = 0xf1; task->data[2] = 0xa1; @@ -2603,9 +2600,8 @@ static void overworld_bg_setup_2(struct Task *task) static void sub_80B880C(void) { - struct Task *task; IntrCallback callback; - task = &gTasks[FindTaskIdByFunc(sub_80B8554)]; + struct Task *task = &gTasks[FindTaskIdByFunc(sub_80B8554)]; LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback); callback(); SetGpuReg(REG_OFFSET_WIN0H, task->data[1]); @@ -2735,7 +2731,6 @@ static void sub_80B8B28(struct Task *task) task->data[3] += 16; } -#ifdef NONMATCHING static bool8 sub_80B8B38(struct Task *task) { u16 i; @@ -2752,116 +2747,18 @@ static bool8 sub_80B8B38(struct Task *task) dstOffs = (32 - dstOffs) & 0x1f; srcOffs = (32 - task->data[4]) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); - for (i=0; i<10; i++) + for (i = 0; i < 10; i++) { - dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32] | 0xf000; + dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32]; + dest[dstOffs + i * 32] |= 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] = gDarknessFieldMoveStreaksTilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000; + dest[((dstOffs + 1) & 0x1f) + i * 32] |= 0xf000; } task->data[4] += 2; } return FALSE; } -#else -NAKED -static bool8 sub_80B8B38(struct Task *task) -{ - 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" - "\tadds r5, r0, 0\n" - "\tldrh r2, [r5, 0x10]\n" - "\tmovs r1, 0x10\n" - "\tldrsh r0, [r5, r1]\n" - "\tcmp r0, 0x1F\n" - "\tble _08088724\n" - "\tmovs r0, 0x1\n" - "\tb _080887A8\n" - "_08088724:\n" - "\tldrh r0, [r5, 0xE]\n" - "\tlsls r0, 16\n" - "\tasrs r3, r0, 19\n" - "\tmovs r1, 0x1F\n" - "\tands r3, r1\n" - "\tmovs r4, 0x10\n" - "\tldrsh r0, [r5, r4]\n" - "\tcmp r3, r0\n" - "\tblt _080887A6\n" - "\tmovs r0, 0x20\n" - "\tsubs r3, r0, r3\n" - "\tands r3, r1\n" - "\tsubs r0, r2\n" - "\tmov r12, r0\n" - "\tmov r7, r12\n" - "\tands r7, r1\n" - "\tmov r12, r7\n" - "\tldrh r0, [r5, 0x20]\n" - "\tldr r1, _080887B8 @ =0x06000140\n" - "\tadds r1, r0\n" - "\tmov r8, r1\n" - "\tmovs r4, 0\n" - "\tldr r7, _080887BC @ =gDarknessFieldMoveStreaksTilemap\n" - "\tmov r10, r7\n" - "\tmovs r0, 0xF0\n" - "\tlsls r0, 8\n" - "\tmov r9, r0\n" - "\tadds r1, r3, 0x1\n" - "\tmovs r0, 0x1F\n" - "\tands r1, r0\n" - "\tstr r1, [sp]\n" - "\tmov r6, r12\n" - "\tadds r6, 0x1\n" - "\tands r6, r0\n" - "_08088768:\n" - "\tlsls r1, r4, 5\n" - "\tadds r2, r1, r3\n" - "\tlsls r2, 1\n" - "\tadd r2, r8\n" - "\tmov r7, r12\n" - "\tadds r0, r7, r1\n" - "\tlsls r0, 1\n" - "\tadd r0, r10\n" - "\tldrh r0, [r0]\n" - "\tmov r7, r9\n" - "\torrs r0, r7\n" - "\tstrh r0, [r2]\n" - "\tldr r0, [sp]\n" - "\tadds r2, r1, r0\n" - "\tlsls r2, 1\n" - "\tadd r2, r8\n" - "\tadds r1, r6, r1\n" - "\tlsls r1, 1\n" - "\tadd r1, r10\n" - "\tldrh r0, [r1]\n" - "\tmov r1, r9\n" - "\torrs r0, r1\n" - "\tstrh r0, [r2]\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r4, r0, 16\n" - "\tcmp r4, 0x9\n" - "\tbls _08088768\n" - "\tldrh r0, [r5, 0x10]\n" - "\tadds r0, 0x2\n" - "\tstrh r0, [r5, 0x10]\n" - "_080887A6:\n" - "\tmovs r0, 0\n" - "_080887A8:\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\n" - "\t.align 2, 0\n" - "_080887B8: .4byte 0x06000140\n" - "_080887BC: .4byte gDarknessFieldMoveStreaksTilemap"); -} -#endif static bool8 sub_80B8BF0(struct Task *task) { @@ -2877,7 +2774,7 @@ static bool8 sub_80B8BF0(struct Task *task) { dstOffs = (task->data[1] >> 3) & 0x1f; dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]); - for (i=0; i<10; i++) + for (i = 0; i < 10; i++) { dest[dstOffs + i * 32] = 0xf000; dest[((dstOffs + 1) & 0x1f) + i * 32] = 0xf000; @@ -2913,7 +2810,8 @@ static void sub_80B8CC0(struct Sprite *sprite) if (sprite->data[6]) { PlayCry2(sprite->data[0], 0, 0x7d, 0xa); - } else + } + else { PlayCry1(sprite->data[0], 0); } @@ -2933,7 +2831,8 @@ static void sub_80B8D20(struct Sprite *sprite) if (sprite->pos1.x < -0x40) { sprite->data[7] = 1; - } else + } + else { sprite->pos1.x -= 20; } @@ -2941,8 +2840,7 @@ static void sub_80B8D20(struct Sprite *sprite) u8 FldEff_UseSurf(void) { - u8 taskId; - taskId = CreateTask(sub_80B8D84, 0xff); + u8 taskId = CreateTask(sub_80B8D84, 0xff); gTasks[taskId].data[15] = gFieldEffectArguments[0]; Overworld_ClearSavedMusic(); Overworld_ChangeMusicTo(MUS_NAMINORI); @@ -3031,13 +2929,12 @@ static void sub_80B8F24(struct Task *task) } } -#ifdef NONMATCHING u8 sub_80B8F98(void) { - u8 spriteId, i, j, k, l; - struct Sprite *sprite; - spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[36], 0x78, -0x18, 1); - sprite = &gSprites[spriteId]; + u8 i, j, k; + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[36], 0x78, -0x18, 1); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; sprite->oam.paletteNum = 4; sprite->data[0] = 0; @@ -3048,7 +2945,7 @@ u8 sub_80B8F98(void) sprite->data[5] = 0; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14)); - SetGpuReg(REG_OFFSET_WININ, 0x3F3F); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); LoadPalette(gUnknown_0855B610, 0xC0, sizeof(gUnknown_0855B610)); SetGpuReg(REG_OFFSET_BG0VOFS, 120); for (i = 3; i < 15; i++) @@ -3060,156 +2957,20 @@ u8 sub_80B8F98(void) } for (k = 0; k < 90; k++) { - for (l = 0; l < 8; l++) + for (i = 0; i < 8; i++) { - *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + l * 4) = (gUnknown_0855B630[k * 32 + l * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + l * 4]; - *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + l * 4 + 2) = (gUnknown_0855B630[k * 32 + l * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + l * 4 + 2]; + *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + i * 4) = (gUnknown_0855B630[k * 32 + i * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + i * 4]; + *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + i * 4 + 2) = (gUnknown_0855B630[k * 32 + i * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + i * 4 + 2]; } } return spriteId; } -#else -NAKED -u8 sub_80B8F98(void) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - ldr r0, =gFieldEffectObjectTemplatePointers\n\ - adds r0, 0x90\n\ - ldr r0, [r0]\n\ - movs r2, 0x18\n\ - negs r2, r2\n\ - movs r1, 0x78\n\ - movs r3, 0x1\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - lsls r1, r0, 4\n\ - add r1, r8\n\ - lsls r1, 2\n\ - ldr r0, =gSprites\n\ - adds r1, r0\n\ - ldrb r2, [r1, 0x5]\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - movs r2, 0x4\n\ - orrs r0, r2\n\ - movs r2, 0xF\n\ - ands r0, r2\n\ - movs r2, 0x40\n\ - orrs r0, r2\n\ - strb r0, [r1, 0x5]\n\ - movs r2, 0\n\ - strh r2, [r1, 0x2E]\n\ - strh r2, [r1, 0x30]\n\ - strh r2, [r1, 0x32]\n\ - ldr r0, =0x0000ffff\n\ - strh r0, [r1, 0x34]\n\ - ldrh r0, [r1, 0x22]\n\ - strh r0, [r1, 0x36]\n\ - strh r2, [r1, 0x38]\n\ - ldr r1, =0x00003e41\n\ - movs r0, 0x50\n\ - bl SetGpuReg\n\ - ldr r1, =0x00000e0e\n\ - movs r0, 0x52\n\ - bl SetGpuReg\n\ - ldr r1, =0x00003f3f\n\ - movs r0, 0x48\n\ - bl SetGpuReg\n\ - ldr r0, =gUnknown_0855B610\n\ - movs r1, 0xC0\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ - movs r0, 0x12\n\ - movs r1, 0x78\n\ - bl SetGpuReg\n\ - movs r4, 0x3\n\ - ldr r7, =0x0600f800\n\ - ldr r0, =0x0000bff4\n\ - adds r6, r0, 0\n\ -_080B901A:\n\ - movs r2, 0xC\n\ - lsls r0, r4, 1\n\ - lsls r5, r4, 5\n\ - adds r0, r4\n\ - lsls r3, r0, 1\n\ -_080B9024:\n\ - adds r0, r5, r2\n\ - lsls r0, 1\n\ - adds r0, r7\n\ - adds r1, r2, r6\n\ - adds r1, r3, r1\n\ - adds r1, 0x1\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x11\n\ - bls _080B9024\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0xE\n\ - bls _080B901A\n\ - movs r0, 0\n\ - ldr r5, =gUnknown_0855B630\n\ -_080B904A:\n\ - movs r4, 0\n\ - adds r7, r0, 0x1\n\ - lsls r6, r0, 5\n\ -_080B9050:\n\ - lsls r1, r4, 2\n\ - adds r1, r6, r1\n\ - ldr r0, =0x06008020\n\ - adds r3, r1, r0\n\ - adds r0, r1, 0x1\n\ - adds r0, r5\n\ - ldrb r2, [r0]\n\ - lsls r2, 8\n\ - adds r0, r1, r5\n\ - ldrb r0, [r0]\n\ - adds r0, r2\n\ - strh r0, [r3]\n\ - ldr r0, =0x06008022\n\ - adds r3, r1, r0\n\ - adds r0, r1, 0x3\n\ - adds r0, r5\n\ - ldrb r2, [r0]\n\ - lsls r2, 8\n\ - adds r1, 0x2\n\ - adds r1, r5\n\ - ldrb r0, [r1]\n\ - adds r0, r2\n\ - strh r0, [r3]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x7\n\ - bls _080B9050\n\ - lsls r0, r7, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x59\n\ - bls _080B904A\n\ - mov r0, r8\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING u8 FldEff_NPCFlyOut(void) { - u8 spriteId; - struct Sprite *sprite; - spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1); - sprite = &gSprites[spriteId]; + u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.paletteNum = 0; sprite->oam.priority = 1; sprite->callback = sub_80B9128; @@ -3221,6 +2982,7 @@ u8 FldEff_NPCFlyOut(void) static void sub_80B9128(struct Sprite *sprite) { struct Sprite *npcSprite; + sprite->pos2.x = Cos(sprite->data[2], 0x8c); sprite->pos2.y = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; @@ -3241,8 +3003,7 @@ static void sub_80B9128(struct Sprite *sprite) u8 FldEff_UseFly(void) { - u8 taskId; - taskId = CreateTask(sub_80B91D4, 0xfe); + u8 taskId = CreateTask(sub_80B91D4, 0xfe); gTasks[taskId].data[1] = gFieldEffectArguments[0]; return 0; } @@ -3266,8 +3027,7 @@ static void sub_80B91D4(u8 taskId) static void sub_80B9204(struct Task *task) { - struct EventObject *eventObject; - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject)) { task->data[15] = gPlayerAvatar.flags; @@ -3281,8 +3041,7 @@ static void sub_80B9204(struct Task *task) static void sub_80B925C(struct Task *task) { - struct EventObject *eventObject; - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (EventObjectClearHeldMovementIfFinished(eventObject)) { task->data[0]++; @@ -3293,10 +3052,9 @@ static void sub_80B925C(struct Task *task) static void sub_80B92A0(struct Task *task) { - struct EventObject *eventObject; if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (task->data[15] & 0x08) { sub_81555AC(eventObject->fieldEffectSpriteId, 2); @@ -3320,8 +3078,7 @@ static void sub_80B92F8(struct Task *task) static void sub_80B933C(struct Task *task) { - struct EventObject *eventObject; - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if ((task->data[2] == 0 || (--task->data[2]) == 0) && EventObjectClearHeldMovementIfFinished(eventObject)) { task->data[0]++; @@ -3332,10 +3089,9 @@ static void sub_80B933C(struct Task *task) static void sub_80B9390(struct Task *task) { - struct EventObject *eventObject; if ((++task->data[2]) >= 8) { - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; EventObjectSetGraphicsId(eventObject, GetPlayerAvatarGraphicsIdByStateId(0x03)); StartSpriteAnim(&gSprites[eventObject->spriteId], 0x16); eventObject->inanimate = 1; @@ -3351,10 +3107,9 @@ static void sub_80B9390(struct Task *task) static void sub_80B9418(struct Task *task) { - struct EventObject *eventObject; if ((++task->data[2]) >= 10) { - eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; + struct EventObject *eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; EventObjectClearHeldMovementIfActive(eventObject); eventObject->inanimate = 0; eventObject->hasShadow = 0; @@ -3368,7 +3123,7 @@ static void sub_80B9474(struct Task *task) { if (sub_80B9508(task->data[1])) { - sub_80AF0B4(); + WarpFadeScreen(); task->data[0]++; } } @@ -3469,13 +3224,12 @@ static void sub_80B957C(struct Sprite *sprite) static void sub_80B963C(struct Sprite *sprite) { - struct Sprite *sprite1; sprite->pos2.x = Cos(sprite->data[2], 0x8c); sprite->pos2.y = Sin(sprite->data[2], 0x48); sprite->data[2] = (sprite->data[2] + 4) & 0xff; - if (sprite->data[6] != 0x40) + if (sprite->data[6] != MAX_SPRITES) { - sprite1 = &gSprites[sprite->data[6]]; + struct Sprite *sprite1 = &gSprites[sprite->data[6]]; sprite1->coordOffsetEnabled = 0; sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x; sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8; @@ -3837,7 +3591,7 @@ const union AnimCmd *const gSpriteAnimTable_855C5DC[] = { }; const struct SpriteTemplate gUnknown_0855C5EC = { - .tileTag = 0xffff, + .tileTag = 0xFFFF, .paletteTag = 4378, .oam = &gOamData_855C218, .anims = gSpriteAnimTable_855C5DC, @@ -3855,7 +3609,7 @@ void sub_80B9D24(struct Sprite* sprite) for (i = 0; i < 4; i++) { u8 spriteId = CreateSprite(&gUnknown_0855C5EC, xPos, yPos, 0); - if (spriteId != 0x40) + if (spriteId != MAX_SPRITES) { StartSpriteAnim(&gSprites[spriteId], i); gSprites[spriteId].data[0] = i; @@ -3868,22 +3622,22 @@ static void sub_80B9DB8(struct Sprite* sprite) { switch (sprite->data[0]) { - case 0: - sprite->pos1.x -= 16; - sprite->pos1.y -= 12; - break; - case 1: - sprite->pos1.x += 16; - sprite->pos1.y -= 12; - break; - case 2: - sprite->pos1.x -= 16; - sprite->pos1.y += 12; - break; - case 3: - sprite->pos1.x += 16; - sprite->pos1.y += 12; - break; + case 0: + sprite->pos1.x -= 16; + sprite->pos1.y -= 12; + break; + case 1: + sprite->pos1.x += 16; + sprite->pos1.y -= 12; + break; + case 2: + sprite->pos1.x -= 16; + sprite->pos1.y += 12; + break; + case 3: + sprite->pos1.x += 16; + sprite->pos1.y += 12; + break; } if ((u16)(sprite->pos1.x + 4) > 0xF8 || sprite->pos1.y < -4 || sprite->pos1.y > 0xA4) DestroySprite(sprite); diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 1f90c02b9..3046eccd5 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -1007,15 +1007,15 @@ void UpdateSurfBlobFieldEffect(struct Sprite *sprite) static void SynchroniseSurfAnim(struct EventObject *eventObject, struct Sprite *sprite) { u8 surfBlobDirectionAnims[] = { - 0, // DIR_NONE - 0, // DIR_SOUTH - 1, // DIR_NORTH - 2, // DIR_WEST - 3, // DIR_EAST - 0, - 0, - 1, - 1, + [DIR_NONE] = 0, + [DIR_SOUTH] = 0, + [DIR_NORTH] = 1, + [DIR_WEST] = 2, + [DIR_EAST] = 3, + [DIR_SOUTHWEST] = 0, + [DIR_SOUTHEAST] = 0, + [DIR_NORTHWEST] = 1, + [DIR_NORTHEAST] = 1, }; if (sub_8155640(sprite) == 0) @@ -1547,150 +1547,35 @@ void WaitFieldEffectSpriteAnim(struct Sprite *sprite) UpdateEventObjectSpriteVisibility(sprite, FALSE); } -#ifdef NONMATCHING -static void sub_81561FC(struct Sprite *sprite /*r6*/, u8 z, u8 offset) +static void sub_81561FC(struct Sprite *sprite, u8 z, u8 offset) { u8 i; - s16 xlo; - s16 xhi; - s16 lx; - s16 lyhi; - s16 ly; - s16 ylo; - s16 yhi; - struct EventObject *eventObject; // r4 - const struct EventObjectGraphicsInfo *graphicsInfo; // destroyed - struct Sprite *linkedSprite; // r5 + s16 var, xhi, lyhi, yhi, ylo; + const struct EventObjectGraphicsInfo *graphicsInfo; // Unused Variable + struct Sprite *linkedSprite; SetObjectSubpriorityByZCoord(z, sprite, offset); - for (i = 0; i < 16; i ++) + for (i = 0; i < EVENT_OBJECTS_COUNT; i ++) { - eventObject = &gEventObjects[i]; + struct EventObject *eventObject = &gEventObjects[i]; if (eventObject->active) { graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId); linkedSprite = &gSprites[eventObject->spriteId]; xhi = sprite->pos1.x + sprite->centerToCornerVecX; - xlo = sprite->pos1.x - sprite->centerToCornerVecX; - lx = linkedSprite->pos1.x; - if (xhi < lx && xlo > lx) + var = sprite->pos1.x - sprite->centerToCornerVecX; + if (xhi < linkedSprite->pos1.x && var > linkedSprite->pos1.x) { lyhi = linkedSprite->pos1.y + linkedSprite->centerToCornerVecY; - ly = linkedSprite->pos1.y; + var = linkedSprite->pos1.y; ylo = sprite->pos1.y - sprite->centerToCornerVecY; yhi = ylo + linkedSprite->centerToCornerVecY; - if ((lyhi < yhi || lyhi < ylo) && ly > yhi) + if ((lyhi < yhi || lyhi < ylo) && var > yhi && sprite->subpriority <= linkedSprite->subpriority) { - if (sprite->subpriority <= linkedSprite->subpriority) - { - sprite->subpriority = linkedSprite->subpriority + 2; - break; - } + sprite->subpriority = linkedSprite->subpriority + 2; + break; } } } } } -#else -NAKED void sub_81561FC(struct Sprite *sprite /*r6*/, u8 z, u8 offset) -{ - asm_unified("push {r4-r7,lr}\n\ - adds r6, r0, 0\n\ - adds r0, r1, 0\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - adds r1, r6, 0\n\ - bl SetObjectSubpriorityByZCoord\n\ - movs r7, 0\n\ -_08156212:\n\ - lsls r0, r7, 3\n\ - adds r0, r7\n\ - lsls r0, 2\n\ - ldr r1, =gEventObjects\n\ - adds r4, r0, r1\n\ - ldrb r0, [r4]\n\ - lsls r0, 31\n\ - cmp r0, 0\n\ - beq _081562B4\n\ - ldrb r0, [r4, 0x5]\n\ - bl GetEventObjectGraphicsInfo\n\ - ldrb r1, [r4, 0x4]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldr r1, =gSprites\n\ - adds r5, r0, r1\n\ - adds r0, r6, 0\n\ - adds r0, 0x28\n\ - movs r2, 0\n\ - ldrsb r2, [r0, r2]\n\ - ldrh r0, [r6, 0x20]\n\ - adds r1, r0, r2\n\ - subs r0, r2\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - lsls r1, 16\n\ - asrs r1, 16\n\ - movs r0, 0x20\n\ - ldrsh r2, [r5, r0]\n\ - cmp r1, r2\n\ - bge _081562B4\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - cmp r0, r2\n\ - ble _081562B4\n\ - adds r0, r5, 0\n\ - adds r0, 0x29\n\ - movs r3, 0\n\ - ldrsb r3, [r0, r3]\n\ - ldrh r2, [r5, 0x22]\n\ - adds r2, r3\n\ - ldrh r4, [r5, 0x22]\n\ - adds r0, r6, 0\n\ - adds r0, 0x29\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - ldrh r0, [r6, 0x22]\n\ - subs r0, r1\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - adds r3, r0, r3\n\ - lsls r2, 16\n\ - asrs r2, 16\n\ - lsls r3, 16\n\ - asrs r3, 16\n\ - cmp r2, r3\n\ - blt _0815628C\n\ - cmp r2, r0\n\ - bge _081562B4\n\ -_0815628C:\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - cmp r0, r3\n\ - ble _081562B4\n\ - adds r2, r6, 0\n\ - adds r2, 0x43\n\ - adds r0, r5, 0\n\ - adds r0, 0x43\n\ - ldrb r1, [r0]\n\ - ldrb r0, [r2]\n\ - cmp r0, r1\n\ - bhi _081562B4\n\ - adds r0, r1, 0x2\n\ - strb r0, [r2]\n\ - b _081562BE\n\ - .pool\n\ -_081562B4:\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - cmp r7, 0xF\n\ - bls _08156212\n\ -_081562BE:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); -} -#endif diff --git a/src/field_region_map.c b/src/field_region_map.c index 40f48e668..d49ce3a4e 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -3,7 +3,7 @@ #include "gpu_regs.h" #include "international_string_util.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "palette.h" #include "region_map.h" diff --git a/src/field_screen.c b/src/field_screen.c deleted file mode 100644 index 2d33d237f..000000000 --- a/src/field_screen.c +++ /dev/null @@ -1,15 +0,0 @@ - -// Includes -#include "global.h" - -// Static type declarations - -// Static RAM declarations -IWRAM_DATA u8 *gUnknown_03000F50; -IWRAM_DATA u32 filler_03000f54; - -// Static ROM declarations - -// .rodata - -// .text diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c new file mode 100644 index 000000000..b0572b393 --- /dev/null +++ b/src/field_screen_effect.c @@ -0,0 +1,1261 @@ +#include "global.h" +#include "cable_club.h" +#include "event_data.h" +#include "fieldmap.h" +#include "field_camera.h" +#include "field_door.h" +#include "field_effect.h" +#include "event_object_movement.h" +#include "field_player_avatar.h" +#include "field_screen_effect.h" +#include "field_special_scene.h" +#include "field_weather.h" +// #include "fldeff_flash.h" +#include "gpu_regs.h" +#include "link.h" +#include "link_rfu.h" +#include "load_save.h" +#include "main.h" +#include "menu.h" +#include "event_obj_lock.h" +#include "metatile_behavior.h" +#include "palette.h" +#include "overworld.h" +#include "scanline_effect.h" +#include "script.h" +#include "sound.h" +#include "start_menu.h" +#include "task.h" +#include "text.h" +#include "constants/event_object_movement_constants.h" +#include "constants/songs.h" +#include "constants/rgb.h" + +extern bool32 sub_81D6534(void); +extern bool8 walkrun_is_standing_still(void); +extern void ScriptUnfreezeEventObjects(void); +extern void sub_81BE72C(void); +extern void sub_80FB768(void); +extern void sub_808D194(void); +extern void sub_808D1C8(void); +extern bool32 sub_808D1B4(void); +extern bool32 sub_808D1E8(void); +extern void sub_80B6B68(void); +extern void sub_80B6E4C(u8, u8); +extern void sub_80B75D8(u8); +extern void sub_80B7A74(u8); +extern void sub_808C0A8(u8); +extern u8 GetMapPairFadeToType(u8, u8); +extern u8 GetMapPairFadeFromType(u8, u8); + +extern const u16 gUnknown_82EC7CC[]; + +// This file's functions. +static void sub_8080B9C(u8); +static void task_map_chg_seq_0807E20C(u8); +static void task_map_chg_seq_0807E2CC(u8); +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 void task0A_mpl_807E31C(u8 taskId); +static void sub_80AFA0C(u8 taskId); +static void sub_80AFA88(u8 taskId); +static void task50_0807F0C8(u8); + +// const +const u16 sFlashLevelPixelRadii[] = { 200, 72, 64, 56, 48, 40, 32, 24, 0 }; +const s32 gMaxFlashLevel = 8; + +const struct ScanlineEffectParams sFlashEffectParams = +{ + (void *)REG_ADDR_WIN0H, + ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, + 1 +}; + +// code +static void palette_bg_faded_fill_white(void) +{ + CpuFastFill16(RGB_WHITE, gPlttBufferFaded, PLTT_SIZE); +} + +static void palette_bg_faded_fill_black(void) +{ + CpuFastFill16(RGB_BLACK, gPlttBufferFaded, PLTT_SIZE); +} + +void pal_fill_for_maplights(void) +{ + u8 previousMapType = GetLastUsedWarpMapType(); + switch (GetMapPairFadeFromType(previousMapType, Overworld_GetMapTypeOfSaveblockLocation())) + { + case 0: + palette_bg_faded_fill_black(); + FadeScreen(FADE_FROM_BLACK, 0); + break; + case 1: + palette_bg_faded_fill_white(); + FadeScreen(FADE_FROM_WHITE, 0); + } +} + +static void sub_80AF08C(void) +{ + palette_bg_faded_fill_white(); + FadeScreen(FADE_FROM_WHITE, 8); +} + +void pal_fill_black(void) +{ + palette_bg_faded_fill_black(); + FadeScreen(FADE_FROM_BLACK, 0); +} + +void WarpFadeScreen(void) +{ + u8 currentMapType = Overworld_GetMapTypeOfSaveblockLocation(); + switch (GetMapPairFadeToType(currentMapType, GetDestinationWarpMapHeader()->mapType)) + { + case 0: + FadeScreen(FADE_TO_BLACK, 0); + break; + case 1: + FadeScreen(FADE_TO_WHITE, 0); + } +} + +static void sub_80AF0F4(u8 arg) +{ + sub_808C0A8(!arg); +} + +static void task0A_nop_for_a_while(u8 taskId) +{ + if (sub_80AF71C() == TRUE) + DestroyTask(taskId); +} + +void sub_80AF128(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + CreateTask(task0A_nop_for_a_while, 10); +} + +static void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskID) +{ + if (sub_80AF71C() == TRUE) + { + DestroyTask(taskID); + EnableBothScriptContexts(); + } +} + +void sub_80AF168(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10); +} + +void sub_80AF188(void) +{ + ScriptContext2_Enable(); + pal_fill_black(); + CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10); +} + +static void task_mpl_807DD60(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + task->data[1] = sub_80B3050(); + task->data[0]++; + break; + case 1: + if (gTasks[task->data[1]].isActive != TRUE) + { + pal_fill_for_maplights(); + task->data[0]++; + } + break; + case 2: + if (sub_80AF71C() == TRUE) + { + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +void sub_80AF214(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + palette_bg_faded_fill_black(); + CreateTask(task_mpl_807DD60, 10); +} + +static void sub_80AF234(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_800ADF8(); + task->data[0]++; + break; + case 1: + if (!sub_800A520()) + { + if (++task->data[1] > 1800) + sub_8011170(0x6000); + } + else + { + pal_fill_for_maplights(); + task->data[0]++; + } + break; + case 2: + if (sub_80AF71C() == TRUE) + { + sub_8009F18(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +void sub_80AF2B4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_800ADF8(); + task->data[0]++; + break; + case 1: + if (sub_800A520()) + { + task->data[0]++; + } + break; + case 2: + sub_8009F18(); + sub_8086C2C(); + ScriptContext2_Disable(); + DestroyTask(taskId); + break; + } +} + +void sub_80AF314(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + palette_bg_faded_fill_black(); + CreateTask(sub_80AF234, 10); +} + +static void sub_80AF334(void) +{ + s16 x, y; + u8 behavior; + TaskFunc func; + + PlayerGetDestCoords(&x, &y); + behavior = MapGridGetMetatileBehaviorAt(x, y); + if (MetatileBehavior_IsDoor(behavior) == TRUE) + func = sub_80AF438; + else if (MetatileBehavior_IsNonAnimDoor(behavior) == TRUE) + func = task_map_chg_seq_0807E20C; + else + func = task_map_chg_seq_0807E2CC; + CreateTask(func, 10); +} + +void mapldr_default(void) +{ + Overworld_PlaySpecialMapMusic(); + pal_fill_for_maplights(); + sub_80AF334(); + ScriptContext2_Enable(); +} + +void sub_80AF3B0(void) +{ + Overworld_PlaySpecialMapMusic(); + sub_80AF08C(); + sub_80AF334(); + ScriptContext2_Enable(); +} + +void sub_80AF3C8(void) +{ + if (!sub_81D6534()) + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + sub_80AF334(); + ScriptContext2_Enable(); +} + +void sub_80AF3E8(void) +{ + Overworld_PlaySpecialMapMusic(); + pal_fill_for_maplights(); + PlaySE(SE_TK_WARPOUT); + CreateTask(task0A_mpl_807E31C, 10); + ScriptContext2_Enable(); +} + +void sub_80AF40C(void) +{ + Overworld_PlaySpecialMapMusic(); + pal_fill_for_maplights(); + PlaySE(SE_TK_WARPOUT); + CreateTask(task_map_chg_seq_0807E2CC, 10); + ScriptContext2_Enable(); + sub_8085540(0xE); +} + +static void sub_80AF438(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + + switch (task->data[0]) + { + case 0: + sub_80AF0F4(0); + FreezeEventObjects(); + PlayerGetDestCoords(x, y); + FieldSetDoorOpened(*x, *y); + task->data[0] = 1; + break; + case 1: + if (sub_80AF71C()) + { + u8 eventObjId; + sub_80AF0F4(1); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_DOWN); + task->data[0] = 2; + } + break; + case 2: + if (walkrun_is_standing_still()) + { + u8 eventObjId; + task->data[1] = FieldAnimateDoorClose(*x, *y); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]); + task->data[0] = 3; + } + break; + case 3: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + UnfreezeEventObjects(); + task->data[0] = 4; + } + break; + case 4: + ScriptContext2_Disable(); + DestroyTask(taskId); + break; + } +} + +static void task_map_chg_seq_0807E20C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + + switch (task->data[0]) + { + case 0: + sub_80AF0F4(0); + FreezeEventObjects(); + PlayerGetDestCoords(x, y); + task->data[0] = 1; + break; + case 1: + if (sub_80AF71C()) + { + u8 eventObjId; + sub_80AF0F4(1); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectSetHeldMovement(&gEventObjects[eventObjId], GetWalkNormalMovementAction(GetPlayerFacingDirection())); + task->data[0] = 2; + } + break; + case 2: + if (walkrun_is_standing_still()) + { + UnfreezeEventObjects(); + task->data[0] = 3; + } + break; + case 3: + ScriptContext2_Disable(); + DestroyTask(taskId); + break; + } +} + +static void task_map_chg_seq_0807E2CC(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + gTasks[taskId].data[0]++; + break; + case 1: + if (sub_80AF71C()) + { + UnfreezeEventObjects(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +static void sub_80AF660(u8 taskId) +{ + if (sub_80AF71C() == TRUE) + { + DestroyTask(taskId); + CreateTask(sub_809FA34, 80); + } +} + +void sub_80AF688(void) +{ + pal_fill_black(); + CreateTask(sub_80AF660, 0x50); + ScriptContext2_Enable(); +} + +bool8 sub_80AF6A4(void) +{ + sub_809FA18(); + return FALSE; +} + +static void task_mpl_807E3C8(u8 taskId) +{ + if (sub_80AF71C() == 1) + { + ScriptContext2_Disable(); + DestroyTask(taskId); + ScriptUnfreezeEventObjects(); + } +} + +void sub_80AF6D4(void) +{ + ScriptContext2_Enable(); + pal_fill_black(); + CreateTask(task_mpl_807E3C8, 10); +} + +void sub_80AF6F0(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + pal_fill_black(); + CreateTask(task_mpl_807E3C8, 10); +} + +static bool32 PaletteFadeActive(void) +{ + return gPaletteFade.active; +} + +static bool32 sub_80AF71C(void) +{ + if (IsWeatherNotFadingIn() == TRUE) + return TRUE; + else + return FALSE; +} + +void sub_80AF734(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + PlaySE(SE_KAIDAN); + gFieldCallback = mapldr_default; + CreateTask(sub_80AFA0C, 10); +} + +void sp13E_warp_to_last_warp(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + gFieldCallback = mapldr_default; + CreateTask(sub_80AFA0C, 10); +} + +void sub_80AF79C(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + FadeScreen(FADE_TO_WHITE, 8); + PlayRainSoundEffect(); + gFieldCallback = sub_80AF3B0; + CreateTask(sub_80AFA0C, 10); +} + +void sub_80AF7D0(void) +{ + ScriptContext2_Enable(); + gFieldCallback = mapldr_default; + CreateTask(sub_80AFA88, 10); +} + +void sp13F_fall_to_last_warp(void) +{ + sp13E_warp_to_last_warp(); + gFieldCallback = sub_80B6B68; +} + +void sub_80AF80C(u8 metatileBehavior) +{ + ScriptContext2_Enable(); + sub_80B6E4C(metatileBehavior, 10); +} + +void sub_80AF828(void) +{ + ScriptContext2_Enable(); + sub_80B75D8(10); +} + +void sub_80AF838(void) +{ + ScriptContext2_Enable(); + sub_80B7A74(10); +} + +void sub_80AF848(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlaySE(SE_TK_WARPIN); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80AF3E8; +} + +void sub_80AF87C(void) +{ + sub_8085540(1); + ScriptContext2_Enable(); + SaveEventObjects(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlaySE(SE_TK_WARPIN); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80AF40C; +} + +void sub_80AF8B8(void) +{ + ScriptContext2_Enable(); + WarpFadeScreen(); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80FB768; +} + +static void sub_80AF8E0(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + ScriptContext2_Enable(); + task->data[0]++; + break; + case 1: + if (!PaletteFadeActive() && BGMusicStopped()) + task->data[0]++; + break; + case 2: + WarpIntoMap(); + SetMainCallback2(sub_8086074); + DestroyTask(taskId); + break; + } +} + +void sub_80AF948(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlaySE(SE_KAIDAN); + CreateTask(sub_80AF8E0, 10); +} + +static void sub_80AF96C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + ClearLinkCallback_2(); + FadeScreen(FADE_TO_BLACK, 0); + TryFadeOutOldMapMusic(); + PlaySE(SE_KAIDAN); + data[0]++; + break; + case 1: + if (!PaletteFadeActive() && BGMusicStopped()) + { + sub_800AC34(); + data[0]++; + } + break; + case 2: + if (!gReceivedRemoteLinkPlayers) + { + WarpIntoMap(); + SetMainCallback2(CB2_LoadMap); + DestroyTask(taskId); + } + break; + } +} + +void sub_80AF9F8(void) +{ + CreateTask(sub_80AF96C, 10); +} + +static void sub_80AFA0C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + task->data[0]++; + break; + case 1: + if (!PaletteFadeActive()) + { + if (task->data[1] == 0) + { + sub_81BE72C(); + task->data[1] = 1; + } + if (BGMusicStopped()) + task->data[0]++; + } + break; + case 2: + WarpIntoMap(); + SetMainCallback2(CB2_LoadMap); + DestroyTask(taskId); + break; + } +} + +static void sub_80AFA88(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *x = &task->data[2]; + s16 *y = &task->data[3]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + PlayerGetDestCoords(x, y); + PlaySE(GetDoorSoundEffect(*x, *y - 1)); + task->data[1] = FieldAnimateDoorOpen(*x, *y - 1); + task->data[0] = 1; + break; + case 1: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + u8 eventObjId; + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectClearHeldMovementIfActive(&gEventObjects[eventObjId]); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectSetHeldMovement(&gEventObjects[eventObjId], MOVEMENT_ACTION_WALK_NORMAL_UP); + task->data[0] = 2; + } + break; + case 2: + if (walkrun_is_standing_still()) + { + u8 eventObjId; + task->data[1] = FieldAnimateDoorClose(*x, *y - 1); + eventObjId = GetEventObjectIdByLocalIdAndMap(0xFF, 0, 0); + EventObjectClearHeldMovementIfFinished(&gEventObjects[eventObjId]); + sub_80AF0F4(0); + task->data[0] = 3; + } + break; + case 3: + if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE) + { + task->data[0] = 4; + } + break; + case 4: + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + task->data[0] = 0; + task->func = sub_80AFA0C; + break; + } +} + +static void task0A_fade_n_map_maybe(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + task->data[0]++; + break; + case 1: + if (!PaletteFadeActive() && BGMusicStopped()) + { + task->data[0]++; + } + break; + case 2: + WarpIntoMap(); + SetMainCallback2(sub_8086024); + DestroyTask(taskId); + break; + } +} + +void sub_80AFC60(void) +{ + ScriptContext2_Enable(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); + PlayRainSoundEffect(); + PlaySE(SE_KAIDAN); + gFieldCallback = sub_80AF3C8; + CreateTask(task0A_fade_n_map_maybe, 10); +} + +static void SetFlashScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) +{ + if (y <= 160) + { + if (left < 0) + left = 0; + if (left > 255) + left = 255; + if (right < 0) + right = 0; + if (right > 255) + right = 255; + dest[y] = (left << 8) | right; + } +} + +static void SetFlashScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius) +{ + s32 r = radius; + s32 v2 = radius; + s32 v3 = 0; + while (r >= v3) + { + SetFlashScanlineEffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r); + SetFlashScanlineEffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r); + SetFlashScanlineEffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3); + SetFlashScanlineEffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3); + v2 -= (v3 * 2) - 1; + v3++; + if (v2 < 0) + { + v2 += 2 * (r - 1); + r--; + } + } +} + +static void SetFlash2ScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) +{ + if (y <= 160) + { + if (left < 0) + left = 0; + if (left > 240) + left = 240; + if (right < 0) + right = 0; + if (right > 240) + right = 240; + dest[y] = (left << 8) | right; + } +} + +static void SetFlash2ScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius) +{ + s32 r = radius; + s32 v2 = radius; + s32 v3 = 0; + while (r >= v3) + { + SetFlash2ScanlineEffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r); + SetFlash2ScanlineEffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r); + SetFlash2ScanlineEffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3); + SetFlash2ScanlineEffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3); + v2 -= (v3 * 2) - 1; + v3++; + if (v2 < 0) + { + v2 += 2 * (r - 1); + r--; + } + } +} + +#define tFlashCenterX data[1] +#define tFlashCenterY data[2] +#define tCurFlashRadius data[3] +#define tDestFlashRadius data[4] +#define tFlashRadiusDelta data[5] +#define tClearScanlineEffect data[6] + +static void UpdateFlashLevelEffect(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 1; + break; + case 1: + SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 0; + tCurFlashRadius += tFlashRadiusDelta; + if (tCurFlashRadius > tDestFlashRadius) + { + if (tClearScanlineEffect == 1) + { + ScanlineEffect_Stop(); + data[0] = 2; + } + else + { + DestroyTask(taskId); + } + } + break; + case 2: + ScanlineEffect_Clear(); + DestroyTask(taskId); + break; + } +} + +static void UpdateFlash2LevelEffect(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + SetFlash2ScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 1; + break; + case 1: + SetFlash2ScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); + data[0] = 0; + tCurFlashRadius += tFlashRadiusDelta; + if (tCurFlashRadius > tDestFlashRadius) + { + if (tClearScanlineEffect == 1) + { + ScanlineEffect_Stop(); + data[0] = 2; + } + else + { + DestroyTask(taskId); + } + } + break; + case 2: + ScanlineEffect_Clear(); + DestroyTask(taskId); + break; + } +} + +static void sub_80AFF90(u8 taskId) +{ + if (!FuncIsActiveTask(UpdateFlashLevelEffect)) + { + EnableBothScriptContexts(); + DestroyTask(taskId); + } +} + +static void sub_80AFFB8(void) +{ + if (!FuncIsActiveTask(sub_80AFF90)) + CreateTask(sub_80AFF90, 80); +} + +static u8 sub_80AFFDC(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) +{ + u8 taskId = CreateTask(UpdateFlashLevelEffect, 80); + s16 *data = gTasks[taskId].data; + + tCurFlashRadius = initialFlashRadius; + tDestFlashRadius = destFlashRadius; + tFlashCenterX = centerX; + tFlashCenterY = centerY; + tClearScanlineEffect = clearScanlineEffect; + + if (initialFlashRadius < destFlashRadius) + tFlashRadiusDelta = delta; + else + tFlashRadiusDelta = -delta; + + return taskId; +} + +static u8 sub_80B003C(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) +{ + u8 taskId = CreateTask(UpdateFlash2LevelEffect, 80); + s16 *data = gTasks[taskId].data; + + tCurFlashRadius = initialFlashRadius; + tDestFlashRadius = destFlashRadius; + tFlashCenterX = centerX; + tFlashCenterY = centerY; + tClearScanlineEffect = clearScanlineEffect; + + if (initialFlashRadius < destFlashRadius) + tFlashRadiusDelta = delta; + else + tFlashRadiusDelta = -delta; + + return taskId; +} + +#undef tCurFlashRadius +#undef tDestFlashRadius +#undef tFlashRadiusDelta +#undef tClearScanlineEffect + +void sub_80B009C(u8 flashLevel) +{ + u8 curFlashLevel = Overworld_GetFlashLevel(); + u8 value = 0; + if (!flashLevel) + value = 1; + sub_80AFFDC(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); + sub_80AFFB8(); + ScriptContext2_Enable(); +} + +void WriteFlashScanlineEffectBuffer(u8 flashLevel) +{ + if (flashLevel) + { + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); + CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); + } +} + +void door_upload_tiles(void) +{ + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.field_E68); + CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); +} + +static void task0A_mpl_807E31C(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + sub_808D194(); + gTasks[taskId].data[0]++; + break; + case 1: + if (sub_80AF71C() && sub_808D1B4() != TRUE) + { + UnfreezeEventObjects(); + ScriptContext2_Disable(); + DestroyTask(taskId); + } + break; + } +} + +static void sub_80B01BC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + FreezeEventObjects(); + ScriptContext2_Enable(); + PlaySE(SE_TK_WARPIN); + sub_808D1C8(); + task->data[0]++; + break; + case 1: + if (!sub_808D1E8()) + { + WarpFadeScreen(); + task->data[0]++; + } + break; + case 2: + if (!PaletteFadeActive() && BGMusicStopped()) + task->data[0]++; + break; + case 3: + WarpIntoMap(); + SetMainCallback2(CB2_LoadMap); + DestroyTask(taskId); + break; + } +} + +void sub_80B0244(void) +{ + ScriptContext2_Enable(); + CreateTask(sub_80AFA0C, 10); + gFieldCallback = sub_80AF3E8; +} + +void sub_80B0268(void) +{ + ScriptContext2_Enable(); + gFieldCallback = mapldr_default; + CreateTask(sub_80B01BC, 10); +} + +static void sub_80B028C(u8 a1) +{ + int i; + u16 color[1]; + + if (!a1) + color[0] = RGB_RED; + else + color[0] = RGB_BLUE; + + for (i = 0; i < 16; i++) + { + LoadPalette(color, 0xF0 + i, 2); + } +} + +static bool8 sub_80B02C8(u16 a1) +{ + u8 lo = REG_BLDALPHA & 0xFF; + u8 hi = REG_BLDALPHA >> 8; + + if (a1) + { + if (lo) + { + lo--; + } + } + else + { + if (hi < 0x10) + { + hi++; + } + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(lo, hi)); + + if (lo == 0 && hi == 0x10) + return TRUE; + else + return FALSE; +} + +static void sub_80B0318(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + data[6] = REG_DISPCNT; + data[7] = REG_BLDCNT; + data[8] = REG_BLDALPHA; + data[9] = REG_WININ; + data[10] = REG_WINOUT; + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); + SetGpuRegBits(REG_OFFSET_BLDCNT, gUnknown_82EC7CC[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 7)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ); + sub_8199C30(0, 0, 0, 0x1E, 0x14, 0xF); + schedule_bg_copy_tilemap_to_vram(0); + SetFlash2ScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1); + CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); + ScanlineEffect_SetParams(sFlashEffectParams); + data[0] = 1; + break; + case 1: + sub_8199DF0(0, 17, 0, 1); + sub_80B028C(data[1]); + sub_80B003C(data[2], data[3], 1, 160, 1, 2); + data[0] = 2; + break; + case 2: + if (!FuncIsActiveTask(UpdateFlash2LevelEffect)) + { + EnableBothScriptContexts(); + data[0] = 3; + } + break; + case 3: + InstallCameraPanAheadCallback(); + SetCameraPanningCallback(NULL); + data[5] = 0; + data[4] = 4; + data[0] = 4; + break; + case 4: + data[4]--; + if (!data[4]) + { + s32 panning; + data[4] = 4; + data[5] ^= 1; + if (data[5]) + panning = 4; + else + panning = -4; + SetCameraPanning(0, panning); + } + break; + case 6: + InstallCameraPanAheadCallback(); + data[4] = 8; + data[0] = 7; + break; + case 7: + data[4]--; + if (!data[4]) + { + data[4] = 8; + data[5] ^= 1; + if (sub_80B02C8(data[5]) == TRUE) + { + data[0] = 5; + sub_8199DF0(0, 0, 0, 1); + } + } + break; + case 5: + SetGpuReg(REG_OFFSET_WIN0H, 255); + SetGpuReg(REG_OFFSET_DISPCNT, data[6]); + SetGpuReg(REG_OFFSET_BLDCNT, data[7]); + SetGpuReg(REG_OFFSET_BLDALPHA, data[8]); + SetGpuReg(REG_OFFSET_WININ, data[9]); + SetGpuReg(REG_OFFSET_WINOUT, data[10]); + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + } +} + +void sub_80B0534(void) +{ + u8 taskId = CreateTask(sub_80B0318, 80); + s16 *data = gTasks[taskId].data; + + if (gSpecialVar_Result == 0) + { + data[1] = 0; + data[2] = 104; + } + else if (gSpecialVar_Result == 1) + { + data[1] = 1; + data[2] = 136; + } + else if (gSpecialVar_Result == 2) + { + data[1] = 0; + data[2] = 120; + } + else + { + data[1] = 1; + data[2] = 120; + } + + data[3] = 80; +} + +void sub_80B058C(void) +{ + u8 taskId = FindTaskIdByFunc(sub_80B0318); + gTasks[taskId].data[0] = 6; +} + +void sub_80B05B4(void) +{ + Overworld_FadeOutMapMusic(); + CreateTask(task50_0807F0C8, 80); +} + +static void task50_0807F0C8(u8 taskId) +{ + if (BGMusicStopped() == TRUE) + { + DestroyTask(taskId); + EnableBothScriptContexts(); + } +} diff --git a/src/field_specials.c b/src/field_specials.c index 562127890..3a50e272e 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -12,7 +12,7 @@ #include "field_effect.h" #include "field_message_box.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_specials.h" #include "field_weather.h" #include "international_string_util.h" @@ -20,7 +20,7 @@ #include "link.h" #include "list_menu.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "match_call.h" #include "menu.h" #include "overworld.h" @@ -1691,26 +1691,36 @@ const struct WindowTemplate gUnknown_085B2BAC = { }; const u8 *const gElevatorFloorsTable[] = { - gText_B4F, - gText_B3F, - gText_B2F, - gText_B1F, - gText_1F, - gText_2F, - gText_3F, - gText_4F, - gText_5F, - gText_6F, - gText_7F, - gText_8F, - gText_9F, - gText_10F, - gText_11F, - gText_Rooftop + gText_B4F, + gText_B3F, + gText_B2F, + gText_B1F, + gText_1F, + gText_2F, + gText_3F, + gText_4F, + gText_5F, + gText_6F, + gText_7F, + gText_8F, + gText_9F, + gText_10F, + gText_11F, + gText_Rooftop }; -const u16 gUnknown_085B2BF4[] = { 0x0329, 0x032a, 0x032b, 0x0331, 0x0332, 0x0333, 0x0339, 0x033a, 0x033b }; -const u16 gUnknown_085B2C06[] = { 0x0329, 0x032b, 0x032a, 0x0331, 0x0333, 0x0332, 0x0339, 0x033b, 0x033a }; +const u16 gUnknown_085B2BF4[][3] = +{ + {0x0329, 0x032a, 0x032b}, + {0x0331, 0x0332, 0x0333}, + {0x0339, 0x033a, 0x033b}, +}; +const u16 gUnknown_085B2C06[][3] = +{ + {0x0329, 0x032b, 0x032a}, + {0x0331, 0x0333, 0x0332}, + {0x0339, 0x033b, 0x033a}, +}; void SetDepartmentStoreFloorVar(void) { @@ -1866,9 +1876,6 @@ static void sub_8139C2C(u16 a1, u8 a2) } } -// Annoyingly close but compiler wants to add all the parts of the index into the arrays -// first and then shift by one, whereas we need each individual part to shift and then be added. -#ifdef NONMATCHING static void sub_8139C80(u8 taskId) { u8 x, y; @@ -1883,7 +1890,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y * 3 + data[0] % 3] | 0xC00); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | 0xC00); } } } @@ -1893,7 +1900,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y * 3 + data[0] % 3] | 0xC00); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | 0xC00); } } } @@ -1906,148 +1913,6 @@ static void sub_8139C80(u8 taskId) } data[1]++; } -#else -NAKED -static void sub_8139C80(u8 taskId) -{ - asm_unified("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp]\n\ - lsls r0, 2\n\ - ldr r1, [sp]\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - ldr r1, =gTasks + 0x8\n\ - adds r6, r0, r1\n\ - movs r2, 0x2\n\ - ldrsh r0, [r6, r2]\n\ - cmp r0, 0x6\n\ - bne _08139D7C\n\ - ldrh r0, [r6]\n\ - adds r0, 0x1\n\ - strh r0, [r6]\n\ - movs r1, 0x4\n\ - ldrsh r0, [r6, r1]\n\ - cmp r0, 0\n\ - bne _08139D10\n\ - movs r1, 0\n\ - ldr r2, =gUnknown_085B2BF4\n\ - mov r10, r2\n\ -_08139CBA:\n\ - movs r5, 0\n\ - adds r7, r1, 0x7\n\ - lsls r0, r1, 1\n\ - adds r2, r1, 0x1\n\ - mov r8, r2\n\ - adds r0, r1\n\ - lsls r0, 1\n\ - mov r9, r0\n\ -_08139CCA:\n\ - adds r4, r5, 0\n\ - adds r4, 0x8\n\ - movs r1, 0\n\ - ldrsh r0, [r6, r1]\n\ - movs r1, 0x3\n\ - bl __modsi3\n\ - lsls r0, 16\n\ - asrs r0, 15\n\ - add r0, r9\n\ - add r0, r10\n\ - ldrh r0, [r0]\n\ - movs r1, 0xC0\n\ - lsls r1, 4\n\ - adds r2, r1, 0\n\ - orrs r2, r0\n\ - adds r0, r4, 0\n\ - adds r1, r7, 0\n\ - bl MapGridSetMetatileIdAt\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, 0x2\n\ - bls _08139CCA\n\ - mov r2, r8\n\ - lsls r0, r2, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x2\n\ - bls _08139CBA\n\ - b _08139D62\n\ - .pool\n\ -_08139D10:\n\ - movs r1, 0\n\ - ldr r0, =gUnknown_085B2C06\n\ - mov r10, r0\n\ -_08139D16:\n\ - movs r5, 0\n\ - adds r7, r1, 0x7\n\ - lsls r0, r1, 1\n\ - adds r2, r1, 0x1\n\ - mov r8, r2\n\ - adds r0, r1\n\ - lsls r0, 1\n\ - mov r9, r0\n\ -_08139D26:\n\ - adds r4, r5, 0\n\ - adds r4, 0x8\n\ - movs r1, 0\n\ - ldrsh r0, [r6, r1]\n\ - movs r1, 0x3\n\ - bl __modsi3\n\ - lsls r0, 16\n\ - asrs r0, 15\n\ - add r0, r9\n\ - add r0, r10\n\ - ldrh r0, [r0]\n\ - movs r1, 0xC0\n\ - lsls r1, 4\n\ - adds r2, r1, 0\n\ - orrs r2, r0\n\ - adds r0, r4, 0\n\ - adds r1, r7, 0\n\ - bl MapGridSetMetatileIdAt\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, 0x2\n\ - bls _08139D26\n\ - mov r2, r8\n\ - lsls r0, r2, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x2\n\ - bls _08139D16\n\ -_08139D62:\n\ - bl DrawWholeMapView\n\ - movs r0, 0\n\ - strh r0, [r6, 0x2]\n\ - movs r0, 0\n\ - ldrsh r1, [r6, r0]\n\ - movs r2, 0x6\n\ - ldrsh r0, [r6, r2]\n\ - cmp r1, r0\n\ - bne _08139D7C\n\ - ldr r0, [sp]\n\ - bl DestroyTask\n\ -_08139D7C:\n\ - ldrh r0, [r6, 0x2]\n\ - adds r0, 0x1\n\ - strh r0, [r6, 0x2]\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool"); -} -#endif // NAKED void sub_8139D98(void) { @@ -2069,7 +1934,7 @@ void sub_8139D98(void) } gSpecialVar_0x8006 = 0; - gSpecialVar_0x8007 = ivStorage[STAT_HP]; + gSpecialVar_0x8007 = ivStorage[STAT_HP]; for (i = 1; i < NUM_STATS; i++) { @@ -2092,7 +1957,7 @@ void sub_8139D98(void) bool32 warp0_in_pokecenter(void) { - static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff }; + static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xFFFF }; int i; u16 map = (gLastUsedWarp.mapGroup << 8) + gLastUsedWarp.mapNum; @@ -3081,10 +2946,10 @@ void sub_813AA44(void) static void sub_813AA60(u16 a0, u16 a1) { - static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff }; - static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff }; - static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff }; - static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff }; + static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xFFFF }; + static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xFFFF }; + static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xFFFF }; + static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xFFFF }; static const u8 *const gUnknown_085B3170[] = { BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA, @@ -3976,7 +3841,7 @@ bool32 sub_813B9C0(void) MAP_TRADE_CENTER, MAP_RECORD_CORNER, MAP_DOUBLE_BATTLE_COLOSSEUM, - 0xffff + 0xFFFF }; int i; diff --git a/src/field_weather.c b/src/field_weather.c new file mode 100644 index 000000000..f0615dabf --- /dev/null +++ b/src/field_weather.c @@ -0,0 +1,1095 @@ +#include "global.h" +#include "constants/songs.h" +#include "constants/weather.h" +#include "constants/rgb.h" +#include "util.h" +#include "event_object_movement.h" +#include "field_weather.h" +#include "main.h" +#include "menu.h" +#include "palette.h" +#include "random.h" +#include "script.h" +#include "start_menu.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "gpu_regs.h" + +#define MACRO1(color) ((((color) >> 1) & 0xF) | (((color) >> 2) & 0xF0) | (((color) >> 3) & 0xF00)) + +enum +{ + GAMMA_NONE, + GAMMA_NORMAL, + GAMMA_ALT, +}; + +struct RGBColor +{ + u16 r:5; + u16 g:5; + u16 b:5; +}; + +struct WeatherPaletteData +{ + u16 gammaShiftColors[8][0x1000]; // 0x1000 is the number of bytes that make up all palettes. +}; + +struct WeatherCallbacks +{ + void (*initVars)(void); + void (*main)(void); + void (*initAll)(void); + bool8 (*finish)(void); +}; + +// This file's functions. +static bool8 LightenSpritePaletteInFog(u8); +static void BuildGammaShiftTables(void); +static void UpdateWeatherGammaShift(void); +static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex); +static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaIndex, u8 blendCoeff, u16 blendColor); +static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 blendColor); +static void ApplyFogBlend(u8 blendCoeff, u16 blendColor); +static bool8 FadeInScreen_RainShowShade(void); +static bool8 FadeInScreen_Drought(void); +static bool8 FadeInScreen_Fog1(void); +static void FadeInScreenWithWeather(void); +static void DoNothing(void); +static void Task_WeatherInit(u8 taskId); +static void Task_WeatherMain(u8 taskId); +static void None_Init(void); +static void None_Main(void); +static u8 None_Finish(void); + +// EWRAM +EWRAM_DATA struct Weather gWeather = {0}; +EWRAM_DATA static u8 sFieldEffectPaletteGammaTypes[32] = {0}; + +// IWRAM bss +IWRAM_DATA static const u8 *sPaletteGammaTypes; + +// CONST +extern const u16 gUnknown_0854014C[][4096]; + +// This is a pointer to gWeather. All code in this file accesses gWeather directly, +// while code in other field weather files accesses gWeather through this pointer. +// This is likely the result of compiler optimization, since using the pointer in +// this file produces the same result as accessing gWeather directly. +struct Weather *const gWeatherPtr = &gWeather; + +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}, + {LightRain_InitVars, LightRain_Main, LightRain_InitAll, LightRain_Finish}, + {Snow_InitVars, Snow_Main, Snow_InitAll, Snow_Finish}, + {MedRain_InitVars, Rain_Main, MedRain_InitAll, Rain_Finish}, + {Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish}, + {Ash_InitVars, Ash_Main, Ash_InitAll, Ash_Finish}, + {Sandstorm_InitVars, Sandstorm_Main, Sandstorm_InitAll, Sandstorm_Finish}, + {Fog2_InitVars, Fog2_Main, Fog2_InitAll, Fog2_Finish}, + {Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish}, + {Shade_InitVars, Shade_Main, Shade_InitAll, Shade_Finish}, + {Drought_InitVars, Drought_Main, Drought_InitAll, Drought_Finish}, + {HeavyRain_InitVars, Rain_Main, HeavyRain_InitAll, Rain_Finish}, + {Bubbles_InitVars, Bubbles_Main, Bubbles_InitAll, Bubbles_Finish}, +}; + +void (*const gWeatherPalStateFuncs[])(void) = +{ + UpdateWeatherGammaShift, // WEATHER_PAL_STATE_CHANGING_WEATHER + FadeInScreenWithWeather, // WEATHER_PAL_STATE_SCREEN_FADING_IN + DoNothing, // WEATHER_PAL_STATE_SCREEN_FADING_OUT + DoNothing, // WEATHER_PAL_STATE_IDLE +}; + +// This table specifies which of the gamma shift tables should be +// applied to each of the background and sprite palettes. +static const u8 sBasePaletteGammaTypes[32] = +{ + // background palettes + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NONE, + GAMMA_NONE, + // sprite palettes + GAMMA_ALT, + GAMMA_NORMAL, + GAMMA_ALT, + GAMMA_ALT, + GAMMA_ALT, + GAMMA_ALT, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_ALT, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, + GAMMA_NORMAL, +}; + +const u16 gUnknown_083970E8[] = INCBIN_U16("graphics/weather/0.gbapal"); + +// code +void StartWeather(void) +{ + if (!FuncIsActiveTask(Task_WeatherMain)) + { + u8 index = AllocSpritePalette(0x1200); + CpuCopy32(gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32); + BuildGammaShiftTables(); + gWeatherPtr->altGammaSpritePalIndex = index; + gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(0x1201); + gWeatherPtr->rainSpriteCount = 0; + gWeatherPtr->unknown_6D8 = 0; + gWeatherPtr->cloudSpritesCreated = 0; + gWeatherPtr->snowflakeSpriteCount = 0; + gWeatherPtr->ashSpritesCreated = 0; + gWeatherPtr->fog1SpritesCreated = 0; + gWeatherPtr->fog2SpritesCreated = 0; + gWeatherPtr->sandstormSprites1Created = 0; + gWeatherPtr->sandstormSprites2Created = 0; + gWeatherPtr->unknown_72E = 0; + gWeatherPtr->lightenedFogSpritePalsCount = 0; + Weather_SetBlendCoeffs(16, 0); + gWeatherPtr->currWeather = 0; + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; + gWeatherPtr->readyForInit = FALSE; + gWeatherPtr->weatherChangeComplete = TRUE; + gWeatherPtr->taskId = CreateTask(Task_WeatherInit, 80); + } +} + +void ChangeWeather(u8 weather) +{ + if (weather != WEATHER_RAIN_LIGHT && weather != WEATHER_RAIN_MED && weather != WEATHER_RAIN_HEAVY) + { + PlayRainSoundEffect(); + } + + if (gWeatherPtr->nextWeather != weather && gWeatherPtr->currWeather == weather) + { + sWeatherFuncs[weather].initVars(); + } + + gWeatherPtr->weatherChangeComplete = FALSE; + gWeatherPtr->nextWeather = weather; + gWeatherPtr->finishStep = 0; +} + +void sub_80AB104(u8 weather) +{ + PlayRainSoundEffect(); + gWeatherPtr->currWeather = weather; + gWeatherPtr->nextWeather = weather; +} + +void sub_80AB130(u8 weather) +{ + PlayRainSoundEffect(); + gWeatherPtr->currWeather = weather; + gWeatherPtr->nextWeather = weather; + gWeatherPtr->readyForInit = TRUE; +} + +static void Task_WeatherInit(u8 taskId) +{ + // Waits until it's ok to initialize weather. + // When the screen fades in, this is set to TRUE. + if (gWeatherPtr->readyForInit) + { + sWeatherFuncs[gWeatherPtr->currWeather].initAll(); + gTasks[taskId].func = Task_WeatherMain; + } +} + +static void Task_WeatherMain(u8 taskId) +{ + if (gWeatherPtr->currWeather != gWeatherPtr->nextWeather) + { + 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(); + gWeatherPtr->gammaStepFrameCounter = 0; + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_CHANGING_WEATHER; + gWeatherPtr->currWeather = gWeatherPtr->nextWeather; + gWeatherPtr->weatherChangeComplete = TRUE; + } + } + else + { + sWeatherFuncs[gWeatherPtr->currWeather].main(); + } + + gWeatherPalStateFuncs[gWeatherPtr->palProcessingState](); +} + +static void None_Init(void) +{ + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 0; +} + +static void None_Main(void) +{ +} + +static u8 None_Finish(void) +{ + return 0; +} + +// Builds two tables that contain gamma shifts for palette colors. +// It's unclear why the two tables aren't declared as const arrays, since +// this function always builds the same two tables. +static void BuildGammaShiftTables(void) +{ + u16 v0; + u8 (*gammaTable)[32]; + u16 v2; + u16 v4; + u16 v5; + u16 gammaIndex; + u16 v9; + u32 v10; + u16 v11; + s16 dunno; + + sPaletteGammaTypes = sBasePaletteGammaTypes; + for (v0 = 0; v0 <= 1; v0++) + { + if (v0 == 0) + gammaTable = gWeatherPtr->gammaShifts; + else + gammaTable = gWeatherPtr->altGammaShifts; + + for (v2 = 0; v2 < 32; v2++) + { + v4 = v2 << 8; + if (v0 == 0) + v5 = (v2 << 8) / 16; + else + v5 = 0; + for (gammaIndex = 0; gammaIndex <= 2; gammaIndex++) + { + v4 = (v4 - v5); + gammaTable[gammaIndex][v2] = v4 >> 8; + } + v9 = v4; + v10 = 0x1f00 - v4; + if ((0x1f00 - v4) < 0) + { + v10 += 0xf; + } + v11 = v10 >> 4; + if (v2 < 12) + { + for (; gammaIndex < 19; gammaIndex++) + { + v4 += v11; + dunno = v4 - v9; + if (dunno > 0) + v4 -= (dunno + ((u16)dunno >> 15)) >> 1; + gammaTable[gammaIndex][v2] = v4 >> 8; + if (gammaTable[gammaIndex][v2] > 0x1f) + gammaTable[gammaIndex][v2] = 0x1f; + } + } + else + { + for (; gammaIndex < 19; gammaIndex++) + { + v4 += v11; + gammaTable[gammaIndex][v2] = v4 >> 8; + if (gammaTable[gammaIndex][v2] > 0x1f) + gammaTable[gammaIndex][v2] = 0x1f; + } + } + } + } +} + +// When the weather is changing, it gradually updates the palettes +// towards the desired gamma shift. +static void UpdateWeatherGammaShift(void) +{ + if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_OUT) + { + if (gWeatherPtr->gammaIndex == gWeatherPtr->gammaTargetIndex) + { + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; + } + else + { + if (++gWeatherPtr->gammaStepFrameCounter >= gWeatherPtr->gammaStepDelay) + { + gWeatherPtr->gammaStepFrameCounter = 0; + if (gWeatherPtr->gammaIndex < gWeatherPtr->gammaTargetIndex) + gWeatherPtr->gammaIndex++; + else + gWeatherPtr->gammaIndex--; + + ApplyGammaShift(0, 32, gWeatherPtr->gammaIndex); + } + } + } +} + +static void FadeInScreenWithWeather(void) +{ + if (++gWeatherPtr->unknown_6CB > 1) + gWeatherPtr->unknown_6CA = 0; + + switch (gWeatherPtr->currWeather) + { + case WEATHER_RAIN_LIGHT: + case WEATHER_RAIN_MED: + case WEATHER_RAIN_HEAVY: + case WEATHER_SNOW: + case WEATHER_SHADE: + if (FadeInScreen_RainShowShade() == FALSE) + { + gWeatherPtr->gammaIndex = 3; + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; + } + break; + case WEATHER_DROUGHT: + if (FadeInScreen_Drought() == FALSE) + { + gWeatherPtr->gammaIndex = -6; + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; + } + break; + case WEATHER_FOG_1: + if (FadeInScreen_Fog1() == FALSE) + { + gWeatherPtr->gammaIndex = 0; + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; + } + break; + case WEATHER_ASH: + case WEATHER_SANDSTORM: + case WEATHER_FOG_2: + case WEATHER_FOG_3: + default: + if (!gPaletteFade.active) + { + gWeatherPtr->gammaIndex = gWeatherPtr->gammaTargetIndex; + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; + } + break; + } +} + +static bool8 FadeInScreen_RainShowShade(void) +{ + if (gWeatherPtr->fadeScreenCounter == 16) + return FALSE; + + if (++gWeatherPtr->fadeScreenCounter >= 16) + { + ApplyGammaShift(0, 32, 3); + gWeatherPtr->fadeScreenCounter = 16; + return FALSE; + } + + ApplyGammaShiftWithBlend(0, 32, 3, 16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor); + return TRUE; +} + +static bool8 FadeInScreen_Drought(void) +{ + if (gWeatherPtr->fadeScreenCounter == 16) + return FALSE; + + if (++gWeatherPtr->fadeScreenCounter >= 16) + { + ApplyGammaShift(0, 32, -6); + gWeatherPtr->fadeScreenCounter = 16; + return FALSE; + } + + ApplyDroughtGammaShiftWithBlend(-6, 16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor); + return TRUE; +} + +static bool8 FadeInScreen_Fog1(void) +{ + if (gWeatherPtr->fadeScreenCounter == 16) + return FALSE; + + gWeatherPtr->fadeScreenCounter++; + ApplyFogBlend(16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor); + return TRUE; +} + +static void DoNothing(void) +{ } + +static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex) +{ + u16 curPalIndex; + u16 palOffset; + u8 *gammaTable; + u16 i; + + if (gammaIndex > 0) + { + gammaIndex--; + palOffset = startPalIndex * 16; + numPalettes += startPalIndex; + curPalIndex = startPalIndex; + + // Loop through the speficied palette range and apply necessary gamma shifts to the colors. + while (curPalIndex < numPalettes) + { + if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE) + { + // No palette change. + CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16)); + palOffset += 16; + } + else + { + u8 r, g, b; + + if (sPaletteGammaTypes[curPalIndex] == GAMMA_ALT || curPalIndex - 16 == gWeatherPtr->altGammaSpritePalIndex) + gammaTable = gWeatherPtr->altGammaShifts[gammaIndex]; + else + gammaTable = gWeatherPtr->gammaShifts[gammaIndex]; + + for (i = 0; i < 16; i++) + { + // Apply gamma shift to the original color. + struct RGBColor baseColor = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset]; + r = gammaTable[baseColor.r]; + g = gammaTable[baseColor.g]; + b = gammaTable[baseColor.b]; + gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r; + } + } + + curPalIndex++; + } + } + else if (gammaIndex < 0) + { + // A negative gammIndex value means that the blending will come from the special Drought weather's palette tables. + gammaIndex = -gammaIndex - 1; + palOffset = startPalIndex * 16; + numPalettes += startPalIndex; + curPalIndex = startPalIndex; + + while (curPalIndex < numPalettes) + { + if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE) + { + // No palette change. + CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16)); + palOffset += 16; + } + else + { + for (i = 0; i < 16; i++) + { + gPlttBufferFaded[palOffset] = gUnknown_0854014C[gammaIndex][MACRO1(gPlttBufferUnfaded[palOffset])]; + palOffset++; + } + } + + curPalIndex++; + } + } + else + { + // No palette blending. + CpuFastCopy(gPlttBufferUnfaded + startPalIndex * 16, gPlttBufferFaded + startPalIndex * 16, numPalettes * 16 * sizeof(u16)); + } +} + +static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaIndex, u8 blendCoeff, u16 blendColor) +{ + u16 palOffset; + u16 curPalIndex; + u16 i; + struct RGBColor color = *(struct RGBColor *)&blendColor; + u8 rBlend = color.r; + u8 gBlend = color.g; + u8 bBlend = color.b; + + palOffset = startPalIndex * 16; + numPalettes += startPalIndex; + gammaIndex--; + curPalIndex = startPalIndex; + + while (curPalIndex < numPalettes) + { + if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE) + { + // No gamma shift. Simply blend the colors. + BlendPalette(palOffset, 16, blendCoeff, blendColor); + palOffset += 16; + } + else + { + u8 *gammaTable; + + if (sPaletteGammaTypes[curPalIndex] == GAMMA_NORMAL) + gammaTable = gWeatherPtr->gammaShifts[gammaIndex]; + else + gammaTable = gWeatherPtr->altGammaShifts[gammaIndex]; + + for (i = 0; i < 16; i++) + { + struct RGBColor baseColor = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset]; + u8 r = gammaTable[baseColor.r]; + u8 g = gammaTable[baseColor.g]; + u8 b = gammaTable[baseColor.b]; + + // Apply gamma shift and target blend color to the original color. + r += ((rBlend - r) * blendCoeff) >> 4; + g += ((gBlend - g) * blendCoeff) >> 4; + b += ((bBlend - b) * blendCoeff) >> 4; + gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r; + } + } + + curPalIndex++; + } +} + +static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 blendColor) +{ + struct RGBColor color; + u8 rBlend; + u8 gBlend; + u8 bBlend; + u16 curPalIndex; + u16 palOffset; + u16 i; + + gammaIndex = -gammaIndex - 1; + color = *(struct RGBColor *)&blendColor; + rBlend = color.r; + gBlend = color.g; + bBlend = color.b; + palOffset = 0; + for (curPalIndex = 0; curPalIndex < 32; curPalIndex++) + { + if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE) + { + // No gamma shift. Simply blend the colors. + BlendPalette(palOffset, 16, blendCoeff, blendColor); + palOffset += 16; + } + else + { + for (i = 0; i < 16; i++) + { + u32 offset; + struct RGBColor color1; + struct RGBColor color2; + u8 r1, g1, b1; + u8 r2, g2, b2; + + color1 = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset]; + r1 = color1.r; + g1 = color1.g; + b1 = color1.b; + + offset = ((b1 & 0x1E) << 7) | ((g1 & 0x1E) << 3) | ((r1 & 0x1E) >> 1); + color2 = *(struct RGBColor *)&gUnknown_0854014C[gammaIndex][offset]; + r2 = color2.r; + g2 = color2.g; + b2 = color2.b; + + r2 += ((rBlend - r2) * blendCoeff) >> 4; + g2 += ((gBlend - g2) * blendCoeff) >> 4; + b2 += ((bBlend - b2) * blendCoeff) >> 4; + + gPlttBufferFaded[palOffset++] = (b2 << 10) | (g2 << 5) | r2; + } + } + } +} + +static void ApplyFogBlend(u8 blendCoeff, u16 blendColor) +{ + struct RGBColor color; + u8 rBlend; + u8 gBlend; + u8 bBlend; + u16 curPalIndex; + + BlendPalette(0, 256, blendCoeff, blendColor); + color = *(struct RGBColor *)&blendColor; + rBlend = color.r; + gBlend = color.g; + bBlend = color.b; + + for (curPalIndex = 16; curPalIndex < 32; curPalIndex++) + { + if (LightenSpritePaletteInFog(curPalIndex)) + { + u16 palEnd = (curPalIndex + 1) * 16; + u16 palOffset = curPalIndex * 16; + + while (palOffset < palEnd) + { + struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset]; + u8 r = color.r; + u8 g = color.g; + u8 b = color.b; + + r += ((28 - r) * 3) >> 2; + g += ((31 - g) * 3) >> 2; + b += ((28 - b) * 3) >> 2; + + r += ((rBlend - r) * blendCoeff) >> 4; + g += ((gBlend - g) * blendCoeff) >> 4; + b += ((bBlend - b) * blendCoeff) >> 4; + + gPlttBufferFaded[palOffset] = (b << 10) | (g << 5) | r; + palOffset++; + } + } + else + { + BlendPalette(curPalIndex * 16, 16, blendCoeff, blendColor); + } + } +} + +static void MarkFogSpritePalToLighten(u8 paletteIndex) +{ + if (gWeatherPtr->lightenedFogSpritePalsCount < 6) + { + gWeatherPtr->lightenedFogSpritePals[gWeatherPtr->lightenedFogSpritePalsCount] = paletteIndex; + gWeatherPtr->lightenedFogSpritePalsCount++; + } +} + +static bool8 LightenSpritePaletteInFog(u8 paletteIndex) +{ + u16 i; + + for (i = 0; i < gWeatherPtr->lightenedFogSpritePalsCount; i++) + { + if (gWeatherPtr->lightenedFogSpritePals[i] == paletteIndex) + return TRUE; + } + + return FALSE; +} + +void sub_80ABC48(s8 gammaIndex) +{ + if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) + { + ApplyGammaShift(0, 32, gammaIndex); + gWeatherPtr->gammaIndex = gammaIndex; + } +} + +void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay) +{ + if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) + { + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_CHANGING_WEATHER; + gWeatherPtr->gammaIndex = gammaIndex; + gWeatherPtr->gammaTargetIndex = gammaTargetIndex; + gWeatherPtr->gammaStepFrameCounter = 0; + gWeatherPtr->gammaStepDelay = gammaStepDelay; + sub_80ABC48(gammaIndex); + } +} + +void FadeScreen(u8 mode, s8 delay) +{ + u32 fadeColor; + bool8 fadeOut; + bool8 useWeatherPal; + + switch (mode) + { + case FADE_FROM_BLACK: + fadeColor = RGB_BLACK; + fadeOut = FALSE; + break; + case FADE_FROM_WHITE: + fadeColor = RGB_WHITEALPHA; + fadeOut = FALSE; + break; + case FADE_TO_BLACK: + fadeColor = RGB_BLACK; + fadeOut = TRUE; + break; + case FADE_TO_WHITE: + fadeColor = RGB_WHITEALPHA; + fadeOut = TRUE; + break; + default: + return; + } + + switch (gWeatherPtr->currWeather) + { + case WEATHER_RAIN_LIGHT: + case WEATHER_RAIN_MED: + case WEATHER_RAIN_HEAVY: + case WEATHER_SNOW: + case WEATHER_FOG_1: + case WEATHER_SHADE: + case WEATHER_DROUGHT: + useWeatherPal = TRUE; + break; + default: + useWeatherPal = FALSE; + break; + } + + if (fadeOut) + { + if (useWeatherPal) + CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); + + BeginNormalPaletteFade(0xFFFFFFFF, delay, 0, 16, fadeColor); + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT; + } + else + { + gWeatherPtr->fadeDestColor = fadeColor; + if (useWeatherPal) + gWeatherPtr->fadeScreenCounter = 0; + else + BeginNormalPaletteFade(0xFFFFFFFF, delay, 16, 0, fadeColor); + + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN; + gWeatherPtr->unknown_6CA = 1; + gWeatherPtr->unknown_6CB = 0; + Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB); + gWeatherPtr->readyForInit = TRUE; + } +} + +bool8 IsWeatherNotFadingIn(void) +{ + return (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_IN); +} + +void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex) +{ + u16 paletteIndex = 16 + spritePaletteIndex; + u16 i; + + switch (gWeatherPtr->palProcessingState) + { + case WEATHER_PAL_STATE_SCREEN_FADING_IN: + if (gWeatherPtr->unknown_6CA != 0) + { + if (gWeatherPtr->currWeather == WEATHER_FOG_1) + MarkFogSpritePalToLighten(paletteIndex); + paletteIndex *= 16; + for (i = 0; i < 16; i++) + gPlttBufferFaded[paletteIndex + i] = gWeatherPtr->fadeDestColor; + } + break; + case WEATHER_PAL_STATE_SCREEN_FADING_OUT: + paletteIndex *= 16; + CpuFastCopy(gPlttBufferFaded + paletteIndex, gPlttBufferUnfaded + paletteIndex, 32); + BlendPalette(paletteIndex, 16, gPaletteFade.y, gPaletteFade.blendColor); + break; + // WEATHER_PAL_STATE_CHANGING_WEATHER + // WEATHER_PAL_STATE_CHANGING_IDLE + default: + if (gWeatherPtr->currWeather != WEATHER_FOG_1) + { + ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex); + } + else + { + paletteIndex *= 16; + BlendPalette(paletteIndex, 16, 12, RGB(28, 31, 28)); + } + break; + } +} + +void ApplyWeatherGammaShiftToPal(u8 paletteIndex) +{ + ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex); +} + +u8 sub_80ABF20(void) +{ + if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_SCREEN_FADING_IN) + return gWeatherPtr->unknown_6CA; + else + return 0; +} + +void LoadCustomWeatherSpritePalette(const u16 *palette) +{ + LoadPalette(palette, 0x100 + gWeatherPtr->weatherPicSpritePalIndex * 16, 32); + UpdateSpritePaletteWithWeather(gWeatherPtr->weatherPicSpritePalIndex); +} + +static void LoadDroughtWeatherPalette(u8 *gammaIndexPtr, u8 *a1) +{ + *gammaIndexPtr = 0x20; + *a1 = 0x20; +} + +void ResetDroughtWeatherPaletteLoading(void) +{ + gWeatherPtr->loadDroughtPalsIndex = 1; + gWeatherPtr->loadDroughtPalsOffset = 1; +} + +bool8 LoadDroughtWeatherPalettes(void) +{ + if (gWeatherPtr->loadDroughtPalsIndex < 32) + { + LoadDroughtWeatherPalette(&gWeatherPtr->loadDroughtPalsIndex, &gWeatherPtr->loadDroughtPalsOffset); + if (gWeatherPtr->loadDroughtPalsIndex < 32) + return TRUE; + } + return FALSE; +} + +void sub_80ABFE0(s8 gammaIndex) +{ + sub_80ABC48(-gammaIndex - 1); +} + +void sub_80ABFF0(void) +{ + gWeatherPtr->unknown_73C = 0; + gWeatherPtr->unknown_740 = 0; + gWeatherPtr->unknown_742 = 0; + gWeatherPtr->unknown_73E = 0; +} + +void sub_80AC01C(void) +{ + switch (gWeatherPtr->unknown_742) + { + case 0: + if (++gWeatherPtr->unknown_740 > 5) + { + gWeatherPtr->unknown_740 = 0; + sub_80ABFE0(gWeatherPtr->unknown_73C++); + if (gWeatherPtr->unknown_73C > 5) + { + gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C; + gWeatherPtr->unknown_742 = 1; + gWeatherPtr->unknown_740 = 0x3C; + } + } + break; + case 1: + gWeatherPtr->unknown_740 = (gWeatherPtr->unknown_740 + 3) & 0x7F; + gWeatherPtr->unknown_73C = ((gSineTable[gWeatherPtr->unknown_740] - 1) >> 6) + 2; + if (gWeatherPtr->unknown_73C != gWeatherPtr->unknown_73E) + sub_80ABFE0(gWeatherPtr->unknown_73C); + gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C; + break; + case 2: + if (++gWeatherPtr->unknown_740 > 5) + { + gWeatherPtr->unknown_740 = 0; + sub_80ABFE0(--gWeatherPtr->unknown_73C); + if (gWeatherPtr->unknown_73C == 3) + gWeatherPtr->unknown_742 = 0; + } + break; + } +} + +void Weather_SetBlendCoeffs(u8 eva, u8 evb) +{ + gWeatherPtr->currBlendEVA = eva; + gWeatherPtr->currBlendEVB = evb; + gWeatherPtr->targetBlendEVA = eva; + gWeatherPtr->targetBlendEVB = evb; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(eva, evb)); +} + +void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay) +{ + gWeatherPtr->targetBlendEVA = eva; + gWeatherPtr->targetBlendEVB = evb; + gWeatherPtr->blendDelay = delay; + gWeatherPtr->blendFrameCounter = 0; + gWeatherPtr->blendUpdateCounter = 0; +} + +bool8 Weather_UpdateBlend(void) +{ + if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA + && gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB) + return TRUE; + + if (++gWeatherPtr->blendFrameCounter > gWeatherPtr->blendDelay) + { + gWeatherPtr->blendFrameCounter = 0; + gWeatherPtr->blendUpdateCounter++; + + // Update currBlendEVA and currBlendEVB on alternate frames + if (gWeatherPtr->blendUpdateCounter & 1) + { + if (gWeatherPtr->currBlendEVA < gWeatherPtr->targetBlendEVA) + gWeatherPtr->currBlendEVA++; + else if (gWeatherPtr->currBlendEVA > gWeatherPtr->targetBlendEVA) + gWeatherPtr->currBlendEVA--; + } + else + { + if (gWeatherPtr->currBlendEVB < gWeatherPtr->targetBlendEVB) + gWeatherPtr->currBlendEVB++; + else if (gWeatherPtr->currBlendEVB > gWeatherPtr->targetBlendEVB) + gWeatherPtr->currBlendEVB--; + } + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB)); + + if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA + && gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB) + return TRUE; + + return FALSE; +} + +void sub_80AC274(u8 a) +{ + switch (a) + { + case 1: + SetWeather(WEATHER_CLOUDS); + break; + case 2: + SetWeather(WEATHER_SUNNY); + break; + case 3: + SetWeather(WEATHER_RAIN_LIGHT); + break; + case 4: + SetWeather(WEATHER_SNOW); + break; + case 5: + SetWeather(WEATHER_RAIN_MED); + break; + case 6: + SetWeather(WEATHER_FOG_1); + break; + case 7: + SetWeather(WEATHER_FOG_2); + break; + case 8: + SetWeather(WEATHER_ASH); + break; + case 9: + SetWeather(WEATHER_SANDSTORM); + break; + case 10: + SetWeather(WEATHER_SHADE); + break; + } +} + +u8 GetCurrentWeather(void) +{ + return gWeatherPtr->currWeather; +} + +void SetRainStrengthFromSoundEffect(u16 soundEffect) +{ + if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_OUT) + { + switch (soundEffect) + { + case SE_T_KOAME: + gWeatherPtr->rainStrength = 0; + break; + case SE_T_OOAME: + gWeatherPtr->rainStrength = 1; + break; + case SE_T_AME: + gWeatherPtr->rainStrength = 2; + break; + default: + return; + } + + PlaySE(soundEffect); + } +} + +void PlayRainSoundEffect(void) +{ + if (IsSpecialSEPlaying()) + { + switch (gWeatherPtr->rainStrength) + { + case 0: + PlaySE(SE_T_KOAME_E); + break; + case 1: + PlaySE(SE_T_OOAME_E); + break; + case 2: + default: + PlaySE(SE_T_AME_E); + break; + } + } +} + +u8 IsWeatherChangeComplete(void) +{ + return gWeatherPtr->weatherChangeComplete; +} + +void SetWeatherScreenFadeOut(void) +{ + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT; +} + +void sub_80AC3E4(void) +{ + gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; +} + +void PreservePaletteInWeather(u8 preservedPalIndex) +{ + CpuCopy16(sBasePaletteGammaTypes, sFieldEffectPaletteGammaTypes, 32); + sFieldEffectPaletteGammaTypes[preservedPalIndex] = GAMMA_NONE; + sPaletteGammaTypes = sFieldEffectPaletteGammaTypes; +} + +void ResetPreservedPalettesInWeather(void) +{ + sPaletteGammaTypes = sBasePaletteGammaTypes; +} diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c new file mode 100644 index 000000000..2ec51a722 --- /dev/null +++ b/src/field_weather_effect.c @@ -0,0 +1,2471 @@ +#include "global.h" +#include "event_object_movement.h" +#include "field_weather.h" +#include "overworld.h" +#include "random.h" +#include "script.h" +#include "constants/weather.h" +#include "constants/songs.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "gpu_regs.h" + +// This file's functions. +void sub_80AC6B4(struct Sprite *); + +// EWRAM +EWRAM_DATA static u8 gUnknown_02038BC4 = 0; +EWRAM_DATA static u16 gUnknown_02038BC6 = 0; + +// CONST +const u16 gUnknown_0854C290[] = INCBIN_U16("graphics/weather/1.gbapal"); +const u16 gUnknown_0854C2B0[] = INCBIN_U16("graphics/weather/2.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"); +const u8 gWeatherSnow1Tiles[] = INCBIN_U8("graphics/weather/snow0.4bpp"); +const u8 gWeatherSnow2Tiles[] = INCBIN_U8("graphics/weather/snow1.4bpp"); +const u8 gWeatherBubbleTiles[] = INCBIN_U8("graphics/weather/bubble.4bpp"); +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"); + +static const struct Coords16 gUnknown_0854FB50[] = +{ + { 0, 66}, + { 5, 73}, + {10, 78}, +}; + +static const struct SpriteSheet sCloudSpriteSheet = {gWeatherCloudTiles, sizeof(gWeatherCloudTiles), 0x1200}; + +static const struct OamData gOamData_839A9DC = +{ + .y = 0, + .affineMode = 0, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd gSpriteAnim_839A9E4[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +static const union AnimCmd *const gSpriteAnimTable_839A9EC[] = +{ + gSpriteAnim_839A9E4, +}; + +static const struct SpriteTemplate sCloudSpriteTemplate = +{ + .tileTag = 4608, + .paletteTag = 4609, + .oam = &gOamData_839A9DC, + .anims = gSpriteAnimTable_839A9EC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80AC6B4, +}; + +//------------------------------------------------------------------------------ +// Clouds +//------------------------------------------------------------------------------ + +void Clouds_InitVars(void) +{ + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 20; + gWeatherPtr->weatherGfxLoaded = FALSE; + gWeatherPtr->initStep = 0; + if (gWeatherPtr->cloudSpritesCreated == FALSE) + Weather_SetBlendCoeffs(0, 16); +} + +void Clouds_InitAll(void) +{ + Clouds_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Clouds_Main(); +} + +void CreateCloudSprites(void); + +void Clouds_Main(void) +{ + switch (gWeatherPtr->initStep) + { + case 0: + CreateCloudSprites(); + gWeatherPtr->initStep++; + break; + case 1: + Weather_SetTargetBlendCoeffs(12, 8, 1); + gWeatherPtr->initStep++; + break; + case 2: + if (Weather_UpdateBlend()) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } + break; + } +} + +void sub_807E0A0(void); + +bool8 Clouds_Finish(void) +{ + switch (gWeatherPtr->finishStep) + { + case 0: + Weather_SetTargetBlendCoeffs(0, 16, 1); + gWeatherPtr->finishStep++; + return TRUE; + case 1: + if (Weather_UpdateBlend()) + { + sub_807E0A0(); + gWeatherPtr->finishStep++; + } + return TRUE; + } + return FALSE; +} + +//------------------------------------------------------------------------------ +// Weather 2 +//------------------------------------------------------------------------------ + +void Weather2_InitVars(void) +{ + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 20; +} + +void Weather2_InitAll(void) +{ + Weather2_InitVars(); +} + +void Weather2_Main(void) +{ +} + +bool8 Weather2_Finish(void) +{ + return 0; +} + +void CreateCloudSprites(void) +{ + u16 i; + + if (gWeatherPtr->cloudSpritesCreated == TRUE) + return; + LoadSpriteSheet(&sCloudSpriteSheet); + LoadCustomWeatherSpritePalette(gUnknown_0854C290); + for (i = 0; i < 3; i++) + { + u8 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); + sprite->coordOffsetEnabled = TRUE; + } + else + { + gWeatherPtr->sprites.s1.cloudSprites[i] = NULL; + } + } + gWeatherPtr->cloudSpritesCreated = TRUE; +} + +void sub_807E0A0(void) +{ + u16 i; + + if (gWeatherPtr->cloudSpritesCreated == FALSE) + return; + for (i = 0; i < 3; i++) + { + if (gWeatherPtr->sprites.s1.cloudSprites[i] != NULL) + DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]); + } + FreeSpriteTilesByTag(0x1200); + gWeatherPtr->cloudSpritesCreated = FALSE; +} + +void sub_80AC6B4(struct Sprite *sprite) +{ + sprite->data[0] = (sprite->data[0] + 1) & 1; + if (sprite->data[0] != 0) + sprite->pos1.x--; +} + +//------------------------------------------------------------------------------ +// Drought +//------------------------------------------------------------------------------ + +void Drought_InitVars(void) +{ + gWeatherPtr->initStep = 0; + gWeatherPtr->weatherGfxLoaded = FALSE; + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 0; +} + +void Drought_InitAll(void) +{ + Drought_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Drought_Main(); +} + +void Drought_Main(void) +{ + switch (gWeatherPtr->initStep) + { + case 0: + if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER) + gWeatherPtr->initStep++; + break; + case 1: + ResetDroughtWeatherPaletteLoading(); + gWeatherPtr->initStep++; + break; + case 2: + if (LoadDroughtWeatherPalettes() == FALSE) + gWeatherPtr->initStep++; + break; + case 3: + sub_80ABFF0(); + gWeatherPtr->initStep++; + break; + case 4: + sub_80AC01C(); + if (gWeatherPtr->unknown_73C == 6) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } + break; + default: + sub_80AC01C(); + break; + } +} + +bool8 Drought_Finish(void) +{ + return 0; +} + +void task50_0807B6D4(u8); + +void sub_80AC81C(void) +{ + CreateTask(task50_0807B6D4, 0x50); +} + +#define tState data[0] +#define tBlendY data[1] +#define tBlendDelay data[2] +#define tWinRange data[3] + +void task50_0807B6D4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->tState) + { + case 0: + task->tBlendY = 0; + task->tBlendDelay = 0; + task->tWinRange = REG_WININ; + SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(63, 63)); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); + SetGpuReg(REG_OFFSET_BLDY, 0); + task->tState++; + // fall through + case 1: + task->tBlendY += 3; + if (task->tBlendY > 16) + task->tBlendY = 16; + SetGpuReg(REG_OFFSET_BLDY, task->tBlendY); + if (task->tBlendY >= 16) + task->tState++; + break; + case 2: + task->tBlendDelay++; + if (task->tBlendDelay > 9) + { + task->tBlendDelay = 0; + task->tBlendY--; + if (task->tBlendY <= 0) + { + task->tBlendY = 0; + task->tState++; + } + SetGpuReg(REG_OFFSET_BLDY, task->tBlendY); + } + break; + case 3: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_WININ, task->tWinRange); + task->tState++; + break; + case 4: + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + } +} + +#undef tState +#undef tBlendY +#undef tBlendDelay +#undef tWinRange + +//------------------------------------------------------------------------------ +// Light Rain +//------------------------------------------------------------------------------ + +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->gammaTargetIndex = 3; + gWeatherPtr->gammaStepDelay = 20; + SetRainStrengthFromSoundEffect(SE_T_KOAME); +} + +void LightRain_InitAll(void) +{ + LightRain_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + LightRain_Main(); +} + +void LoadRainSpriteSheet(void); +u8 CreateRainSprite(void); +u8 sub_807E8E8(void); + +void LightRain_Main(void) +{ + switch (gWeatherPtr->initStep) + { + case 0: + LoadRainSpriteSheet(); + gWeatherPtr->initStep++; + break; + case 1: + if (CreateRainSprite() == 0) + gWeatherPtr->initStep++; + break; + case 2: + if (sub_807E8E8() == FALSE) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } + break; + } +} + +void DestroyRainSprites(void); + +bool8 LightRain_Finish(void) +{ + switch (gWeatherPtr->finishStep) + { + case 0: + if (gWeatherPtr->nextWeather == WEATHER_RAIN_LIGHT + || gWeatherPtr->nextWeather == WEATHER_RAIN_MED + || gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY) + { + gWeatherPtr->finishStep = 0xFF; + return FALSE; + } + else + { + gWeatherPtr->unknown_6D9 = 0; + gWeatherPtr->finishStep++; + } + // fall through + case 1: + if (sub_807E8E8() == FALSE) + { + DestroyRainSprites(); + gWeatherPtr->finishStep++; + return FALSE; + } + return TRUE; + } + return FALSE; +} + +// defined below +extern const s16 gUnknown_0839AABC[][2]; +extern const u16 gUnknown_0839AAC4[][2]; + +void sub_807E4EC(struct Sprite *sprite) +{ + u32 randVal; + u16 r6; + s32 r4; + s32 r0; + + if (sprite->data[1] == 0) + sprite->data[1] = 361; + randVal = sprite->data[1] * 1103515245 + 12345; + sprite->data[1] = ((randVal & 0x7FFF0000) >> 16) % 600; + + r6 = gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][0]; + + r4 = sprite->data[1] % 30; + sprite->data[2] = r4 * 8; // useless assignment + + r0 = sprite->data[1] / 30; + sprite->data[3] = r0 * 8; // useless assignment + + sprite->data[2] = r4; + sprite->data[2] <<= 7; + + sprite->data[3] = r0; + sprite->data[3] <<= 7; + + sprite->data[2] -= gUnknown_0839AABC[gWeatherPtr->unknown_6DC][0] * r6; + sprite->data[3] -= gUnknown_0839AABC[gWeatherPtr->unknown_6DC][1] * r6; + + StartSpriteAnim(sprite, 0); + sprite->data[4] = 0; + sprite->coordOffsetEnabled = FALSE; + sprite->data[0] = r6; +} + +void sub_807E5C0(struct Sprite *sprite) +{ + if (sprite->data[4] == 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; + + if (sprite->data[5] != 0 + && (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) + { + StartSpriteAnim(sprite, gWeatherPtr->unknown_6DC + 1); + sprite->data[4] = 1; + sprite->pos1.x -= gSpriteCoordOffsetX; + sprite->pos1.y -= gSpriteCoordOffsetY; + sprite->coordOffsetEnabled = TRUE; + } + } + else if (sprite->animEnded) + { + sprite->invisible = TRUE; + sub_807E4EC(sprite); + } +} + +void sub_807E6C4(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + sub_807E4EC(sprite); + sprite->callback = sub_807E5C0; + } + else + { + sprite->data[0]--; + } +} + +void sub_807E6F0(struct Sprite *sprite, u16 b) +{ + 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); + + while (--r6 != 0xFFFF) + sub_807E4EC(sprite); + if (r4 < r8) + { + while (--r4 != 0xFFFF) + sub_807E5C0(sprite); + sprite->data[6] = 0; + } + else + { + sprite->data[0] = r4 - r8; + sprite->invisible = TRUE; + sprite->data[6] = 1; + } +} + +extern const struct SpriteSheet sRainSpriteSheet; // defined below + +void LoadRainSpriteSheet(void) +{ + LoadSpriteSheet(&sRainSpriteSheet); +} + +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 gOamData_839AA68 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 2, + .affineParam = 0, +}; + +static const union AnimCmd gSpriteAnim_839AA70[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gSpriteAnim_839AA78[] = +{ + ANIMCMD_FRAME(8, 3), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(40, 2), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_839AA88[] = +{ + ANIMCMD_FRAME(8, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(24, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const gSpriteAnimTable_839AA98[] = +{ + gSpriteAnim_839AA70, + gSpriteAnim_839AA78, + gSpriteAnim_839AA88, +}; + +static const struct SpriteTemplate sRainSpriteTemplate = +{ + .tileTag = 4614, + .paletteTag = 4608, + .oam = &gOamData_839AA68, + .anims = gSpriteAnimTable_839AA98, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807E5C0, +}; + +const s16 gUnknown_0839AABC[][2] = +{ + {-104, 208}, + {-160, 320}, +}; + +const u16 gUnknown_0839AAC4[][2] = +{ + {18, 7}, + {12, 10}, +}; + +static const struct SpriteSheet sRainSpriteSheet = {gWeatherRainTiles, sizeof(gWeatherRainTiles), 0x1206}; + +static const struct OamData gOamData_839AAD4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteFrameImage gSpriteImageTable_839AADC[] = +{ + {gWeatherSnow1Tiles, sizeof(gWeatherSnow1Tiles)}, + {gWeatherSnow2Tiles, sizeof(gWeatherSnow2Tiles)}, +}; + +static const union AnimCmd gSpriteAnim_839AAEC[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_839AAF4[] = +{ + ANIMCMD_FRAME(1, 16), + ANIMCMD_END, +}; + +static const union AnimCmd *const gSpriteAnimTable_839AAFC[] = +{ + gSpriteAnim_839AAEC, + gSpriteAnim_839AAF4, +}; + +void sub_807ED48(struct Sprite *); +static const struct SpriteTemplate sSnowflakeSpriteTemplate = +{ + .tileTag = 0xFFFF, + .paletteTag = 4608, + .oam = &gOamData_839AAD4, + .anims = gSpriteAnimTable_839AAFC, + .images = gSpriteImageTable_839AADC, + .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 = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .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 = 4609, + .paletteTag = 4608, + .oam = &gOamData_839AB2C, + .anims = gSpriteAnimTable_839AB64, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_839AB8C, + .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); + + if (spriteId == MAX_SPRITES) + return FALSE; + gSprites[spriteId].data[4] = gWeatherPtr->snowflakeSpriteCount; + sub_807EC40(&gSprites[spriteId]); + gSprites[spriteId].coordOffsetEnabled = TRUE; + gWeatherPtr->sprites.s1.snowflakeSprites[gWeatherPtr->snowflakeSpriteCount++] = &gSprites[spriteId]; + return TRUE; +} + +bool8 RemoveSnowflakeSprite(void) +{ + if (gWeatherPtr->snowflakeSpriteCount != 0) + { + DestroySprite(gWeatherPtr->sprites.s1.snowflakeSprites[--gWeatherPtr->snowflakeSpriteCount]); + return TRUE; + } + return FALSE; +} + +void sub_807EC40(struct Sprite *sprite) +{ + u16 r4 = ((sprite->data[4] * 5) & 7) * 30 + (Random() % 30); + u16 r6; + + sprite->pos1.y = -3 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); + sprite->pos1.x = r4 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); + sprite->data[0] = 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; +} + +void sub_807ECEC(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; + gWeatherPtr->unknown_6E2 = 0; + } +} + +void sub_807ED48(struct Sprite *sprite) +{ + s16 r3; + s16 r2; + + 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; + + r3 = (sprite->pos1.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX) & 0x1FF; + if (r3 & 0x100) + r3 |= -0x100; // hmm... what is this? + if (r3 < -3) + sprite->pos1.x = 242 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); + else if (r3 > 242) + sprite->pos1.x = -3 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); + + r2 = (sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY) & 0xFF; + if (r2 > 163 && r2 < 171) + { + sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); + sprite->data[0] = sprite->pos1.y * 128; + sprite->data[5] = 0; + sprite->data[6] = 220; + } + else if (r2 > 242 && r2 < 250) + { + sprite->pos1.y = 163; + sprite->data[0] = sprite->pos1.y * 128; + sprite->data[5] = 0; + sprite->data[6] = 220; + sprite->invisible = TRUE; + sprite->callback = sub_807ECEC; + } + + sprite->data[5]++; + if (sprite->data[5] == sprite->data[6]) + { + sub_807EC40(sprite); + sprite->pos1.y = 250; + sprite->invisible = TRUE; + sprite->callback = sub_807ECEC; + } +} + +//------------------------------------------------------------------------------ +// Medium Rain +//------------------------------------------------------------------------------ + +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->gammaTargetIndex = 3; + gWeatherPtr->gammaStepDelay = 20; + gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment + gWeatherPtr->unknown_6ED = 0; + SetRainStrengthFromSoundEffect(SE_T_AME); +} + +void Rain_Main(void); + +void MedRain_InitAll(void) +{ + MedRain_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Rain_Main(); +} + +//------------------------------------------------------------------------------ +// Heavy Rain +//------------------------------------------------------------------------------ + +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->gammaTargetIndex = 3; + gWeatherPtr->gammaStepDelay = 20; + gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment + SetRainStrengthFromSoundEffect(SE_T_OOAME); +} + +void HeavyRain_InitAll(void) +{ + HeavyRain_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Rain_Main(); +} + +void UpdateThunderSound(void); +void SetThunderCounter(u16); + +void Rain_Main(void) +{ + UpdateThunderSound(); + switch (gWeatherPtr->initStep) + { + case 0: + LoadRainSpriteSheet(); + gWeatherPtr->initStep++; + break; + case 1: + if (CreateRainSprite()) + break; + gWeatherPtr->initStep++; + break; + case 2: + if (sub_807E8E8()) + break; + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + break; + case 3: + if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_CHANGING_WEATHER) + break; + gWeatherPtr->initStep = 6; + break; + case 4: + gWeatherPtr->unknown_6EA = 1; + gWeatherPtr->unknown_6E6 = (Random() % 360) + 360; + gWeatherPtr->initStep++; + // fall through + case 5: + if (--gWeatherPtr->unknown_6E6 != 0) + break; + gWeatherPtr->initStep++; + break; + case 6: + gWeatherPtr->unknown_6EA = 1; + gWeatherPtr->unknown_6EB = Random() % 2; + gWeatherPtr->initStep++; + break; + case 7: + gWeatherPtr->unknown_6EC = (Random() & 1) + 1; + gWeatherPtr->initStep++; + // fall through + case 8: + 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) + { + gWeatherPtr->initStep = 4; + } + else + { + gWeatherPtr->initStep = 11; + } + break; + case 10: + if (--gWeatherPtr->unknown_6E6 != 0) + break; + 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++; + break; + case 13: + if (--gWeatherPtr->unknown_6E6 != 0) + break; + 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; + break; + } +} + +bool8 Rain_Finish(void) +{ + switch (gWeatherPtr->finishStep) + { + case 0: + gWeatherPtr->unknown_6EA = 0; + gWeatherPtr->finishStep++; + // fall through + case 1: + Rain_Main(); + if (gWeatherPtr->unknown_6EA != 0) + { + if (gWeatherPtr->nextWeather == WEATHER_RAIN_LIGHT + || gWeatherPtr->nextWeather == WEATHER_RAIN_MED + || gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY) + return FALSE; + gWeatherPtr->unknown_6D9 = 0; + gWeatherPtr->finishStep++; + } + break; + case 2: + if (sub_807E8E8()) + break; + DestroyRainSprites(); + gWeatherPtr->unknown_6ED = 0; + gWeatherPtr->finishStep++; + return FALSE; + default: + return FALSE; + } + return TRUE; +} + +void SetThunderCounter(u16 max) +{ + if (gWeatherPtr->unknown_6ED == 0) + { + gWeatherPtr->thunderCounter = Random() % max; + gWeatherPtr->unknown_6ED = 1; + } +} + +void UpdateThunderSound(void) +{ + if (gWeatherPtr->unknown_6ED == 1) + { + if (gWeatherPtr->thunderCounter == 0) + { + if (IsSEPlaying()) + return; + if (Random() & 1) + PlaySE(SE_T_KAMI); + else + PlaySE(SE_T_KAMI2); + gWeatherPtr->unknown_6ED = 0; + } + else + { + gWeatherPtr->thunderCounter--; + } + } +} + +//------------------------------------------------------------------------------ +// Fog 1 +//------------------------------------------------------------------------------ + +void Fog1_Main(void); +static void CreateFog1Sprites(void); +static void DestroyFog1Sprites(void); + +void Fog1_InitVars(void) +{ + gWeatherPtr->initStep = 0; + gWeatherPtr->weatherGfxLoaded = FALSE; + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 20; + if (gWeatherPtr->fog1SpritesCreated == 0) + { + gWeatherPtr->unknown_6F0 = 0; + gWeatherPtr->unknown_6F2 = 0; + gWeatherPtr->fog1ScrollPosX = 0; + Weather_SetBlendCoeffs(0, 16); + } +} + +void Fog1_InitAll(void) +{ + Fog1_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Fog1_Main(); +} + +void Fog1_Main(void) +{ + gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->unknown_6F2) & 0xFF; + if (++gWeatherPtr->unknown_6F0 > 3) + { + gWeatherPtr->unknown_6F0 = 0; + gWeatherPtr->unknown_6F2++; + } + switch (gWeatherPtr->initStep) + { + case 0: + CreateFog1Sprites(); + if (gWeatherPtr->currWeather == WEATHER_FOG_1) + Weather_SetTargetBlendCoeffs(12, 8, 3); + else + Weather_SetTargetBlendCoeffs(4, 16, 0); + gWeatherPtr->initStep++; + break; + case 1: + if (Weather_UpdateBlend()) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } + break; + } +} + +bool8 Fog1_Finish(void) +{ + gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->unknown_6F2) & 0xFF; + if (++gWeatherPtr->unknown_6F0 > 3) + { + gWeatherPtr->unknown_6F0 = 0; + gWeatherPtr->unknown_6F2++; + } + switch (gWeatherPtr->finishStep) + { + case 0: + Weather_SetTargetBlendCoeffs(0, 16, 3); + gWeatherPtr->finishStep++; + break; + case 1: + if (!Weather_UpdateBlend()) + break; + gWeatherPtr->finishStep++; + break; + case 2: + DestroyFog1Sprites(); + gWeatherPtr->finishStep++; + break; + default: + return FALSE; + } + return TRUE; +} + +#define sprColumn 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 = 480 + gWeatherPtr->fog1ScrollPosX - (4 - sprite->sprColumn) * 64; + sprite->pos1.x &= 0x1FF; + } +} + +static void CreateFog1Sprites(void) +{ + u16 i; + + if (!gWeatherPtr->fog1SpritesCreated) + { + struct SpriteSheet fog1SpriteSheet = {gWeatherFog1Tiles, sizeof(gWeatherFog1Tiles), 0x1201}; + + LoadSpriteSheet(&fog1SpriteSheet); + for (i = 0; i < 20; i++) + { + u8 spriteId = CreateSpriteAtEnd(&sFog1SpriteTemplate, 0, 0, 0xFF); + + if (spriteId != MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[spriteId]; + + sprite->sprColumn = i % 5; + sprite->pos1.x = (i % 5) * 64 + 32; + sprite->pos1.y = (i / 5) * 64 + 32; + gWeatherPtr->sprites.s2.fog1Sprites[i] = sprite; + } + else + { + 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++) + { + if (gWeatherPtr->sprites.s2.fog1Sprites[i] != NULL) + DestroySprite(gWeatherPtr->sprites.s2.fog1Sprites[i]); + } + FreeSpriteTilesByTag(0x1201); + gWeatherPtr->fog1SpritesCreated = 0; + } +} + +//------------------------------------------------------------------------------ +// Volcanic ash +//------------------------------------------------------------------------------ + +void Ash_Main(void); +void LoadAshSpriteSheet(void); +void CreateAshSprites(void); +void DestroyAshSprites(void); + +void Ash_InitVars(void) +{ + gWeatherPtr->initStep = 0; + gWeatherPtr->weatherGfxLoaded = FALSE; + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 20; + gWeatherPtr->unknown_6FE = 20; + if (!gWeatherPtr->ashSpritesCreated) + { + Weather_SetBlendCoeffs(0, 16); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(64, 63)); // Those aren't even valid coefficients! + } +} + +void Ash_InitAll(void) +{ + Ash_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Ash_Main(); +} + +void Ash_Main(void) +{ + gWeatherPtr->unknown_6FC = gSpriteCoordOffsetX & 0x1FF; + while (gWeatherPtr->unknown_6FC > 0xEF) + gWeatherPtr->unknown_6FC -= 0xF0; + switch (gWeatherPtr->initStep) + { + case 0: + LoadAshSpriteSheet(); + gWeatherPtr->initStep++; + break; + 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++; + break; + default: + Weather_UpdateBlend(); + break; + } +} + +bool8 Ash_Finish(void) +{ + switch (gWeatherPtr->finishStep) + { + case 0: + Weather_SetTargetBlendCoeffs(0, 16, 1); + gWeatherPtr->finishStep++; + break; + case 1: + if (!Weather_UpdateBlend()) + break; + DestroyAshSprites(); + gWeatherPtr->finishStep++; + break; + case 2: + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + gWeatherPtr->finishStep++; + return FALSE; + default: + return FALSE; + } + return TRUE; +} + +static const struct SpriteSheet sAshSpriteSheet = {gWeatherAshTiles, sizeof(gWeatherAshTiles), 0x1202}; + +void LoadAshSpriteSheet(void) +{ + LoadSpriteSheet(&sAshSpriteSheet); +} + +const struct OamData gOamData_839ABB8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 15, + .affineParam = 0, +}; + +const union AnimCmd gSpriteAnim_839ABC0[] = +{ + ANIMCMD_FRAME(0, 60), + ANIMCMD_FRAME(64, 60), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_839ABCC[] = +{ + gSpriteAnim_839ABC0, +}; + +void sub_807FAA8(struct Sprite *); +static const struct SpriteTemplate sAshSpriteTemplate = +{ + .tileTag = 4610, + .paletteTag = 4608, + .oam = &gOamData_839ABB8, + .anims = gSpriteAnimTable_839ABCC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807FAA8, +}; + +void CreateAshSprites(void) +{ + u8 i; + + if (!gWeatherPtr->ashSpritesCreated) + { + for (i = 0; i < 20; i++) + { + u8 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; + gWeatherPtr->sprites.s2.ashSprites[i] = sprite; + } + else + { + gWeatherPtr->sprites.s2.ashSprites[i] = NULL; + } + } + gWeatherPtr->ashSpritesCreated = TRUE; + } +} + +void DestroyAshSprites(void) +{ + u16 i; + + if (gWeatherPtr->ashSpritesCreated) + { + for (i = 0; i < 20; 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) +{ + sprite->data[1]++; + if (sprite->data[1] > 5) + { + sprite->data[1] = 0; + sprite->data[0]++; + } + sprite->pos1.y = gSpriteCoordOffsetY + sprite->data[0]; + sprite->pos1.x = gWeatherPtr->unknown_6FC + 32 + sprite->data[2] * 64; + if (sprite->pos1.x > 271) + { + sprite->pos1.x = gWeatherPtr->unknown_6FC + 0x1E0 - (4 - sprite->data[2]) * 64; + sprite->pos1.x &= 0x1FF; + } +} + +//------------------------------------------------------------------------------ +// Fog 2 +//------------------------------------------------------------------------------ + +void Fog2_InitVars(void) +{ + gWeatherPtr->initStep = 0; + gWeatherPtr->weatherGfxLoaded = 0; + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 20; + gWeatherPtr->unknown_6F0 = 0; + gWeatherPtr->unknown_6F2 = 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; + Weather_SetBlendCoeffs(0, 16); + } +} + +void Fog2_Main(void); + +void Fog2_InitAll(void) +{ + Fog2_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Fog2_Main(); +} + +void sub_807FC9C(void); +void CreateFog2Sprites(void); + +void Fog2_Main(void) +{ + sub_807FC9C(); + switch (gWeatherPtr->initStep) + { + case 0: + CreateFog2Sprites(); + gWeatherPtr->initStep++; + break; + case 1: + Weather_SetTargetBlendCoeffs(12, 8, 8); + gWeatherPtr->initStep++; + break; + case 2: + if (!Weather_UpdateBlend()) + break; + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + break; + } +} + +void DestroyFog2Sprites(void); + +bool8 Fog2_Finish(void) +{ + sub_807FC9C(); + switch (gWeatherPtr->finishStep) + { + case 0: + Weather_SetTargetBlendCoeffs(0, 16, 1); + gWeatherPtr->finishStep++; + break; + case 1: + if (!Weather_UpdateBlend()) + break; + gWeatherPtr->finishStep++; + break; + case 2: + DestroyFog2Sprites(); + gWeatherPtr->finishStep++; + break; + default: + return FALSE; + } + return TRUE; +} + +void sub_807FC9C(void) +{ + if (++gWeatherPtr->unknown_71C > 2) + { + gWeatherPtr->unknown_720++; + gWeatherPtr->unknown_71C = 0; + } + + if (++gWeatherPtr->unknown_71E > 4) + { + gWeatherPtr->unknown_722++; + gWeatherPtr->unknown_71E = 0; + } + + gWeatherPtr->unknown_718 = (gSpriteCoordOffsetX - gWeatherPtr->unknown_720) & 0xFF; + gWeatherPtr->unknown_71A = gSpriteCoordOffsetY + gWeatherPtr->unknown_722; +} + +extern const struct SpriteTemplate sFog2SpriteTemplate; // defined below + +void CreateFog2Sprites(void) +{ + 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; + } +} + +const struct OamData gOamData_839ABF0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +const union AnimCmd gSpriteAnim_839ABF8[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_839AC00[] = +{ + gSpriteAnim_839ABF8, +}; + +void Fog2SpriteCallback(struct Sprite *); +const struct SpriteTemplate sFog2SpriteTemplate = +{ + .tileTag = 4611, + .paletteTag = 4608, + .oam = &gOamData_839ABF0, + .anims = gSpriteAnimTable_839AC00, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = Fog2SpriteCallback, +}; + +void DestroyFog2Sprites(void) +{ + u16 i; + + if (gWeatherPtr->fog2SpritesCreated) + { + for (i = 0; i < 20; i++) + { + if (gWeatherPtr->sprites.s2.fog2Sprites[i] != NULL) + DestroySprite(gWeatherPtr->sprites.s2.fog2Sprites[i]); + } + FreeSpriteTilesByTag(0x1203); + gWeatherPtr->fog2SpritesCreated = FALSE; + } +} + +void Fog2SpriteCallback(struct Sprite *sprite) +{ + sprite->pos2.y = gWeatherPtr->unknown_71A; + sprite->pos1.x = gWeatherPtr->unknown_718 + 32 + sprite->data[0] * 64; + if (sprite->pos1.x > 271) + { + sprite->pos1.x = gWeatherPtr->unknown_718 + 0x1E0 - (4 - sprite->data[0]) * 64; + sprite->pos1.x &= 0x1FF; + } +} + +//------------------------------------------------------------------------------ +// Sandstorm +//------------------------------------------------------------------------------ + +void Sandstorm_InitVars(void) +{ + gWeatherPtr->initStep = 0; + gWeatherPtr->weatherGfxLoaded = 0; + gWeatherPtr->gammaTargetIndex = 0; + gWeatherPtr->gammaStepDelay = 20; + if (gWeatherPtr->sandstormSprites1Created == 0) + { + gWeatherPtr->unknown_704 = gWeatherPtr->unknown_708 = 0; + gWeatherPtr->unknown_712 = 8; + gWeatherPtr->unknown_714 = 0; + // Dead code. How does the compiler not optimize this out? + if (gWeatherPtr->unknown_712 > 0x5F) + gWeatherPtr->unknown_712 = 0x80 - gWeatherPtr->unknown_712; + Weather_SetBlendCoeffs(0, 16); + } +} + +void Sandstorm_Main(void); + +void Sandstorm_InitAll(void) +{ + Sandstorm_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + 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; + switch (gWeatherPtr->initStep) + { + case 0: + CreateSandstormSprites_1(); + CreateSandstormSprites_2(); + gWeatherPtr->initStep++; + break; + case 1: + Weather_SetTargetBlendCoeffs(16, 0, 0); + gWeatherPtr->initStep++; + break; + case 2: + if (!Weather_UpdateBlend()) + break; + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + break; + } +} + +void sub_80800E4(void); + +bool8 Sandstorm_Finish(void) +{ + sub_8080064(); + sub_808002C(); + switch (gWeatherPtr->finishStep) + { + case 0: + Weather_SetTargetBlendCoeffs(0, 16, 0); + gWeatherPtr->finishStep++; + break; + case 1: + if (!Weather_UpdateBlend()) + break; + gWeatherPtr->finishStep++; + break; + case 2: + sub_80800E4(); + gWeatherPtr->finishStep++; + break; + default: + return FALSE; + } + return TRUE; +} + +void sub_808002C(void) +{ + if (gWeatherPtr->unknown_714++ > 4) + { + gWeatherPtr->unknown_712++; + gWeatherPtr->unknown_714 = 0; + } +} + +void sub_8080064(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); +} + +void sub_80800E4(void) +{ + u16 i; + + if (gWeatherPtr->sandstormSprites1Created) + { + for (i = 0; i < 20; i++) + { + if (gWeatherPtr->sprites.s2.sandstormSprites1[i] != NULL) + DestroySprite(gWeatherPtr->sprites.s2.sandstormSprites1[i]); + } + gWeatherPtr->sandstormSprites1Created = FALSE; + FreeSpriteTilesByTag(0x1204); + } + + if (gWeatherPtr->sandstormSprites2Created) + { + for (i = 0; i < 5; i++) + { + if (gWeatherPtr->sprites.s2.sandstormSprites2[i] != NULL) + DestroySprite(gWeatherPtr->sprites.s2.sandstormSprites2[i]); + } + gWeatherPtr->sandstormSprites2Created = FALSE; + } +} + +const struct OamData gOamData_839AC1C = +{ + .y = 0, + .affineMode = 0, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +const union AnimCmd gSpriteAnim_839AC24[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_839AC2C[] = +{ + ANIMCMD_FRAME(64, 3), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_839AC34[] = +{ + gSpriteAnim_839AC24, + gSpriteAnim_839AC2C, +}; + +void SandstormSpriteCallback1(struct Sprite *); +const struct SpriteTemplate sSandstormSpriteTemplate = +{ + .tileTag = 4612, + .paletteTag = 4609, + .oam = &gOamData_839AC1C, + .anims = gSpriteAnimTable_839AC34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SandstormSpriteCallback1, +}; + +static const struct SpriteSheet sSandstormSpriteSheet = {gWeatherSandstormTiles, sizeof(gWeatherSandstormTiles), 0x1204}; + +void CreateSandstormSprites_1(void) +{ + u16 i; + + if (!gWeatherPtr->sandstormSprites1Created) + { + LoadSpriteSheet(&sSandstormSpriteSheet); + LoadCustomWeatherSpritePalette(gUnknown_0854C2B0); + for (i = 0; i < 20; i++) + { + u8 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; + } + else + { + gWeatherPtr->sprites.s2.sandstormSprites1[i] = NULL; + } + } + gWeatherPtr->sandstormSprites1Created = TRUE; + } +} + +const u16 gUnknown_0839AC5C[] = {0, 120, 80, 160, 40, 0}; + +void SandstormSpriteCallback2(struct Sprite *); + +void CreateSandstormSprites_2(void) +{ + u16 i; + + if (!gWeatherPtr->sandstormSprites2Created) + { + for (i = 0; i < 5; i++) + { + u8 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]; + StartSpriteAnim(gWeatherPtr->sprites.s2.sandstormSprites2[i], 1); + CalcCenterToCornerVec(gWeatherPtr->sprites.s2.sandstormSprites2[i], 0, 2, 0); + gWeatherPtr->sprites.s2.sandstormSprites2[i]->callback = SandstormSpriteCallback2; + } + else + { + gWeatherPtr->sprites.s2.sandstormSprites2[i] = NULL; + } + gWeatherPtr->sandstormSprites2Created = TRUE; + } + } +} + +void SandstormSpriteCallback1(struct Sprite *sprite) +{ + sprite->pos2.y = gWeatherPtr->unknown_710; + sprite->pos1.x = gWeatherPtr->unknown_70E + 32 + sprite->data[0] * 64; + if (sprite->pos1.x > 271) + { + sprite->pos1.x = gWeatherPtr->unknown_70E + 0x1E0 - (4 - sprite->data[0]) * 64; + sprite->pos1.x &= 0x1FF; + } +} + +void SandstormSpriteCallback3(struct Sprite *); + +void SandstormSpriteCallback2(struct Sprite *sprite) +{ + if (--sprite->data[3] == -1) + sprite->callback = SandstormSpriteCallback3; +} + +void SandstormSpriteCallback3(struct Sprite *sprite) +{ + u32 x; + u32 y; + + if (--sprite->pos1.y < -48) + { + sprite->pos1.y = 208; + sprite->data[0] = 4; + } + x = sprite->data[0] * gSineTable[sprite->data[1]]; + y = sprite->data[0] * gSineTable[sprite->data[1] + 64]; + sprite->pos2.x = x >> 8; + sprite->pos2.y = y >> 8; + sprite->data[1] = (sprite->data[1] + 10) & 0xFF; + if (++sprite->data[2] > 8) + { + sprite->data[2] = 0; + sprite->data[0]++; + } +} + +//------------------------------------------------------------------------------ +// Shade +//------------------------------------------------------------------------------ + +void Shade_InitVars(void) +{ + gWeatherPtr->initStep = 0; + gWeatherPtr->gammaTargetIndex = 3; + gWeatherPtr->gammaStepDelay = 20; +} + +void Shade_InitAll(void) +{ + Shade_InitVars(); +} + +void Shade_Main(void) +{ +} + +bool8 Shade_Finish(void) +{ + return FALSE; +} + +//------------------------------------------------------------------------------ +// Weather 14 +//------------------------------------------------------------------------------ + +const u8 gUnknown_0839AC68[] = {40, 90, 60, 90, 2, 60, 40, 30}; + +const struct SpriteSheet gWeatherBubbleSpriteSheet = {gWeatherBubbleTiles, sizeof(gWeatherBubbleTiles), 0x1205}; + +void Bubbles_InitVars(void) +{ + Fog1_InitVars(); + if (gWeatherPtr->unknown_72E == 0) + { + LoadSpriteSheet(&gWeatherBubbleSpriteSheet); + gWeatherPtr->unknown_728 = 0; + gWeatherPtr->unknown_726 = gUnknown_0839AC68[0]; + gWeatherPtr->unknown_72A = 0; + gWeatherPtr->unknown_72C = 0; + } +} + +void Bubbles_Main(void); + +void Bubbles_InitAll(void) +{ + Bubbles_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + Bubbles_Main(); +} + +void sub_8080588(u16); + +void Bubbles_Main(void) +{ + Fog1_Main(); + if (++gWeatherPtr->unknown_726 > gUnknown_0839AC68[gWeatherPtr->unknown_728]) + { + 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; + } +} + +void sub_8080610(void); + +bool8 Bubbles_Finish(void) +{ + if (!Fog1_Finish()) + { + sub_8080610(); + 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[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_839ACB8[] = +{ + gSpriteAnim_839ACAC, +}; + +extern const struct OamData gUnknown_08524904; + +void unc_0807DAB4(struct Sprite *); +const struct SpriteTemplate gSpriteTemplate_839ACBC = +{ + .tileTag = 4613, + .paletteTag = 4608, + .oam = &gUnknown_08524904, + .anims = gSpriteAnimTable_839ACB8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = unc_0807DAB4, +}; + +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); + + 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++; + } +} + +void sub_8080610(void) +{ + u16 i; + + if (gWeatherPtr->unknown_72C != 0) + { + for (i = 0; i < 64; i++) + { + if (gSprites[i].template == &gSpriteTemplate_839ACBC) + DestroySprite(&gSprites[i]); + } + FreeSpriteTilesByTag(0x1205); + gWeatherPtr->unknown_72C = 0; + } +} + +void unc_0807DAB4(struct Sprite *sprite) +{ + ++sprite->data[0]; + if (++sprite->data[0] > 8) // double increment + { + sprite->data[0] = 0; + if (sprite->data[1] == 0) + { + if (++sprite->pos2.x > 4) + sprite->data[1] = 1; + } + else + { + if (--sprite->pos2.x <= 0) + sprite->data[1] = 0; + } + } + sprite->pos1.y -= 3; + if (++sprite->data[2] > 0x77) + DestroySprite(sprite); +} + +//------------------------------------------------------------------------------ + +static void sub_80AEC94(u32 a0, u32 a1) +{ + gUnknown_02038BC4 = a0; + gUnknown_02038BC6 = a1; +} + +static void sub_80AECA8(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + if (data[15]-- <= 0) + { + ChangeWeather(data[1]); + gUnknown_02038BC4 = data[1]; + data[15] = 600; + data[0]++; + } + break; + case 1: + if (data[15]-- <= 0) + { + ChangeWeather(data[2]); + gUnknown_02038BC4 = data[2]; + data[15] = 600; + data[0] = 0; + } + break; + } +} + +static void sub_80AED28(void) +{ + u8 taskId = CreateTask(sub_80AECA8, 0); + s16 *data = gTasks[taskId].data; + + data[15] = 600; + if (gUnknown_02038BC4 == WEATHER_RAIN_HEAVY) + { + data[1] = WEATHER_DROUGHT; + data[2] = WEATHER_RAIN_HEAVY; + } + else if (gUnknown_02038BC4 == WEATHER_DROUGHT) + { + data[1] = WEATHER_RAIN_HEAVY; + data[2] = WEATHER_DROUGHT; + } + else + { + gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + data[1] = WEATHER_DROUGHT; + data[2] = WEATHER_RAIN_HEAVY; + } +} + +static u8 TranslateWeatherNum(u8); +static void UpdateRainCounter(u8, u8); + +void SetSav1Weather(u32 weather) +{ + u8 oldWeather = gSaveBlock1Ptr->weather; + gSaveBlock1Ptr->weather = TranslateWeatherNum(weather); + UpdateRainCounter(gSaveBlock1Ptr->weather, oldWeather); +} + +u8 GetSav1Weather(void) +{ + return gSaveBlock1Ptr->weather; +} + +void SetSav1WeatherFromCurrMapHeader(void) +{ + u8 oldWeather = gSaveBlock1Ptr->weather; + gSaveBlock1Ptr->weather = TranslateWeatherNum(gMapHeader.weather); + UpdateRainCounter(gSaveBlock1Ptr->weather, oldWeather); +} + +void SetWeather(u32 weather) +{ + SetSav1Weather(weather); + ChangeWeather(GetSav1Weather()); +} + +void SetWeather_Unused(u32 weather) +{ + SetSav1Weather(weather); + sub_80AB104(GetSav1Weather()); +} + +void DoCurrentWeather(void) +{ + u8 weather = GetSav1Weather(); + + if (weather == WEATHER_15) + { + if (!FuncIsActiveTask(sub_80AECA8)) + sub_80AED28(); + weather = gUnknown_02038BC4; + } + else + { + if (FuncIsActiveTask(sub_80AECA8)) + DestroyTask(FindTaskIdByFunc(sub_80AECA8)); + gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + } + ChangeWeather(weather); +} + +void sub_80AEE84(void) +{ + u8 weather = GetSav1Weather(); + + if (weather == WEATHER_15) + { + if (!FuncIsActiveTask(sub_80AECA8)) + sub_80AED28(); + weather = gUnknown_02038BC4; + } + else + { + if (FuncIsActiveTask(sub_80AECA8)) + DestroyTask(FindTaskIdByFunc(sub_80AECA8)); + gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + } + sub_80AB104(weather); +} + +static const u8 sWeatherCycleRoute119[] = +{ + WEATHER_SUNNY, + WEATHER_RAIN_LIGHT, + WEATHER_RAIN_MED, + WEATHER_RAIN_LIGHT, +}; +static const u8 sWeatherCycleRoute123[] = +{ + WEATHER_SUNNY, + WEATHER_SUNNY, + WEATHER_RAIN_LIGHT, + WEATHER_SUNNY, +}; + +static u8 TranslateWeatherNum(u8 weather) +{ + switch (weather) + { + case WEATHER_NONE: return WEATHER_NONE; + case WEATHER_CLOUDS: return WEATHER_CLOUDS; + case WEATHER_SUNNY: return WEATHER_SUNNY; + case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT; + case WEATHER_SNOW: return WEATHER_SNOW; + case WEATHER_RAIN_MED: return WEATHER_RAIN_MED; + case WEATHER_FOG_1: return WEATHER_FOG_1; + case WEATHER_ASH: return WEATHER_ASH; + case WEATHER_SANDSTORM: return WEATHER_SANDSTORM; + case WEATHER_FOG_2: return WEATHER_FOG_2; + case WEATHER_FOG_3: return WEATHER_FOG_3; + case WEATHER_SHADE: return WEATHER_SHADE; + case WEATHER_DROUGHT: return WEATHER_DROUGHT; + case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY; + case WEATHER_BUBBLES: return WEATHER_BUBBLES; + case WEATHER_15: return WEATHER_15; + case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1Ptr->weatherCycleStage]; + case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1Ptr->weatherCycleStage]; + default: return WEATHER_NONE; + } +} + +void UpdateWeatherPerDay(u16 increment) +{ + u16 weatherStage = gSaveBlock1Ptr->weatherCycleStage + increment; + weatherStage %= 4; + gSaveBlock1Ptr->weatherCycleStage = weatherStage; +} + +static void UpdateRainCounter(u8 newWeather, u8 oldWeather) +{ + if (newWeather != oldWeather + && (newWeather == WEATHER_RAIN_LIGHT || newWeather == WEATHER_RAIN_MED)) + IncrementGameStat(GAME_STAT_GOT_RAINED_ON); +} diff --git a/src/fieldmap.c b/src/fieldmap.c index 0d8a706b1..7e1fc03eb 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -496,7 +496,7 @@ u16 GetBehaviorByMetatileId(u16 metatile) } else { - return 0xff; + return 0xFF; } } diff --git a/src/fire.c b/src/fire.c index 02c0db81c..44ae9d320 100644 --- a/src/fire.c +++ b/src/fire.c @@ -1,24 +1,43 @@ #include "global.h" #include "battle_anim.h" #include "constants/rgb.h" +#include "constants/songs.h" +#include "sound.h" +#include "util.h" +#include "task.h" +#include "trig.h" -extern void sub_8108EC8(struct Sprite *); -extern void sub_8108F08(struct Sprite *); -extern void sub_8108FBC(struct Sprite *); -extern void sub_8108F4C(struct Sprite *); -extern void sub_8109064(struct Sprite *); -extern void sub_810916C(struct Sprite *); -extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *); -extern void sub_8109198(struct Sprite *); -extern void sub_8109200(struct Sprite *); -extern void sub_810921C(struct Sprite *); -extern void sub_8109364(struct Sprite *); -extern void sub_81093A4(struct Sprite *); -extern void sub_80A8EE4(struct Sprite *); -extern void sub_81098EC(struct Sprite *); -extern void sub_8109A10(struct Sprite *); -extern void sub_8109AFC(struct Sprite *); -extern void sub_8109CB0(struct Sprite *); +static void sub_8108EC8(struct Sprite *); +static void sub_8108F08(struct Sprite *); +static void sub_8108F4C(struct Sprite *); +static void sub_8108FBC(struct Sprite *); +static void sub_8109028(struct Sprite *); +static void sub_8109064(struct Sprite *); +static void sub_81090D8(struct Sprite *); +static void sub_810916C(struct Sprite *); +static void AnimEmberFlare(struct Sprite *); +static void sub_8109200(struct Sprite *); +static void AnimFireRing(struct Sprite *); +static void AnimFireRingStep1(struct Sprite *); +static void AnimFireRingStep2(struct Sprite *); +static void AnimFireRingStep3(struct Sprite *); +static void UpdateFireRingCircleOffset(struct Sprite *); +static void AnimFireCross(struct Sprite *); +static void sub_81093A4(struct Sprite *); +static void sub_81093E4(struct Sprite *); +static void sub_810940C(struct Sprite *); +static void sub_81094D0(u8 taskId); +static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3); +static void sub_81098EC(struct Sprite *); +static u16 sub_8109930(u8 spriteId); +static void sub_8109984(struct Sprite *sprite, s16 x, s16 y); +static void sub_81099A0(struct Sprite *); +static void sub_8109A10(struct Sprite *); +static void sub_8109A64(struct Sprite *); +static void sub_8109AFC(struct Sprite *); +static void sub_8109C4C(struct Sprite *); +static void sub_8109CB0(struct Sprite *); +static void sub_8109E2C(u8 taskId); const union AnimCmd gUnknown_08595340[] = { @@ -234,7 +253,7 @@ const struct SpriteTemplate gEmberFlareSpriteTemplate = .anims = gUnknown_085954D0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8109198, + .callback = AnimEmberFlare, }; const struct SpriteTemplate gUnknown_08595504 = @@ -256,7 +275,7 @@ const struct SpriteTemplate gUnknown_0859551C = .anims = gUnknown_085954D0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_810921C, + .callback = AnimFireRing, }; const union AnimCmd gUnknown_08595534[] = @@ -297,7 +316,7 @@ const struct SpriteTemplate gUnknown_0859556C = .anims = gUnknown_08595540, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8109364, + .callback = AnimFireCross, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_8595584 = @@ -436,3 +455,867 @@ const s8 gUnknown_08595694[16] = { -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, }; + +static void sub_8108EC8(struct Sprite *sprite) +{ + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[1] = 0x3C; + sprite->data[2] = 0x9; + sprite->data[3] = 0x1E; + sprite->data[4] = 0xFE00; + + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + + sprite->callback = sub_80A634C; + sprite->callback(sprite); +} + +static void sub_8108F08(struct Sprite *sprite) +{ + sub_80A6864(sprite, gBattleAnimArgs[0]); + + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = gBattleAnimArgs[2]; + sprite->data[2] = gBattleAnimArgs[3]; + + sprite->callback = sub_80A656C; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +static void sub_8108F4C(struct Sprite *sprite) +{ + sub_80A6838(sprite); + + if (GetBattlerSide(gBattleAnimAttacker)) + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[2] = -gBattleAnimArgs[4]; + } + else + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[2] = gBattleAnimArgs[4]; + } + + sprite->data[1] = gBattleAnimArgs[2]; + sprite->data[4] = gBattleAnimArgs[3]; + sprite->data[3] = gBattleAnimArgs[5]; + + sprite->callback = sub_8109028; +} + +static void sub_8108FBC(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker)) + { + sprite->pos1.x -= gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[2] = gBattleAnimArgs[4]; + } + else + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[2] = -gBattleAnimArgs[4]; + } + + sprite->data[1] = gBattleAnimArgs[2]; + sprite->data[4] = gBattleAnimArgs[3]; + sprite->data[3] = gBattleAnimArgs[5]; + + sprite->callback = sub_8109028; +} + +static void sub_8109028(struct Sprite *sprite) +{ + if (++sprite->data[0] < sprite->data[4]) + { + sprite->pos2.x += sprite->data[2]; + sprite->pos2.y += sprite->data[3]; + } + + if (sprite->data[0] == sprite->data[1]) + move_anim_8074EE0(sprite); +} + +static void sub_8109064(struct Sprite *sprite) +{ + sub_80A6838(sprite); + + if (GetBattlerSide(gBattleAnimAttacker)) + { + sprite->pos1.x -= gBattleAnimArgs[0]; + } + else + { + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->subpriority = 8; + } + + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + sprite->data[3] = gBattleAnimArgs[5]; + sprite->data[4] = gBattleAnimArgs[6]; + sprite->data[5] = 0; + + sprite->callback = sub_81090D8; +} + +static void sub_81090D8(struct Sprite *sprite) +{ + if (sprite->data[3]) + { + if(sprite->data[5] > 10000) + sprite->subpriority = 1; + + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8)); + sprite->pos2.y = Cos(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8)); + + sprite->data[0] += sprite->data[2]; + sprite->data[5] += sprite->data[4]; + + if (sprite->data[0] > 255) + sprite->data[0] -= 256; + else if (sprite->data[0] < 0) + sprite->data[0] += 256; + + sprite->data[3]--; + } + else + { + move_anim_8074EE0(sprite); + } +} + +//sunlight +static void sub_810916C(struct Sprite *sprite) +{ + sprite->pos1.x = 0; + sprite->pos1.y = 0; + sprite->data[0] = 60; + sprite->data[2] = 140; + sprite->data[4] = 80; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +//fire 2 + +// Animates the secondary effect of MOVE_EMBER, where the flames grow and slide +// horizontally a bit. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: ? (todo: something related to which mon the pixel offsets are based on) +// arg 6: ? (todo: something related to which mon the pixel offsets are based on) +static void AnimEmberFlare(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget) + && (gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + || gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->callback = sub_80A7938; + sprite->callback(sprite); +} + +static void sub_8109200(struct Sprite *sprite) +{ + gBattleAnimArgs[0] = -gBattleAnimArgs[0]; + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->callback = sub_80A7938; +} + +// Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST +// animation. The fire sprite first moves in a circle around the mon, +// and then it is translated towards the target mon, while still rotating. +// Lastly, it moves in a circle around the target mon. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: initial wave offset +//void AnimFireRing(struct Sprite *sprite) +void AnimFireRing(struct Sprite *sprite) +{ + InitAnimSpritePos(sprite, 1); + + sprite->data[7] = gBattleAnimArgs[2]; + sprite->data[0] = 0; + + sprite->callback = AnimFireRingStep1; +} + +static void AnimFireRingStep1(struct Sprite *sprite) +{ + UpdateFireRingCircleOffset(sprite); + + if (++sprite->data[0] == 0x12) + { + sprite->data[0] = 0x19; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + + InitAnimLinearTranslation(sprite); + + sprite->callback = AnimFireRingStep2; + } +} + +static void AnimFireRingStep2(struct Sprite *sprite) +{ + if (TranslateAnimLinear(sprite)) + { + sprite->data[0] = 0; + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->pos2.y = 0; + sprite->pos2.x = 0; + + sprite->callback = AnimFireRingStep3; + sprite->callback(sprite); + } + else + { + sprite->pos2.x += Sin(sprite->data[7], 28); + sprite->pos2.y += Cos(sprite->data[7], 28); + + sprite->data[7] = (sprite->data[7] + 20) & 0xFF; + } +} + +static void AnimFireRingStep3(struct Sprite *sprite) +{ + UpdateFireRingCircleOffset(sprite); + + if (++sprite->data[0] == 0x1F) + DestroyAnimSprite(sprite); +} + +static void UpdateFireRingCircleOffset(struct Sprite *sprite) +{ + sprite->pos2.x = Sin(sprite->data[7], 28); + sprite->pos2.y = Cos(sprite->data[7], 28); + + sprite->data[7] = (sprite->data[7] + 20) & 0xFF; +} + +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: duration +// arg 3: x delta +// arg 4: y delta +// AnimFireCross(struct Sprite *sprite) +static void AnimFireCross(struct Sprite *sprite) +{ + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + + sprite->callback = TranslateSpriteOverDuration; +} + +static void sub_81093A4(struct Sprite *sprite) +{ + InitAnimSpritePos(sprite, 1); + + sprite->data[1] = gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[3]; + + sprite->invisible = TRUE; + sprite->callback = WaitAnimForDuration; + + StoreSpriteCallbackInData6(sprite, sub_81093E4); +} + +static void sub_81093E4(struct Sprite *sprite) +{ + sprite->invisible = FALSE; + + sprite->data[0] = sprite->data[1]; + sprite->data[1] = 0; + + sprite->callback = sub_810940C; + sprite->callback(sprite); +} + +static void sub_810940C(struct Sprite *sprite) +{ + sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8); + sprite->pos2.y = Cos(sprite->data[1], sprite->data[2] >> 8); + + sprite->data[1] = (sprite->data[1] + 10) & 0xFF; + sprite->data[2] += 0xD0; + + if (--sprite->data[0] == -1) + DestroyAnimSprite(sprite); +} + +void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION? +{ + struct Task *task = &gTasks[taskId]; + + task->data[15] = GetAnimBattlerSpriteId(0); + + task->data[0] = 0; + task->data[1] = 0; + task->data[2] = 0; + task->data[3] = 0; + task->data[4] = gSprites[task->data[15]].pos1.y; + task->data[5] = GetBattlerSide(gBattleAnimAttacker); + task->data[6] = 0; + + sub_80A7270(task->data[15], 0); + + task->func = sub_81094D0; +} + +static void sub_81094D0(u8 taskId) // animate Move_ERUPTION? +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_80A805C(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20); + + task->data[0]++; + case 1: + if (++task->data[1] > 1) + { + task->data[1] = 0; + + if (++task->data[2] & 0x1) + gSprites[task->data[15]].pos2.x = 3; + else + gSprites[task->data[15]].pos2.x = -3; + } + + if (task->data[5]) + { + if (++task->data[3] > 4) + { + task->data[3] = 0; + gSprites[task->data[15]].pos1.y++; + } + } + + if(!sub_80A80C8(task)) + { + sub_80A7E6C(task->data[15]); + gSprites[task->data[15]].pos2.x = 0; + + task->data[1] = 0; + task->data[2] = 0; + task->data[3] = 0; + task->data[0]++; + } + break; + case 2: + if (++task->data[1] > 4) + { + if (task->data[5]) + sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6); + else + sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6); + + task->data[1] = 0; + task->data[0]++; + } + break; + case 3: + if (!sub_80A80C8(task)) + { + sub_81097B4(task->data[15], taskId, 6); + + task->data[0]++; + } + break; + case 4: + if (++task->data[1] > 1) + { + task->data[1] = 0; + + if (++task->data[2] & 1) + gSprites[task->data[15]].pos2.y += 3; + else + gSprites[task->data[15]].pos2.y -= 3; + } + + if (++task->data[3] > 0x18) + { + if (task->data[5]) + sub_80A805C(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8); + else + sub_80A805C(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8); + + if (task->data[2] & 1) + gSprites[task->data[15]].pos2.y -= 3; + + task->data[1] = 0; + task->data[2] = 0; + task->data[3] = 0; + task->data[0]++; + } + break; + case 5: + if (task->data[5]) + gSprites[task->data[15]].pos1.y--; + + if (!sub_80A80C8(task)) + { + gSprites[task->data[15]].pos1.y = task->data[4]; + sub_80A7344(task->data[15]); + + task->data[2] = 0; + task->data[0]++; + } + break; + case 6: + if (!task->data[6]) + DestroyAnimVisualTask(taskId); + + break; + default: + } +} + +static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3) +{ + u16 i, j; + s8 sign; + + u16 y = sub_8109930(spriteId); + u16 x = gSprites[spriteId].pos1.x; + + if(!GetBattlerSide(gBattleAnimAttacker)) + { + x -= 0xC; + sign = 1; + } + else + { + x += 0x10; + sign = -1; + } + + for (i = 0, j = 0; i <= 6; i++) + { + u8 spriteId = CreateSprite(&gUnknown_085955B4, x, y, 2); + + if (spriteId != 0x40) + { + gSprites[spriteId].oam.tileNum += j * 4 + 0x40; + + if (++j >= 5) + j = 0; + //gHeatedRockCoords + sub_8109984(&gSprites[spriteId], gUnknown_085955CC[i][0] * sign, gUnknown_085955CC[i][1]); + gSprites[spriteId].data[6] = taskId; + gSprites[spriteId].data[7] = a3; + + gTasks[taskId].data[a3]++; + } + } +} + +static void sub_81098EC(struct Sprite *sprite) +{ + sub_81099A0(sprite); + + if (sprite->invisible) + { + gTasks[sprite->data[6]].data[sprite->data[7]]--; + DestroySprite(sprite); + } +} + +static u16 sub_8109930(u8 spriteId) +{ + u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY; + + if (GetBattlerSide(gBattleAnimAttacker) == 0) + { + var1 = ((var1 << 16) + 0x4A0000) >> 16; + } + else + { + var1 = ((var1 << 16) + 0x2C0000) >> 16; + } + + return var1; +} + +static void sub_8109984(struct Sprite *sprite, s16 x, s16 y) +{ + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->data[2] = (u16)sprite->pos1.x * 8; + sprite->data[3] = (u16)sprite->pos1.y * 8; + sprite->data[4] = x * 8; + sprite->data[5] = y * 8; +} + +static void sub_81099A0(struct Sprite *sprite) +{ + int var1; + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + ++sprite->data[1]; + var1 = (u16)sprite->data[1] * (u16)sprite->data[1]; + sprite->data[3] += var1; + } + + sprite->data[2] += sprite->data[4]; + sprite->pos1.x = sprite->data[2] >> 3; + sprite->data[3] += sprite->data[5]; + sprite->pos1.y = sprite->data[3] >> 3; + + if (sprite->pos1.x < -8 || sprite->pos1.x > 0xf8 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + sprite->invisible = TRUE; +} + +static void sub_8109A10(struct Sprite *sprite) +{ + sprite->pos1.x = gBattleAnimArgs[0]; + sprite->pos1.y = gBattleAnimArgs[1]; + + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->data[6] = gBattleAnimArgs[2]; + sprite->data[7] = gBattleAnimArgs[3]; + + sprite->oam.tileNum += gBattleAnimArgs[4] * 16; + sprite->callback = sub_8109A64; +} + +static void sub_8109A64(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (sprite->data[6] != 0) + { + sprite->data[6]--; + return; + } + + sprite->data[0]++; + // fall through + case 1: + sprite->pos1.y += 8; + if (sprite->pos1.y >= sprite->data[7]) + { + sprite->pos1.y = sprite->data[7]; + sprite->data[0]++; + } + break; + case 2: + if (++sprite->data[1] > 1) + { + sprite->data[1] = 0; + if ((++sprite->data[2] & 1) != 0) + { + sprite->pos2.y = -3; + } + else + { + sprite->pos2.y = 3; + } + } + + if (++sprite->data[3] > 16) + { + DestroyAnimSprite(sprite); + } + break; + } +} + +//wisp orb +static void sub_8109AFC(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + InitAnimSpritePos(sprite, 0); + StartSpriteAnim(sprite, gBattleAnimArgs[2]); + sprite->data[7] = gBattleAnimArgs[2]; + + if (GetBattlerSide(gBattleAnimAttacker) != 0) + { + sprite->data[4] = 4; + } + else + { + sprite->data[4] = -4; + } + + sprite->oam.priority = sub_80A8328(gBattleAnimTarget); + sprite->data[0]++; + break; + case 1: + sprite->data[1] += 192; + if (GetBattlerSide(gBattleAnimAttacker) != 0) + { + sprite->pos2.y = -(sprite->data[1] >> 8); + } + else + { + sprite->pos2.y = sprite->data[1] >> 8; + } + + sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]); + sprite->data[2] = (sprite->data[2] + 4) & 0xFF; + + if (++sprite->data[3] == 1) + { + sprite->data[3] = 0; + sprite->data[0]++; + } + break; + case 2: + sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]); + sprite->data[2] = (sprite->data[2] + 4) & 0xFF; + + if (++sprite->data[3] == 31) + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.y = 0; + sprite->pos2.x = 0; + + sprite->data[0] = 256; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + + sub_80A6FD4(sprite); + sprite->callback = sub_8109C4C; + } + break; + } +} + +static void sub_8109C4C(struct Sprite *sprite) +{ + s16 initialData5; + s16 newData5; + + if (!TranslateAnimLinear(sprite)) + { + sprite->pos2.x += Sin(sprite->data[5], 16); + initialData5 = sprite->data[5]; + sprite->data[5] = (sprite->data[5] + 4) & 0xFF; + newData5 = sprite->data[5]; + + if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0) + { + PlaySE12WithPanning(SE_W172, gUnknown_02038440); + } + } + else + { + DestroyAnimSprite(sprite); + } +} + +//wisp fire +void sub_8109CB0(struct Sprite *sprite) +{ + if (!sprite->data[0]) + { + sprite->data[1] = gBattleAnimArgs[0]; + sprite->data[0] += 1; + } + + sprite->data[3] += 0xC0 * 2; + sprite->data[4] += 0xA0; + + sprite->pos2.x = Sin(sprite->data[1], sprite->data[3] >> 8); + sprite->pos2.y = Cos(sprite->data[1], sprite->data[4] >> 8); + + sprite->data[1] = (sprite->data[1] + 7) & 0xFF; + + if (!IsContest()) + { + if (sprite->data[1] < 64 || sprite->data[1] > 195) + sprite->oam.priority = sub_80A8328(gBattleAnimTarget); + else + sprite->oam.priority = sub_80A8328(gBattleAnimTarget) + 1; + } + else + { + if (sprite->data[1] < 64 || sprite->data[1] > 195) + sprite->subpriority = 0x1D; + else + sprite->subpriority = 0x1F; + } + + if (++sprite->data[2] > 0x14) + sprite->invisible ^= 1; + + if (sprite->data[2] == 0x1E) + DestroyAnimSprite(sprite); +} + +void sub_8109DBC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1; + task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1; + task->data[14] = GetAnimBattlerSpriteId(1); + task->data[15] = GetAnimBattlerSpriteId(3); + + task->func = sub_8109E2C; +} + +static void sub_8109E2C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + task->data[10] += task->data[12] * 2; + if (++task->data[1] >= 2) + { + task->data[1] = 0; + task->data[2]++; + if (task->data[2] & 1) + task->data[11] = 2; + else + task->data[11] = -2; + } + + for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) + { + gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11]; + } + + if (++task->data[9] == 16) + { + task->data[9] = 0; + task->data[0]++; + } + break; + case 1: + if (++task->data[1] >= 5) + { + task->data[1] = 0; + task->data[2]++; + + if (task->data[2] & 1) + task->data[11] = 2; + else + task->data[11] = -2; + } + + for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) + { + gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11]; + } + + if (++task->data[9] == 96) + { + task->data[9] = 0; + task->data[0]++; + } + break; + case 2: + task->data[10] -= task->data[12] * 2; + + if (++task->data[1] >= 2) + { + task->data[1] = 0; + task->data[2]++; + + if (task->data[2] & 1) + task->data[11] = 2; + else + task->data[11] = -2; + } + + for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) + { + gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11]; + } + + if (++task->data[9] == 16) + { + task->data[0]++; + } + break; + case 3: + for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++) + { + gSprites[task->data[task->data[3] + 14]].pos2.x = 0; + } + + DestroyAnimVisualTask(taskId); + break; + } +} + +// Used to add a color mask to the battle interface / HUD in Heat Wave. +// arg 0: opacity +// arg 1: color code +void AnimTask_BlendBackground(u8 taskId) +{ + struct UnknownAnimStruct2 unk; + sub_80A6B30(&unk); + BlendPalette(unk.unk8 << 4, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor + DestroyAnimVisualTask(taskId); +} + +void sub_810A094(u8 taskId) +{ + s8 unk; + u8 spriteId; + + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[1] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = gBattleAnimArgs[1]; + gTasks[taskId].data[3] = gBattleAnimArgs[2]; + gTasks[taskId].data[4] = gBattleAnimArgs[3]; + } + gTasks[taskId].data[0]++; + + spriteId = gBattlerSpriteIds[gBattleAnimTarget]; + + if (!gTasks[taskId].data[4]) + unk = gUnknown_08595684[gTasks[taskId].data[0] % 10]; + else + unk = gUnknown_08595694[gTasks[taskId].data[0] % 10]; + + if (gTasks[taskId].data[3] == 1) + gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk; + else + gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * unk; + + if (gTasks[taskId].data[0] == gTasks[taskId].data[1]) + { + gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].pos2.y = 0; + DestroyAnimVisualTask(taskId); + } +}
\ No newline at end of file diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 230a95e0b..6a310efd2 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -6,7 +6,7 @@ #include "field_player_avatar.h" #include "fieldmap.h" #include "fldeff_cut.h" -#include "malloc.h" +#include "alloc.h" #include "metatile_behavior.h" #include "overworld.h" #include "party_menu.h" diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 9771232f2..8862caa9f 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -170,7 +170,7 @@ static bool8 sub_8137304(void) return FALSE; } -bool8 sub_8137360(u8 a1, u8 a2) +bool8 GetMapPairFadeToType(u8 a1, u8 a2) { u8 i; u8 v0 = a1; @@ -187,7 +187,7 @@ bool8 sub_8137360(u8 a1, u8 a2) return FALSE; } -bool8 fade_type_for_given_maplight_pair(u8 a1, u8 a2) +bool8 GetMapPairFadeFromType(u8 a1, u8 a2) { u8 i; u8 v0 = a1; diff --git a/src/fldeff_groundshake.c b/src/fldeff_groundshake.c index e9a46bb86..866606a06 100644 --- a/src/fldeff_groundshake.c +++ b/src/fldeff_groundshake.c @@ -2,7 +2,7 @@ #include "event_data.h" #include "event_object_movement.h" #include "field_camera.h" -#include "malloc.h" +#include "alloc.h" #include "random.h" #include "roulette_util.h" #include "script.h" @@ -32,7 +32,17 @@ static void sub_81BEA20(void); static void sub_81BEAD8(struct Sprite* sprite); // rodata -static const u8 gUnknown_08617E18[] = {0x3b, 0x43, 0x61, 0x00, 0x0f, 0x05, 0xff, 0x9b}; +const struct InnerStruct203CF18_3 gUnknown_08617E18 = { + .unk0 = 0x433b, + .unk2 = 0x61, + .unk4 = 0x0F, + .unk5 = 0x05, + .unk6 = 0xFF, + .unk7_0 = 0xB, + .unk7_4 = 0x1, + .unk7_6 = 0, + .unk7_7 = 1, +}; static const union AnimCmd gSpriteAnim_8617E20[] = { @@ -131,7 +141,7 @@ void sub_81BE6B8(void) gUnknown_0203CF18 = (struct Struct203CF18 *)AllocZeroed(sizeof(struct Struct203CF18)); sub_8151B3C(&(gUnknown_0203CF18->unk4)); - sub_8151B68(&(gUnknown_0203CF18->unk4), gUnknown_08617E18); + sub_8151B68(&(gUnknown_0203CF18->unk4), &gUnknown_08617E18); sub_8151CA8(&(gUnknown_0203CF18->unk4), 1, 1); gUnknown_0203CF18->taskId = CreateTask(sub_81BE698, 0xFF); } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 9951fe581..cd8fa400d 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -3,7 +3,8 @@ #include "event_scripts.h" #include "field_effect.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" +#include "field_weather.h" #include "palette.h" #include "party_menu.h" #include "rom6.h" @@ -40,7 +41,7 @@ bool8 FldEff_SweetScent(void) { u8 taskId; - sub_80AC3D0(); + SetWeatherScreenFadeOut(); taskId = oei_task_add(); gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16; gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect; diff --git a/src/fossil_specials.c b/src/fossil_specials.c index 8164a3a78..dfdb999a9 100644 --- a/src/fossil_specials.c +++ b/src/fossil_specials.c @@ -8,7 +8,7 @@ #include "fieldmap.h" #include "global.fieldmap.h" #include "gpu_regs.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "random.h" #include "script.h" @@ -458,104 +458,104 @@ static void sub_81BF2B8(u8* a, u16 b, u8 c, u8 d, u8 e) { 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, 0x8\n\ - str r0, [sp]\n\ - mov r10, r1\n\ - adds r6, r2, 0\n\ - mov r8, r3\n\ - ldr r0, [sp, 0x28]\n\ - mov r9, r0\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - mov r10, r1\n\ - lsls r6, 24\n\ - lsrs r6, 24\n\ - mov r0, r8\n\ - lsls r0, 24\n\ - mov r8, r0\n\ - lsrs r7, r0, 24\n\ - mov r1, r9\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r9, r1\n\ - mov r0, r10\n\ - adds r1, r7, 0\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ - lsls r5, 24\n\ - lsrs r4, r5, 24\n\ - ldr r3, =gUnknown_030012A8\n\ - strh r4, [r3]\n\ - mov r0, r10\n\ - adds r1, r7, 0\n\ - str r3, [sp, 0x4]\n\ - bl __modsi3\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r3, [sp, 0x4]\n\ - strh r2, [r3, 0x2]\n\ - movs r1, 0x7\n\ - ands r4, r1\n\ - ands r2, r1\n\ - strh r4, [r3, 0x4]\n\ - strh r2, [r3, 0x6]\n\ - lsrs r0, 27\n\ - lsrs r5, 27\n\ - strh r0, [r3, 0x8]\n\ - strh r5, [r3, 0xA]\n\ - mov r1, r8\n\ - lsrs r1, 27\n\ - lsls r1, 6\n\ - mov r8, r1\n\ - mov r1, r8\n\ - muls r1, r5\n\ - lsls r0, 6\n\ - adds r1, r0\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - strh r1, [r3, 0xC]\n\ - lsls r4, 3\n\ - adds r4, r2\n\ - adds r1, r4\n\ - lsls r4, r1, 16\n\ - lsrs r4, 17\n\ - strh r1, [r3, 0xE]\n\ - movs r1, 0x1\n\ - mov r0, r10\n\ - ands r1, r0\n\ - movs r2, 0x1\n\ - eors r1, r2\n\ - lsls r0, r1, 2\n\ - lsls r6, r0\n\ - eors r1, r2\n\ - lsls r1, 2\n\ - movs r0, 0xF\n\ - lsls r0, r1\n\ - orrs r6, r0\n\ - lsls r6, 24\n\ - lsrs r6, 24\n\ - mov r1, r9\n\ - lsls r1, 5\n\ - mov r9, r1\n\ - add r9, r4\n\ - ldr r1, [sp]\n\ - add r1, r9\n\ - ldrb r0, [r1]\n\ - ands r6, r0\n\ - strb r6, [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\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x8\n\ + str r0, [sp]\n\ + mov r10, r1\n\ + adds r6, r2, 0\n\ + mov r8, r3\n\ + ldr r0, [sp, 0x28]\n\ + mov r9, r0\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + mov r10, r1\n\ + lsls r6, 24\n\ + lsrs r6, 24\n\ + mov r0, r8\n\ + lsls r0, 24\n\ + mov r8, r0\n\ + lsrs r7, r0, 24\n\ + mov r1, r9\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r9, r1\n\ + mov r0, r10\n\ + adds r1, r7, 0\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ + lsls r5, 24\n\ + lsrs r4, r5, 24\n\ + ldr r3, =gUnknown_030012A8\n\ + strh r4, [r3]\n\ + mov r0, r10\n\ + adds r1, r7, 0\n\ + str r3, [sp, 0x4]\n\ + bl __modsi3\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + ldr r3, [sp, 0x4]\n\ + strh r2, [r3, 0x2]\n\ + movs r1, 0x7\n\ + ands r4, r1\n\ + ands r2, r1\n\ + strh r4, [r3, 0x4]\n\ + strh r2, [r3, 0x6]\n\ + lsrs r0, 27\n\ + lsrs r5, 27\n\ + strh r0, [r3, 0x8]\n\ + strh r5, [r3, 0xA]\n\ + mov r1, r8\n\ + lsrs r1, 27\n\ + lsls r1, 6\n\ + mov r8, r1\n\ + mov r1, r8\n\ + muls r1, r5\n\ + lsls r0, 6\n\ + adds r1, r0\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + strh r1, [r3, 0xC]\n\ + lsls r4, 3\n\ + adds r4, r2\n\ + adds r1, r4\n\ + lsls r4, r1, 16\n\ + lsrs r4, 17\n\ + strh r1, [r3, 0xE]\n\ + movs r1, 0x1\n\ + mov r0, r10\n\ + ands r1, r0\n\ + movs r2, 0x1\n\ + eors r1, r2\n\ + lsls r0, r1, 2\n\ + lsls r6, r0\n\ + eors r1, r2\n\ + lsls r1, 2\n\ + movs r0, 0xF\n\ + lsls r0, r1\n\ + orrs r6, r0\n\ + lsls r6, 24\n\ + lsrs r6, 24\n\ + mov r1, r9\n\ + lsls r1, 5\n\ + mov r9, r1\n\ + add r9, r4\n\ + ldr r1, [sp]\n\ + add r1, r9\n\ + ldrb r0, [r1]\n\ + ands r6, r0\n\ + strb r6, [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\ "); } #endif // NONMATCHING diff --git a/src/frontier_util.c b/src/frontier_util.c index a35088f6f..2fc58241a 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -24,7 +24,7 @@ #include "data2.h" #include "record_mixing.h" #include "strings.h" -#include "malloc.h" +#include "alloc.h" #include "save.h" #include "load_save.h" #include "battle_dome.h" @@ -44,18 +44,10 @@ struct FrontierBrainMon u16 heldItem; u8 fixedIV; u8 nature; - u8 evs[6]; + u8 evs[NUM_STATS]; u16 moves[4]; }; -extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; -extern const u8 *const gUnknown_08611D08[]; -extern const u8 *const gUnknown_08611CB0[][2]; -extern const u8 *const gUnknown_08611D00[]; -extern const u8 *const *const gUnknown_08611DB0[]; -extern const u8 *const *const gUnknown_08611DB8[]; -extern const u16 gFacilityToBrainTrainerId[]; - extern void sub_81B8558(void); // This file's functions. @@ -690,6 +682,107 @@ const u16 gFrontierBannedSpecies[] = SPECIES_KYOGRE, SPECIES_GROUDON, SPECIES_RAYQUAZA, SPECIES_JIRACHI, SPECIES_DEOXYS, 0xFFFF }; +static const u8 *const gUnknown_08611CB0[][2] = +{ + {gText_BattleTower2, gUnknown_085ED164}, + {gText_BattleTower2, gUnknown_085ED170}, + {gText_BattleTower2, gUnknown_085ED17C}, + {gText_BattleDome, gUnknown_085ED164}, + {gText_BattlePalace, gUnknown_085ED164}, + {gText_BattleArena, gUnknown_085ED190}, + {gText_BattleFactory, gUnknown_085ED164}, + {gText_BattlePike, gUnknown_085ED190}, + {gText_BattlePyramid, gUnknown_085ED190}, + {gText_BattleTower2, gUnknown_085ED188}, +}; + +static const u8 *const gLevelModeText[] = +{ + gText_RecordsLv50, + gText_RecordsOpenLevel, +}; + +static const u8 *const gHallFacilityToRecordsText[] = +{ + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityClearStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityKOsStreak, + gText_FrontierFacilityWinStreak, + gText_FrontierFacilityRoomsCleared, + gText_FrontierFacilityFloorsCleared, + gText_FrontierFacilityWinStreak, +}; + +static const u16 gFacilityToBrainTrainerId[] = +{ + [FRONTIER_FACILITY_TOWER] = TRAINER_ANABEL, + [FRONTIER_FACILITY_DOME] = TRAINER_TUCKER, + [FRONTIER_FACILITY_PALACE] = TRAINER_SPENSER, + [FRONTIER_FACILITY_ARENA] = TRAINER_GRETA, + [FRONTIER_FACILITY_FACTORY] = TRAINER_NOLAND, + [FRONTIER_FACILITY_PIKE] = TRAINER_LUCY, + [FRONTIER_FACILITY_PYRAMID] = TRAINER_BRANDON, +}; + +static const u8 *const gUnknown_08611D40[] = +{ + gText_082C843F, + gText_082C848B, + gText_082C8628, + gText_082C85B4, + gText_082C8512, + gText_082C859D, + gText_082C86C3, +}; + +static const u8 *const gUnknown_08611D5C[] = +{ + gText_082C8458, + gText_082C84C1, + gText_082C8662, + gText_082C85E3, + gText_082C853B, + gText_082C85A4, + gText_082C86FE, +}; + +static const u8 *const gUnknown_08611D78[] = +{ + gText_082C846C, + gText_082C84D0, + gText_082C8682, + gText_082C85F5, + gText_082C8561, + gText_082C85A9, + gText_082C8739, +}; + +static const u8 *const gUnknown_08611D94[] = +{ + gText_082C8480, + gText_082C84F7, + gText_082C86B3, + gText_082C8611, + gText_082C8589, + gText_082C85AE, + gText_082C877B, +}; + +static const u8 *const *const gUnknown_08611DB0[] = +{ + gUnknown_08611D40, + gUnknown_08611D78, +}; + +static const u8 *const *const gUnknown_08611DB8[] = +{ + gUnknown_08611D5C, + gUnknown_08611D94, +}; + // code void CallFrontierUtilFunc(void) { @@ -2129,8 +2222,8 @@ static void Print1PRecord(s32 position, s32 x, s32 y, struct RankingHall1P *hall if (winStreak > 9999) winStreak = 9999; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); - StringExpandPlaceholders(gStringVar4, gUnknown_08611D08[hallFacilityId]); - AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gUnknown_08611D08[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); + StringExpandPlaceholders(gStringVar4, gHallFacilityToRecordsText[hallFacilityId]); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gHallFacilityToRecordsText[hallFacilityId], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); } } @@ -2156,8 +2249,8 @@ static void Print2PRecord(s32 position, s32 x, s32 y, struct RankingHall2P *hall if (winStreak > 9999) winStreak = 9999; ConvertIntToDecimalStringN(gStringVar2, winStreak, STR_CONV_MODE_RIGHT_ALIGN, 4); - StringExpandPlaceholders(gStringVar4, gUnknown_08611D08[9]); - AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gUnknown_08611D08[9], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); + StringExpandPlaceholders(gStringVar4, gHallFacilityToRecordsText[9]); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, GetStringRightAlignXOffset(1, gHallFacilityToRecordsText[9], 0xC8), (8 * (y + 5 * position)) + 1, TEXT_SPEED_FF, NULL); } } @@ -2239,8 +2332,8 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) StringCopy(gStringVar1, gUnknown_08611CB0[hallFacilityId][0]); StringExpandPlaceholders(gStringVar4, gUnknown_08611CB0[hallFacilityId][1]); AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); - x = GetStringRightAlignXOffset(1, gUnknown_08611D00[lvlMode], 0xD0); - AddTextPrinterParameterized(gRecordsWindowId, 1, gUnknown_08611D00[lvlMode], x, 1, TEXT_SPEED_FF, NULL); + x = GetStringRightAlignXOffset(1, gLevelModeText[lvlMode], 0xD0); + AddTextPrinterParameterized(gRecordsWindowId, 1, gLevelModeText[lvlMode], x, 1, TEXT_SPEED_FF, NULL); if (hallFacilityId == HALL_FACILITIES_COUNT) { gSaveBlock2Ptr->frontier.field_EE1[0][PLAYER_NAME_LENGTH] = EOS; @@ -2415,7 +2508,7 @@ void CreateFrontierBrainPokemon(void) TRUE, j, TRUE, FRONTIER_BRAIN_OTID); SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, &sFrontierBrainsMons[facility][symbol][i].heldItem); - for (j = 0; j < 6; j++) + for (j = 0; j < NUM_STATS; j++) SetMonData(&gEnemyParty[monPartyId], MON_DATA_HP_EV + j, &sFrontierBrainsMons[facility][symbol][i].evs[j]); friendship = 0xFF; for (j = 0; j < 4; j++) diff --git a/src/ghost.c b/src/ghost.c index ce57df7e8..0464d1491 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -1,16 +1,46 @@ #include "global.h" +#include "battle.h" #include "battle_anim.h" +#include "gpu_regs.h" +#include "palette.h" #include "constants/rgb.h" +#include "scanline_effect.h" +#include "constants/songs.h" +#include "sound.h" +#include "trig.h" +#include "util.h" -extern void sub_811160C(struct Sprite *); -extern void sub_81117F4(struct Sprite *); -extern void sub_81119E0(struct Sprite *); -extern void sub_8111B9C(struct Sprite *); -extern void sub_8112264(struct Sprite *); -extern void sub_81129F0(struct Sprite *); -extern void sub_8112B78(struct Sprite *); -extern void sub_8112E9C(struct Sprite *); -extern void sub_8112F60(struct Sprite *); +static void sub_811160C(struct Sprite *); +static void sub_8111674(struct Sprite *); +static void sub_81116E8(struct Sprite *); +static void sub_8111764(struct Sprite *); +static void sub_81117F4(struct Sprite *); +static void sub_8111814(struct Sprite *); +static void sub_8111914(u8 taskId); +static void sub_811196C(u8 taskId); +static void InitAnimShadowBall(struct Sprite *); +static void AnimShadowBallStep(struct Sprite *); +static void sub_8111B9C(struct Sprite *); +static void sub_8111BB4(struct Sprite *); +static void sub_8111D78(u8 taskId); +static void sub_8111E78(u8 taskId); +static void sub_81120DC(u8 taskId); +static void sub_8112170(u8 taskId); +static void sub_8112264(struct Sprite *); +static void sub_8112384(struct Sprite *); +static void sub_81125E0(u8 taskId); +static void sub_811280C(u8 taskId); +static void sub_8112994(u8 taskId); +static void sub_81129F0(struct Sprite *); +static void sub_8112A4C(struct Sprite *); +static void sub_8112ACC(struct Sprite *); +static void sub_8112B44(struct Sprite *); +static void sub_8112B78(struct Sprite *); +static void sub_8112C4C(struct Sprite *); +static void sub_8112D10(u8 taskId); +static void sub_8112E9C(struct Sprite *); +static void sub_8112F60(struct Sprite *); +static void sub_8112FB8(struct Sprite *); const union AffineAnimCmd gUnknown_08596CF8[] = { @@ -65,7 +95,7 @@ const struct SpriteTemplate gUnknown_08596D58 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gUnknown_08596D54, - .callback = sub_81119E0, + .callback = InitAnimShadowBall, }; const union AnimCmd gUnknown_08596D70[] = @@ -184,3 +214,1114 @@ const struct SpriteTemplate gUnknown_08596E48 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_8112F60, }; + +static void sub_811160C(struct Sprite *sprite) +{ + InitAnimSpritePos(sprite, 1); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sub_80A6FD4(sprite); + sprite->callback = sub_8111674; + sprite->data[6] = 16; + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); + SetGpuReg(REG_OFFSET_BLDALPHA, sprite->data[6]); +} + +static void sub_8111674(struct Sprite *sprite) +{ + s16 r0; + s16 r2; + sub_8111764(sprite); + if (TranslateAnimLinear(sprite)) + { + sprite->callback = sub_81116E8; + return; + } + + 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) + return; + if (r0 <= 0) + return; + PlaySE12WithPanning(SE_W109, gUnknown_02038440); +} + +static void sub_81116E8(struct Sprite *sprite) +{ + s16 r2; + s16 r0; + sprite->data[0] = 1; + TranslateAnimLinear(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->callback = sub_80A67F4; + } + else + sub_8111764(sprite); +} + +static void sub_8111764(struct Sprite *sprite) +{ + + 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; + if ((sprite->data[7] & 0x100) != 0) + sprite->data[6]++; + else + sprite->data[6]--; + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], 16 - sprite->data[6])); + if (sprite->data[6] == 0 || sprite->data[6] == 16) + sprite->data[7] ^= 0x100; + if (sprite->data[6] == 0) + sprite->data[6] = 0x100; + } +} + +static void sub_81117F4(struct Sprite *sprite) +{ + sub_80A6980(sprite, TRUE); + sprite->callback = sub_8111814; + sprite->callback(sprite); +} + +static void sub_8111814(struct Sprite *sprite) +{ + u16 temp1; + sprite->pos2.x = Sin(sprite->data[0], 32); + sprite->pos2.y = Cos(sprite->data[0], 8); + temp1 = sprite->data[0] - 65; + if (temp1 <= 130) + sprite->oam.priority = 2; + else + sprite->oam.priority = 1; + sprite->data[0] = (sprite->data[0] + 19) & 0xFF; + sprite->data[2] += 80; + sprite->pos2.y += sprite->data[2] >> 8; + sprite->data[7] += 1; + if (sprite->data[7] == 61) + DestroyAnimSprite(sprite); +} + +void sub_811188C(u8 taskId) +{ + u8 spriteId; + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); + spriteId = GetAnimBattlerSpriteId(0); + sub_80A7270(spriteId, 1); + obj_id_set_rotscale(spriteId, 128, 128, 0); + gSprites[spriteId].invisible = FALSE; + gTasks[taskId].data[0] = 128; + gTasks[taskId].data[1] = *gBattleAnimArgs; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 16; + gTasks[taskId].func = sub_8111914; +} + +static void sub_8111914(u8 taskId) +{ + gTasks[taskId].data[10] += 1; + if (gTasks[taskId].data[10] == 3) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[2] += 1; + gTasks[taskId].data[3] -= 1; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[2], gTasks[taskId].data[3])); + if (gTasks[taskId].data[2] != 9) + return; + + gTasks[taskId].func = sub_811196C; + } +} + +static void sub_811196C(u8 taskId) +{ + u8 spriteId; + if (gTasks[taskId].data[1] > 0) + { + gTasks[taskId].data[1] -= 1; + return; + } + + spriteId = GetAnimBattlerSpriteId(0); + gTasks[taskId].data[0] += 8; + if (gTasks[taskId].data[0] <= 0xFF) + { + obj_id_set_rotscale(spriteId, gTasks[taskId].data[0], gTasks[taskId].data[0], 0); + } + else + { + sub_80A7344(spriteId); + DestroyAnimVisualTask(taskId); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + } +} + +// 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; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[0] = 0; + sprite->data[1] = gBattleAnimArgs[0]; + sprite->data[2] = gBattleAnimArgs[1]; + 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->callback = AnimShadowBallStep; +} + +static void AnimShadowBallStep(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->data[4] += sprite->data[6]; + sprite->data[5] += sprite->data[7]; + sprite->pos1.x = sprite->data[4] >> 4; + sprite->pos1.y = sprite->data[5] >> 4; + sprite->data[1] -= 1; + if (sprite->data[1] > 0) + break; + sprite->data[0] += 1; + break; + case 1: + sprite->data[2] -= 1; + if (sprite->data[2] > 0) + break; + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = sprite->pos1.x << 4; + sprite->data[5] = sprite->pos1.y << 4; + sprite->data[6] = ((sprite->data[1] - sprite->pos1.x) << 4) / sprite->data[3]; + sprite->data[7] = ((sprite->data[2] - sprite->pos1.y) << 4) / sprite->data[3]; + sprite->data[0] += 1; + break; + case 2: + sprite->data[4] += sprite->data[6]; + sprite->data[5] += sprite->data[7]; + sprite->pos1.x = sprite->data[4] >> 4; + sprite->pos1.y = sprite->data[5] >> 4; + sprite->data[3] -= 1; + if (sprite->data[3] > 0) + break; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[0] += 1; + break; + case 3: + move_anim_8074EE0(sprite); + break; + } +} + +static void sub_8111B9C(struct Sprite *sprite) +{ + sub_80A6980(sprite, TRUE); + sprite->callback = sub_8111BB4; +} + +static void sub_8111BB4(struct Sprite *sprite) { + + s8 r5 = FALSE; + bool8 r6 = FALSE; + if(sprite->animEnded) + { + 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; + } + if(r5) + { + loc_08111C06: + sprite->invisible ^= 1; + sprite->data[2]++; + sprite->data[1] = 0; + if(sprite->data[2] == 5) + { + sprite->data[2] = 0; + sprite->data[0]++; + } + } + else if(r6) + DestroyAnimSprite(sprite); + else + sprite->data[1]++; + } +} + +void sub_8111C50(u8 taskId) +{ + struct Task *task; + + task = &gTasks[taskId]; + task->data[0] = duplicate_obj_of_side_rel2move_in_transparent_mode(1); + if (task->data[0] < 0) + { + DestroyAnimVisualTask(taskId); + return; + } + task->data[1] = 0; + task->data[2] = 15; + task->data[3] = 2; + task->data[4] = 0; + 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) + { + gSprites[task->data[0]].data[1] = -144; + gSprites[task->data[0]].data[2] = 112; + } + else + { + gSprites[task->data[0]].data[1] = 144; + gSprites[task->data[0]].data[2] = -112; + } + gSprites[task->data[0]].data[3] = 0; + gSprites[task->data[0]].data[4] = 0; + StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy); + gSprites[task->data[0]].callback = sub_80A656C; + task->func = sub_8111D78; +} + +static void sub_8111D78(u8 taskId) +{ + struct Task *task; + + task = &gTasks[taskId]; + switch (task->data[4]) + { + case 0: + task->data[1] += 1; + task->data[5] = task->data[1] & 3; + if (task->data[5] == 1) + if (task->data[2] > 0) + task->data[2] -= 1; + if (task->data[5] == 3) + if (task->data[3] <= 15) + task->data[3] += 1; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[2], task->data[3])); + if (task->data[3] != 16 || task->data[2] != 0) + break; + if (task->data[1] <= 80) + break; + obj_delete_but_dont_free_vram(&gSprites[task->data[0]]); + task->data[4] = 1; + break; + case 1: + if (++task->data[6] <= 1) + break; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + task->data[4] += 1; + break; + case 2: + DestroyAnimVisualTask(taskId); + } +} + +void sub_8111E50(u8 taskId) +{ + struct Task *task; + + task = &gTasks[taskId]; + task->data[15] = 0; + task->func = sub_8111E78; + task->func(taskId); +} + +static void sub_8111E78(u8 taskId) +{ + s16 startLine; + struct Task *task = &gTasks[taskId]; + u8 position = sub_80A8364(gBattleAnimTarget); + + switch (task->data[15]) + { + case 0: + task->data[14] = AllocSpritePalette(0x2771); + if (task->data[14] == 0xFF || task->data[14] == 0xF) + { + DestroyAnimVisualTask(taskId); + } + else + { + task->data[0] = duplicate_obj_of_side_rel2move_in_transparent_mode(1); + if (task->data[0] < 0) + { + FreeSpritePaletteByTag(0x2771); + DestroyAnimVisualTask(taskId); + } + else + { + s16 mask2; + gSprites[task->data[0]].oam.paletteNum = task->data[14]; + gSprites[task->data[0]].oam.objMode = ST_OAM_OBJ_NORMAL; + gSprites[task->data[0]].oam.priority = 3; + gSprites[task->data[0]].invisible = (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].invisible); + task->data[1] = 0; + task->data[2] = 0; + task->data[3] = 16; + task->data[13] = GetAnimBattlerSpriteId(1); + task->data[4] = (gSprites[task->data[13]].oam.paletteNum + 16) * 16; + if (position == 1) { + u16 mask = DISPCNT_BG1_ON; + mask2 = mask; + } + else { + u16 mask = DISPCNT_BG2_ON; + mask2 = mask; + } + ClearGpuRegBits(REG_OFFSET_DISPCNT, mask2); + task->data[15]++; + } + } + break; + case 1: + task->data[14] = (task->data[14] + 16) * 16; + CpuSet(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 0x4000008); + BlendPalette(task->data[4], 16, 10, RGB(13, 0, 15)); + task->data[15]++; + break; + case 2: + startLine = gSprites[task->data[13]].pos1.y + gSprites[task->data[13]].pos2.y - 32; + if (startLine < 0) + startLine = 0; + + if (position == 1) + task->data[10] = ScanlineEffect_InitWave(startLine, startLine + 64, 2, 6, 0, 4, 1); + else + task->data[10] = ScanlineEffect_InitWave(startLine, startLine + 64, 2, 6, 0, 8, 1); + + task->data[15]++; + break; + case 3: + if (position == 1) + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1)); + else + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG2)); + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); + task->data[15]++; + break; + case 4: + if (position == 1) + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); + else + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + + task->func = sub_81120DC; + task->data[15]++; + break; + default: + task->data[15]++; + break; + } +} + +static void sub_81120DC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + task->data[1]++; + task->data[5] = task->data[1] & 1; + if (task->data[5] == 0) + task->data[2] = gSineTable[task->data[1]] / 18; + + if (task->data[5] == 1) + task->data[3] = 16 - (gSineTable[task->data[1]] / 18); + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[2], task->data[3])); + if (task->data[1] == 128) + { + task->data[15] = 0; + task->func = sub_8112170; + task->func(taskId); + } +} + +static void sub_8112170(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + u8 position = sub_80A8364(gBattleAnimTarget); + + switch (task->data[15]) + { + case 0: + gScanlineEffect.state = 3; + task->data[14] = GetAnimBattlerSpriteId(1); + if (position == 1) + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); + else + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + break; + case 1: + BlendPalette(task->data[4], 16, 0, RGB(13, 0, 15)); + break; + case 2: + gSprites[task->data[14]].invisible = 1; + obj_delete_but_dont_free_vram(&gSprites[task->data[0]]); + FreeSpritePaletteByTag(0x2771); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + if (position == 1) + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); + else + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + + DestroyAnimVisualTask(taskId); + break; + } + + task->data[15]++; +} + +static void sub_8112264(struct Sprite *sprite) +{ + s16 battler1X, battler1Y; + s16 battler2X, battler2Y; + s16 yDiff; + + if (gBattleAnimArgs[0] == 0) + { + battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; + } + else + { + battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; + } + + yDiff = battler2Y - battler1Y; + sprite->data[0] = battler1X * 16; + sprite->data[1] = battler1Y * 16; + sprite->data[2] = ((battler2X - battler1X) * 16) / gBattleAnimArgs[1]; + sprite->data[3] = (yDiff * 16) / gBattleAnimArgs[1]; + sprite->data[4] = gBattleAnimArgs[1]; + sprite->data[5] = battler2X; + sprite->data[6] = battler2Y; + sprite->data[7] = sprite->data[4] / 2; + sprite->oam.priority = 2; + sprite->pos1.x = battler1X; + sprite->pos1.y = battler1Y; + sprite->callback = sub_8112384; + sprite->invisible = 1; +} + +static void sub_8112384(struct Sprite *sprite) +{ + if (sprite->data[4]) + { + sprite->data[0] += sprite->data[2]; + sprite->data[1] += sprite->data[3]; + sprite->pos1.x = sprite->data[0] >> 4; + sprite->pos1.y = sprite->data[1] >> 4; + if (--sprite->data[4] == 0) + sprite->data[0] = 0; + } +} + +void sub_81123C4(u8 taskId) +{ + struct Task *task; + s16 battler; + u8 spriteId; + s16 baseX, baseY; + s16 x, y; + + task = &gTasks[taskId]; + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); + task->data[5] = 0; + task->data[6] = 0; + task->data[7] = 0; + task->data[8] = 0; + task->data[9] = 16; + task->data[10] = gBattleAnimArgs[0]; + + baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + baseY = sub_80A861C(gBattleAnimAttacker, 3); + if (!IsContest()) + { + for (battler = 0; battler < 4; battler++) + { + if (battler != gBattleAnimAttacker + && battler != (gBattleAnimAttacker ^ 2) + && IsBattlerSpriteVisible(battler)) + { + spriteId = CreateSprite(&gUnknown_08596DB8, baseX, baseY, 55); + if (spriteId != MAX_SPRITES) + { + x = GetBattlerSpriteCoord(battler, 2); + y = sub_80A861C(battler, 3); + gSprites[spriteId].data[0] = baseX << 4; + gSprites[spriteId].data[1] = baseY << 4; + gSprites[spriteId].data[2] = ((x - baseX) << 4) / gBattleAnimArgs[1]; + gSprites[spriteId].data[3] = ((y - baseY) << 4) / gBattleAnimArgs[1]; + gSprites[spriteId].data[4] = gBattleAnimArgs[1]; + gSprites[spriteId].data[5] = x; + gSprites[spriteId].data[6] = y; + gSprites[spriteId].callback = sub_8112384; + + task->data[task->data[12] + 13] = spriteId; + task->data[12]++; + } + } + } + } + else + { + spriteId = CreateSprite(&gUnknown_08596DB8, baseX, baseY, 55); + if (spriteId != MAX_SPRITES) + { + x = 48; + y = 40; + gSprites[spriteId].data[0] = baseX << 4; + gSprites[spriteId].data[1] = baseY << 4; + gSprites[spriteId].data[2] = ((x - baseX) << 4) / gBattleAnimArgs[1]; + gSprites[spriteId].data[3] = ((y - baseY) << 4) / gBattleAnimArgs[1]; + gSprites[spriteId].data[4] = gBattleAnimArgs[1]; + gSprites[spriteId].data[5] = x; + gSprites[spriteId].data[6] = y; + gSprites[spriteId].callback = sub_8112384; + + task->data[13] = spriteId; + task->data[12] = 1; + } + } + + task->func = sub_81125E0; +} + +static void sub_81125E0(u8 taskId) +{ + u16 i; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + if (task->data[6] == 0) + { + if (++task->data[5] > 1) + { + task->data[5] = 0; + task->data[7]++; + if (task->data[7] & 1) + { + if (task->data[8] < 16) + task->data[8]++; + } + else + { + if (task->data[9]) + task->data[9]--; + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[8], task->data[9])); + if (task->data[7] >= 24) + { + task->data[7] = 0; + task->data[6] = 1; + } + } + } + + if (task->data[10]) + task->data[10]--; + else if (task->data[6]) + task->data[0]++; + break; + case 1: + if (++task->data[5] > 1) + { + task->data[5] = 0; + task->data[7]++; + if (task->data[7] & 1) + { + if (task->data[8]) + task->data[8]--; + } + else + { + if (task->data[9] < 16) + task->data[9]++; + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[8], task->data[9])); + if (task->data[8] == 0 && task->data[9] == 16) + { + for (i = 0; i < task->data[12]; i++) + DestroySprite(&gSprites[task->data[i + 13]]); + + task->data[0]++; + } + } + break; + case 2: + if (++task->data[5] > 0) + task->data[0]++; + break; + case 3: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyAnimVisualTask(taskId); + break; + } +} + +void sub_8112758(u8 taskId) +{ + s16 startX, startY; + s16 leftDistance, topDistance, bottomDistance, rightDistance; + + 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_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR))); + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN)); + SetGpuReg(REG_OFFSET_BLDY, 0x10); + + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER || IsContest()) + startX = 40; + else + startX = 200; + + gBattle_WIN0H = (startX << 8) | startX; + startY = 40; + gBattle_WIN0V = (startY << 8) | startY; + + leftDistance = startX; + rightDistance = 240 - startX; + topDistance = startY; + bottomDistance = 72; + gTasks[taskId].data[1] = leftDistance; + gTasks[taskId].data[2] = rightDistance; + gTasks[taskId].data[3] = topDistance; + gTasks[taskId].data[4] = bottomDistance; + gTasks[taskId].data[5] = startX; + gTasks[taskId].data[6] = startY; + gTasks[taskId].func = sub_811280C; +} + +static void sub_811280C(u8 taskId) +{ + s16 step; + s16 leftDistance, rightDistance, topDistance, bottomDistance; + s16 startX, startY; + u16 left, right, top, bottom; + u16 selectedPalettes; + + step = gTasks[taskId].data[0]; + gTasks[taskId].data[0]++; + leftDistance = gTasks[taskId].data[1]; + rightDistance = gTasks[taskId].data[2]; + topDistance = gTasks[taskId].data[3]; + bottomDistance = gTasks[taskId].data[4]; + startX = gTasks[taskId].data[5]; + startY = gTasks[taskId].data[6]; + + if (step < 16) + { + left = startX - (leftDistance * 0.0625) * step; + right = startX + (rightDistance * 0.0625) * step; + top = startY - (topDistance * 0.0625) * step; + bottom = startY + (bottomDistance * 0.0625) * step; + } + else + { + left = 0; + right = 240; + top = 0; + bottom = 112; + selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0)); + gTasks[taskId].func = sub_8112994; + } + + gBattle_WIN0H = (left << 8) | right; + gBattle_WIN0V = (top << 8) | bottom; +} + +static void sub_8112994(u8 taskId) +{ + if (!gPaletteFade.active) + { + 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))); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + DestroyAnimVisualTask(taskId); + } +} + +static void sub_81129F0(struct Sprite *sprite) +{ + s16 xDelta; + s16 xDelta2; + + InitAnimSpritePos(sprite, 1); + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + xDelta = 24; + xDelta2 = -2; + sprite->oam.matrixNum = 8; + } + else + { + xDelta = -24; + xDelta2 = 2; + } + + sprite->pos1.x += xDelta; + sprite->data[1] = xDelta2; + sprite->data[0] = 60; + sprite->callback = sub_8112A4C; +} + +static void sub_8112A4C(struct Sprite *sprite) +{ + u16 var0; + + if (sprite->data[0] > 0) + { + sprite->data[0]--; + } + else + { + sprite->pos2.x += sprite->data[1]; + var0 = sprite->pos2.x + 7; + if (var0 > 14) + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos2.x = 0; + sprite->oam.tileNum += 8; + if (++sprite->data[2] == 3) + { + sprite->data[0] = 30; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, sub_8112ACC); + } + else + { + sprite->data[0] = 40; + } + } + } +} + +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)); + sprite->data[0]++; + sprite->data[1] = 0; + sprite->data[2] = 0; + } + else if (sprite->data[1] < 2) + { + sprite->data[1]++; + } + else + { + sprite->data[1] = 0; + sprite->data[2]++; + SetGpuReg(REG_OFFSET_BLDALPHA, (16 - sprite->data[2]) | (sprite->data[2] << 8)); + if (sprite->data[2] == 16) + { + sprite->invisible = 1; + sprite->callback = sub_8112B44; + } + } +} + +static void sub_8112B44(struct Sprite *sprite) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + DestroyAnimSprite(sprite); +} + +static void sub_8112B78(struct Sprite *sprite) +{ + u16 coeffB; + u16 coeffA; + + 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); + + sprite->data[7]++; + if (sprite->data[7] == 1) + { + sprite->data[6] = 0x050B; + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); + SetGpuReg(REG_OFFSET_BLDALPHA, sprite->data[6]); + } + else if (sprite->data[7] > 30) + { + sprite->data[2]++; + coeffB = sprite->data[6] >> 8; + coeffA = sprite->data[6] & 0xFF; + + if (++coeffB > 16) + coeffB = 16; + if (--(s16)coeffA < 0) + coeffA = 0; + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(coeffA, coeffB)); + sprite->data[6] = BLDALPHA_BLEND(coeffA, coeffB); + if (coeffB == 16 && coeffA == 0) + { + sprite->invisible = 1; + sprite->callback = sub_8112C4C; + } + } +} + +static void sub_8112C4C(struct Sprite *sprite) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyAnimSprite(sprite); +} + +void sub_8112C6C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[0] = 0; + task->data[1] = 16; + task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + task->data[10] = GetBattlerYCoordWithElevation(gBattleAnimAttacker); + task->data[11] = (sub_80A861C(gBattleAnimAttacker, 1) / 2) + 8; + task->data[7] = 0; + task->data[5] = sub_80A8328(gBattleAnimAttacker); + task->data[6] = sub_80A82E4(gBattleAnimAttacker) - 2; + task->data[3] = 0; + task->data[4] = 16; + SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); + task->data[8] = 0; + task->func = sub_8112D10; +} + +static void sub_8112D10(u8 taskId) +{ + u16 i; + u8 spriteId; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + for (i = 0; i < 6; i++) + { + spriteId = CreateSprite(&gUnknown_08596E30, task->data[9], task->data[10], task->data[6]); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER; + + gSprites[spriteId].data[2] = (i * 42) & 0xFF; + gSprites[spriteId].data[3] = task->data[11]; + gSprites[spriteId].data[5] = i * 6; + task->data[7]++; + } + } + + task->data[0]++; + break; + case 1: + if (++task->data[1] & 1) + { + if (task->data[3] < 14) + task->data[3]++; + } + else + { + if (task->data[4] > 4) + task->data[4]--; + } + + if (task->data[3] == 14 && task->data[4] == 4) + { + task->data[1] = 0; + task->data[0]++; + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[3], task->data[4])); + break; + case 2: + if (++task->data[1] > 30) + { + task->data[1] = 0; + task->data[0]++; + } + break; + case 3: + if (++task->data[1] & 1) + { + if (task->data[3] > 0) + task->data[3]--; + } + else + { + if (task->data[4] < 16) + task->data[4]++; + } + + if (task->data[3] == 0 && task->data[4] == 16) + { + task->data[8] = 1; + task->data[0]++; + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[3], task->data[4])); + break; + case 4: + if (task->data[7] == 0) + task->data[0]++; + break; + case 5: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyAnimVisualTask(taskId); + break; + } +} + +static void sub_8112E9C(struct Sprite *sprite) +{ + u16 index; + + if (sprite->data[1] == 0) + sprite->data[2] += 2; + else + sprite->data[2] -= 2; + + sprite->data[2] &= 0xFF; + sprite->pos2.x = Sin(sprite->data[2], sprite->data[3]); + + index = sprite->data[2] - 65; + if (index < 127) + sprite->oam.priority = gTasks[sprite->data[0]].data[5] + 1; + else + sprite->oam.priority = gTasks[sprite->data[0]].data[5]; + + sprite->data[5]++; + sprite->data[6] = (sprite->data[5] * 8) & 0xFF; + sprite->pos2.y = Sin(sprite->data[6], 7); + if (gTasks[sprite->data[0]].data[8]) + { + gTasks[sprite->data[0]].data[7]--; + DestroySprite(sprite); + } +} + +static void sub_8112F60(struct Sprite *sprite) +{ + sprite->invisible = 1; + sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker]; + sprite->data[0] = 128; + sprite->data[1] = 10; + sprite->data[2] = gBattleAnimArgs[0]; + sprite->data[3] = gBattleAnimArgs[1]; + sprite->callback = sub_8112FB8; + + gSprites[sprite->data[5]].pos1.y += 8; +} + +static void sub_8112FB8(struct Sprite *sprite) +{ + if (sprite->data[3]) + { + sprite->data[3]--; + gSprites[sprite->data[5]].pos2.x = Sin(sprite->data[0], sprite->data[1]); + gSprites[sprite->data[5]].pos2.y = Cos(sprite->data[0], sprite->data[1]); + sprite->data[0] += sprite->data[2]; + if (sprite->data[0] > 255) + sprite->data[0] -= 256; + } + else + { + gSprites[sprite->data[5]].pos2.x = 0; + gSprites[sprite->data[5]].pos2.y = 0; + gSprites[sprite->data[5]].pos1.y -= 8; + sprite->callback = move_anim_8074EE0; + } +} diff --git a/src/gpu_regs.c b/src/gpu_regs.c index 805f23b48..2d48b304a 100644 --- a/src/gpu_regs.c +++ b/src/gpu_regs.c @@ -20,166 +20,166 @@ static void UpdateRegDispstatIntrBits(u16 regIE); void InitGpuRegManager(void) { - s32 i; + s32 i; - for (i = 0; i < GPU_REG_BUF_SIZE; i++) + for (i = 0; i < GPU_REG_BUF_SIZE; i++) { - sGpuRegBuffer[i] = 0; - sGpuRegWaitingList[i] = EMPTY_SLOT; - } + sGpuRegBuffer[i] = 0; + sGpuRegWaitingList[i] = EMPTY_SLOT; + } - sGpuRegBufferLocked = FALSE; - sShouldSyncRegIE = FALSE; - sRegIE = 0; + sGpuRegBufferLocked = FALSE; + sShouldSyncRegIE = FALSE; + sRegIE = 0; } static void CopyBufferedValueToGpuReg(u8 regOffset) { - if (regOffset == REG_OFFSET_DISPSTAT) + if (regOffset == REG_OFFSET_DISPSTAT) { - REG_DISPSTAT &= ~(DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR); - REG_DISPSTAT |= GPU_REG_BUF(REG_OFFSET_DISPSTAT); - } - else + REG_DISPSTAT &= ~(DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR); + REG_DISPSTAT |= GPU_REG_BUF(REG_OFFSET_DISPSTAT); + } + else { - GPU_REG(regOffset) = GPU_REG_BUF(regOffset); - } + GPU_REG(regOffset) = GPU_REG_BUF(regOffset); + } } void CopyBufferedValuesToGpuRegs(void) { - if (!sGpuRegBufferLocked) + if (!sGpuRegBufferLocked) { - s32 i; + s32 i; - for (i = 0; i < GPU_REG_BUF_SIZE; i++) + for (i = 0; i < GPU_REG_BUF_SIZE; i++) { - u8 regOffset = sGpuRegWaitingList[i]; - if (regOffset == EMPTY_SLOT) - return; - CopyBufferedValueToGpuReg(regOffset); - sGpuRegWaitingList[i] = EMPTY_SLOT; - } - } + u8 regOffset = sGpuRegWaitingList[i]; + if (regOffset == EMPTY_SLOT) + return; + CopyBufferedValueToGpuReg(regOffset); + sGpuRegWaitingList[i] = EMPTY_SLOT; + } + } } void SetGpuReg(u8 regOffset, u16 value) { - if (regOffset < GPU_REG_BUF_SIZE) - { - u16 vcount; - - GPU_REG_BUF(regOffset) = value; - vcount = REG_VCOUNT & 0xFF; - - if ((vcount >= 161 && vcount <= 225) - || (REG_DISPCNT & DISPCNT_FORCED_BLANK)) { - CopyBufferedValueToGpuReg(regOffset); - } else { - s32 i; - - sGpuRegBufferLocked = TRUE; - - for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) { - if (sGpuRegWaitingList[i] == regOffset) { - sGpuRegBufferLocked = FALSE; - return; - } - } - - sGpuRegWaitingList[i] = regOffset; - sGpuRegBufferLocked = FALSE; - } - } + if (regOffset < GPU_REG_BUF_SIZE) + { + u16 vcount; + + GPU_REG_BUF(regOffset) = value; + vcount = REG_VCOUNT & 0xFF; + + if ((vcount >= 161 && vcount <= 225) + || (REG_DISPCNT & DISPCNT_FORCED_BLANK)) { + CopyBufferedValueToGpuReg(regOffset); + } else { + s32 i; + + sGpuRegBufferLocked = TRUE; + + for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) { + if (sGpuRegWaitingList[i] == regOffset) { + sGpuRegBufferLocked = FALSE; + return; + } + } + + sGpuRegWaitingList[i] = regOffset; + sGpuRegBufferLocked = FALSE; + } + } } void SetGpuReg_ForcedBlank(u8 regOffset, u16 value) { - if (regOffset < GPU_REG_BUF_SIZE) - { - GPU_REG_BUF(regOffset) = value; - - if (REG_DISPCNT & DISPCNT_FORCED_BLANK) { - CopyBufferedValueToGpuReg(regOffset); - } else { - s32 i; - - sGpuRegBufferLocked = TRUE; - - for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) { - if (sGpuRegWaitingList[i] == regOffset) { - sGpuRegBufferLocked = FALSE; - return; - } - } - - sGpuRegWaitingList[i] = regOffset; - sGpuRegBufferLocked = FALSE; - } - } + if (regOffset < GPU_REG_BUF_SIZE) + { + GPU_REG_BUF(regOffset) = value; + + if (REG_DISPCNT & DISPCNT_FORCED_BLANK) { + CopyBufferedValueToGpuReg(regOffset); + } else { + s32 i; + + sGpuRegBufferLocked = TRUE; + + for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) { + if (sGpuRegWaitingList[i] == regOffset) { + sGpuRegBufferLocked = FALSE; + return; + } + } + + sGpuRegWaitingList[i] = regOffset; + sGpuRegBufferLocked = FALSE; + } + } } u16 GetGpuReg(u8 regOffset) { - if (regOffset == REG_OFFSET_DISPSTAT) - return REG_DISPSTAT; + if (regOffset == REG_OFFSET_DISPSTAT) + return REG_DISPSTAT; - if (regOffset == REG_OFFSET_VCOUNT) - return REG_VCOUNT; + if (regOffset == REG_OFFSET_VCOUNT) + return REG_VCOUNT; - return GPU_REG_BUF(regOffset); + return GPU_REG_BUF(regOffset); } void SetGpuRegBits(u8 regOffset, u16 mask) { - u16 regValue = GPU_REG_BUF(regOffset); - SetGpuReg(regOffset, regValue | mask); + u16 regValue = GPU_REG_BUF(regOffset); + SetGpuReg(regOffset, regValue | mask); } void ClearGpuRegBits(u8 regOffset, u16 mask) { - u16 regValue = GPU_REG_BUF(regOffset); - SetGpuReg(regOffset, regValue & ~mask); + u16 regValue = GPU_REG_BUF(regOffset); + SetGpuReg(regOffset, regValue & ~mask); } static void SyncRegIE(void) { - if (sShouldSyncRegIE) { - u16 temp = REG_IME; - REG_IME = 0; - REG_IE = sRegIE; - REG_IME = temp; - sShouldSyncRegIE = FALSE; - } + if (sShouldSyncRegIE) { + u16 temp = REG_IME; + REG_IME = 0; + REG_IE = sRegIE; + REG_IME = temp; + sShouldSyncRegIE = FALSE; + } } void EnableInterrupts(u16 mask) { - sRegIE |= mask; - sShouldSyncRegIE = TRUE; - SyncRegIE(); - UpdateRegDispstatIntrBits(sRegIE); + sRegIE |= mask; + sShouldSyncRegIE = TRUE; + SyncRegIE(); + UpdateRegDispstatIntrBits(sRegIE); } void DisableInterrupts(u16 mask) { - sRegIE &= ~mask; - sShouldSyncRegIE = TRUE; - SyncRegIE(); - UpdateRegDispstatIntrBits(sRegIE); + sRegIE &= ~mask; + sShouldSyncRegIE = TRUE; + SyncRegIE(); + UpdateRegDispstatIntrBits(sRegIE); } static void UpdateRegDispstatIntrBits(u16 regIE) { - u16 oldValue = GetGpuReg(REG_OFFSET_DISPSTAT) & (DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR); - u16 newValue = 0; + u16 oldValue = GetGpuReg(REG_OFFSET_DISPSTAT) & (DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR); + u16 newValue = 0; - if (regIE & INTR_FLAG_VBLANK) - newValue |= DISPSTAT_VBLANK_INTR; + if (regIE & INTR_FLAG_VBLANK) + newValue |= DISPSTAT_VBLANK_INTR; - if (regIE & INTR_FLAG_HBLANK) - newValue |= DISPSTAT_HBLANK_INTR; + if (regIE & INTR_FLAG_HBLANK) + newValue |= DISPSTAT_HBLANK_INTR; - if (oldValue != newValue) - SetGpuReg(REG_OFFSET_DISPSTAT, newValue); + if (oldValue != newValue) + SetGpuReg(REG_OFFSET_DISPSTAT, newValue); } diff --git a/src/graphics.c b/src/graphics.c index 2a21b610a..b2de074bc 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1279,15 +1279,15 @@ const u32 gPokedexMenu2_Gfx[] = INCBIN_U32("graphics/pokedex/menu2.4bpp.lz"); const u32 gUnused_PokedexNoBall[] = INCBIN_U32("graphics/pokedex/noball_unused.4bpp.lz"); -const u32 gUnknown_08DC2A08[] = INCBIN_U32("graphics/pokedex/tilemap1.bin.lz"); -const u32 gUnknown_08DC2B1C[] = INCBIN_U32("graphics/pokedex/tilemap2.bin.lz"); -const u32 gUnknown_08DC2C5C[] = INCBIN_U32("graphics/pokedex/tilemap3.bin.lz"); -const u32 gUnknown_08DC2DAC[] = INCBIN_U32("graphics/pokedex/tilemap4.bin.lz"); -const u32 gUnknown_08DC2E6C[] = INCBIN_U32("graphics/pokedex/tilemap5.bin.lz"); -const u32 gUnknown_08DC2F5C[] = INCBIN_U32("graphics/pokedex/tilemap6.bin.lz"); -const u32 gUnknown_08DC2FEC[] = INCBIN_U32("graphics/pokedex/tilemap7.bin.lz"); -const u32 gUnknown_08DC3080[] = INCBIN_U32("graphics/pokedex/tilemap8.bin.lz"); -const u32 gUnknown_08DC3198[] = INCBIN_U32("graphics/pokedex/tilemap9.bin.lz"); +const u32 gPokedexTilemap_StartMenu1[] = INCBIN_U32("graphics/pokedex/tilemap1.bin.lz"); +const u32 gPokedexTilemap_StartMenu2[] = INCBIN_U32("graphics/pokedex/tilemap2.bin.lz"); +const u32 gPokedexTilemap_Main[] = INCBIN_U32("graphics/pokedex/tilemap3.bin.lz"); +const u32 gPokedexTilemap_MainUnderlay[] = INCBIN_U32("graphics/pokedex/tilemap4.bin.lz"); +const u32 gPokedexTilemap_SizeScreen[] = INCBIN_U32("graphics/pokedex/tilemap5.bin.lz"); +const u32 gPokedexTilemap_ScreenSelectBar1[] = INCBIN_U32("graphics/pokedex/tilemap6.bin.lz"); +const u32 gPokedexTilemap_ScreenSelectBar2[] = INCBIN_U32("graphics/pokedex/tilemap7.bin.lz"); +const u32 gPokedexTilemap_DescriptionScreen[] = INCBIN_U32("graphics/pokedex/tilemap8.bin.lz"); +const u32 gPokedexTilemap_CryScreen[] = INCBIN_U32("graphics/pokedex/tilemap9.bin.lz"); const u16 gPokedexSearchMenu_Pal[] = INCBIN_U16("graphics/pokedex/search_menu.gbapal"); const u32 gPokedexSearchMenu_Gfx[] = INCBIN_U32("graphics/pokedex/search_menu.4bpp.lz"); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 315990256..ad5673036 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -6,7 +6,7 @@ #include "pokemon.h" #include "text.h" #include "text_window.h" -#include "malloc.h" +#include "alloc.h" #include "gpu_regs.h" #include "graphics.h" #include "main.h" diff --git a/src/international_string_util.c b/src/international_string_util.c index 9de338c59..a7c42c39e 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -1,40 +1,46 @@ #include "global.h" -#include "text.h" #include "international_string_util.h" +#include "list_menu.h" +#include "pokedex.h" +#include "script_menu.h" +#include "string_util.h" +#include "strings.h" +#include "text.h" +#include "window.h" -extern s32 convert_pixel_width_to_tile_width(s32 a0); // script menu +extern const struct PokedexEntry gPokedexEntries[]; -s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +int GetStringCenterAlignXOffset(int fontId, const u8 *str, int totalWidth) { return GetStringCenterAlignXOffsetWithLetterSpacing(fontId, str, totalWidth, 0); } -s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +int GetStringRightAlignXOffset(int fontId, const u8 *str, int totalWidth) { return GetStringWidthDifference(fontId, str, totalWidth, 0); } -s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int totalWidth, int letterSpacing) { return GetStringWidthDifference(fontId, str, totalWidth, letterSpacing) / 2; } -s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing) { - s32 stringWidth = GetStringWidth(fontId, str, letterSpacing); + int stringWidth = GetStringWidth(fontId, str, letterSpacing); if (totalWidth > stringWidth) return totalWidth - stringWidth; else return 0; } -s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1) +int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1) { - s32 i, var; + int i, var; for (var = 0, i = 0; i < arg1; i++) { - s32 stringWidth = GetStringWidth(1, str[i].text, 0); + int stringWidth = GetStringWidth(1, str[i].text, 0); if (stringWidth > var) var = stringWidth; } @@ -42,16 +48,192 @@ s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1) return convert_pixel_width_to_tile_width(var); } -s32 sub_81DB3D8(const struct MenuAction *str, const u8* arg1, s32 arg2) +int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2) { - s32 i, var; + int i, var; for (var = 0, i = 0; i < arg2; i++) { - s32 stringWidth = GetStringWidth(1, str[arg1[i]].text, 0); + int stringWidth = GetStringWidth(1, str[arg1[i]].text, 0); if (stringWidth > var) var = stringWidth; } return convert_pixel_width_to_tile_width(var); } + +int sub_81DB41C(const struct ListMenuTemplate *listMenu) +{ + int i, maxWidth, finalWidth; + const struct ListMenuItem *items = listMenu->items; + + maxWidth = 0; + for (i = 0; i < listMenu->totalItems; i++) + { + int width = GetStringWidth(listMenu->fontId, items[i].name, 0); + if (width > maxWidth) + maxWidth = width; + } + + finalWidth = maxWidth + listMenu->item_X + 9; + if (finalWidth < 0) + finalWidth += 7; + + finalWidth >>= 3; + if (finalWidth > 28) + finalWidth = 28; + + return finalWidth; +} + +void CopyMonCategoryText(int dexNum, u8 *dest) +{ + u8 *str = StringCopy(dest, gPokedexEntries[dexNum].categoryName); + *str = CHAR_SPACE; + StringCopy(str + 1, gText_Pokemon); +} + +u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth) +{ + u8 *buffer; + int width; + int clearWidth; + + if (str2) + { + buffer = StringCopy(str, str2); + width = GetStringWidth(fontId, str2, 0); + } + else + { + buffer = str; + width = 0; + } + + clearWidth = totalStringWidth - width; + if (clearWidth > 0) + { + *buffer = EXT_CTRL_CODE_BEGIN; + buffer++; + *buffer = EXT_CTRL_CODE_CLEAR; + buffer++; + *buffer = clearWidth; + buffer++; + *buffer = EOS; + } + + return buffer; +} + +void PadNameString(u8 *dest, u8 padChar) +{ + u8 length; + + StripExtCtrlCodes(dest); + length = StringLength(dest); + if (padChar == EXT_CTRL_CODE_BEGIN) + { + while (length < PLAYER_NAME_LENGTH - 1) + { + dest[length] = EXT_CTRL_CODE_BEGIN; + dest[length + 1] = EXT_CTRL_CODE_UNKNOWN_7; + length += 2; + } + } + else + { + while (length < PLAYER_NAME_LENGTH - 1) + { + dest[length] = padChar; + length++; + } + } + + dest[length] = EOS; +} + +void sub_81DB52C(u8 *str) +{ + if (StringLength(str) < PLAYER_NAME_LENGTH - 1) + ConvertInternationalString(str, LANGUAGE_JAPANESE); + else + StripExtCtrlCodes(str); +} + +void sub_81DB554(u8 *str, u8 arg1) +{ + u8 *buffer; + if (StringLength(str) < PLAYER_NAME_LENGTH - 1) + { + ConvertInternationalString(str, LANGUAGE_JAPANESE); + } + else if (arg1 == EXT_CTRL_CODE_BEGIN) + { + StripExtCtrlCodes(str); + } + else + { + buffer = str; + while (buffer[1] != EOS) + buffer++; + + while (buffer >= str && buffer[0] == arg1) + { + buffer[0] = EOS; + buffer--; + } + } +} + +void sub_81DB5AC(u8 *str) +{ + if (*str++ == EXT_CTRL_CODE_BEGIN && *str++ == EXT_CTRL_CODE_JPN) + { + while (*str != EOS) + { + if (str[0] == EXT_CTRL_CODE_BEGIN && str[1] == EXT_CTRL_CODE_ENG) + return; + + str++; + } + + *str++ = EXT_CTRL_CODE_BEGIN; + *str++ = EXT_CTRL_CODE_ENG; + *str = EOS; + } +} + +void TVShowConvertInternationalString(u8 *dest, const u8 *src, int language) +{ + StringCopy(dest, src); + ConvertInternationalString(dest, language); +} + +int sub_81DB604(u8 *str) +{ + if (str[0] == EXT_CTRL_CODE_BEGIN && str[1] == EXT_CTRL_CODE_JPN) + return LANGUAGE_JAPANESE; + else + return LANGUAGE_ENGLISH; +} + +void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows) +{ + u8 *windowTileData; + int fillSize, windowRowSize, rowsToFill; + struct Window *window = &gWindows[windowId]; + + fillSize = numFillTiles * TILE_SIZE_4BPP; + windowRowSize = window->window.width * TILE_SIZE_4BPP; + windowTileData = window->tileData + (rowStart * windowRowSize) + (columnStart * TILE_SIZE_4BPP); + if (numRows > 0) + { + rowsToFill = numRows; + while (rowsToFill) + { + CpuFastFill8(0x11, windowTileData, fillSize); + windowTileData += windowRowSize; + rowsToFill--; + } + } +} diff --git a/src/intro.c b/src/intro.c index 5a0e13869..94692e6ec 100644 --- a/src/intro.c +++ b/src/intro.c @@ -5,7 +5,7 @@ #include "task.h" #include "title_screen.h" #include "libgcnmultiboot.h" -#include "malloc.h" +#include "alloc.h" #include "gpu_regs.h" #include "link.h" #include "multiboot_pokemon_colosseum.h" @@ -62,10 +62,10 @@ static const u32 gIntro3MiscTiles[] = INCBIN_U32("graphics/intro/intro3_misc.4bp static const u16 gIntro1FlygonPalette[] = INCBIN_U16("graphics/intro/intro1_flygon.gbapal"); static const u32 gIntro1EonTiles_Unused[] = INCBIN_U32("graphics/intro/intro1_eon.4bpp.lz"); static const u8 sUnknownBytes[] = { - 0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x02, 0x0D, + 0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x02, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x02, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x02, 0x0D, 0x0E, 0x0F, 0x10, - 0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00 + 0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00 }; static const struct CompressedSpriteSheet gUnknown_085E4A74[] = { diff --git a/src/item.c b/src/item.c index b2c009be6..71c2dc0f7 100644 --- a/src/item.c +++ b/src/item.c @@ -1,20 +1,21 @@ #include "global.h" #include "item.h" #include "berry.h" -#include "constants/items.h" #include "string_util.h" #include "text.h" #include "event_data.h" -#include "malloc.h" +#include "alloc.h" #include "secret_base.h" #include "item_menu.h" #include "strings.h" #include "load_save.h" +#include "item_use.h" #include "battle_pyramid.h" #include "battle_pyramid_bag.h" +#include "constants/items.h" +#include "constants/hold_effects.h" extern u16 gUnknown_0203CF30[]; -extern const struct Item gItems[]; // this file's functions static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count); @@ -23,6 +24,10 @@ static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count); // EWRAM variables EWRAM_DATA struct BagPocket gBagPockets[POCKETS_COUNT] = {0}; +// rodata +#include "data/text/item_descriptions.h" +#include "data/items.h" + // code static u16 GetBagItemQuantity(u16 *quantity) { @@ -239,152 +244,152 @@ NAKED bool8 CheckBagHasSpace(u16 itemId, u16 count) { asm_unified("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - lsls r1, 16\n\ - lsrs r5, r1, 16\n\ - bl ItemId_GetPocket\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _080D6906\n\ - bl InBattlePyramid\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _080D6838\n\ - ldr r0, =0x00004004\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - bne _080D684C\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + lsls r1, 16\n\ + lsrs r5, r1, 16\n\ + bl ItemId_GetPocket\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080D6906\n\ + bl InBattlePyramid\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080D6838\n\ + ldr r0, =0x00004004\n\ + bl FlagGet\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + bne _080D684C\n\ _080D6838:\n\ - mov r0, r8\n\ - adds r1, r5, 0\n\ - bl CheckPyramidBagHasSpace\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - b _080D6916\n\ - .pool\n\ + mov r0, r8\n\ + adds r1, r5, 0\n\ + bl CheckPyramidBagHasSpace\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + b _080D6916\n\ + .pool\n\ _080D684C:\n\ - mov r0, r8\n\ - bl ItemId_GetPocket\n\ - subs r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - ldr r7, =0x000003e7\n\ - cmp r2, 0x3\n\ - beq _080D6860\n\ - movs r7, 0x63\n\ + mov r0, r8\n\ + bl ItemId_GetPocket\n\ + subs r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + ldr r7, =0x000003e7\n\ + cmp r2, 0x3\n\ + beq _080D6860\n\ + movs r7, 0x63\n\ _080D6860:\n\ - movs r6, 0\n\ - ldr r1, =gBagPockets\n\ - lsls r4, r2, 3\n\ - adds r0, r4, r1\n\ - mov r9, r4\n\ - ldrb r0, [r0, 0x4]\n\ - cmp r6, r0\n\ - bcs _080D68BC\n\ - subs r0, r2, 0x2\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r10, r0\n\ + movs r6, 0\n\ + ldr r1, =gBagPockets\n\ + lsls r4, r2, 3\n\ + adds r0, r4, r1\n\ + mov r9, r4\n\ + ldrb r0, [r0, 0x4]\n\ + cmp r6, r0\n\ + bcs _080D68BC\n\ + subs r0, r2, 0x2\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ _080D6878:\n\ - adds r0, r4, r1\n\ - ldr r1, [r0]\n\ - lsls r0, r6, 2\n\ - adds r1, r0, r1\n\ - ldrh r0, [r1]\n\ - cmp r0, r8\n\ - bne _080D68AC\n\ - adds r0, r1, 0x2\n\ - str r2, [sp]\n\ - bl GetBagItemQuantity\n\ - lsls r0, 16\n\ - lsrs r1, r0, 16\n\ - adds r0, r1, r5\n\ - ldr r2, [sp]\n\ - cmp r0, r7\n\ - ble _080D6914\n\ - mov r0, r10\n\ - cmp r0, 0x1\n\ - bls _080D6906\n\ - subs r0, r7, r1\n\ - subs r0, r5, r0\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, 0\n\ - beq _080D6914\n\ + adds r0, r4, r1\n\ + ldr r1, [r0]\n\ + lsls r0, r6, 2\n\ + adds r1, r0, r1\n\ + ldrh r0, [r1]\n\ + cmp r0, r8\n\ + bne _080D68AC\n\ + adds r0, r1, 0x2\n\ + str r2, [sp]\n\ + bl GetBagItemQuantity\n\ + lsls r0, 16\n\ + lsrs r1, r0, 16\n\ + adds r0, r1, r5\n\ + ldr r2, [sp]\n\ + cmp r0, r7\n\ + ble _080D6914\n\ + mov r0, r10\n\ + cmp r0, 0x1\n\ + bls _080D6906\n\ + subs r0, r7, r1\n\ + subs r0, r5, r0\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, 0\n\ + beq _080D6914\n\ _080D68AC:\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - ldr r1, =gBagPockets\n\ - adds r0, r4, r1\n\ - ldrb r0, [r0, 0x4]\n\ - cmp r6, r0\n\ - bcc _080D6878\n\ + adds r0, r6, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + ldr r1, =gBagPockets\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0, 0x4]\n\ + cmp r6, r0\n\ + bcc _080D6878\n\ _080D68BC:\n\ - cmp r5, 0\n\ - beq _080D6914\n\ - movs r6, 0\n\ - ldr r3, =gBagPockets\n\ - mov r1, r9\n\ - adds r0, r1, r3\n\ - ldrb r0, [r0, 0x4]\n\ - cmp r6, r0\n\ - bcs _080D6902\n\ - adds r4, r3, 0\n\ - subs r0, r2, 0x2\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ + cmp r5, 0\n\ + beq _080D6914\n\ + movs r6, 0\n\ + ldr r3, =gBagPockets\n\ + mov r1, r9\n\ + adds r0, r1, r3\n\ + ldrb r0, [r0, 0x4]\n\ + cmp r6, r0\n\ + bcs _080D6902\n\ + adds r4, r3, 0\n\ + subs r0, r2, 0x2\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ _080D68D6:\n\ - adds r0, r1, r4\n\ - ldr r1, [r0]\n\ - lsls r0, r6, 2\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - cmp r0, 0\n\ - bne _080D68F2\n\ - cmp r5, r7\n\ - bls _080D6914\n\ - cmp r2, 0x1\n\ - bls _080D6906\n\ - subs r0, r5, r7\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ + adds r0, r1, r4\n\ + ldr r1, [r0]\n\ + lsls r0, r6, 2\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + bne _080D68F2\n\ + cmp r5, r7\n\ + bls _080D6914\n\ + cmp r2, 0x1\n\ + bls _080D6906\n\ + subs r0, r5, r7\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ _080D68F2:\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - mov r1, r9\n\ - adds r0, r1, r3\n\ - ldrb r0, [r0, 0x4]\n\ - cmp r6, r0\n\ - bcc _080D68D6\n\ + adds r0, r6, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + mov r1, r9\n\ + adds r0, r1, r3\n\ + ldrb r0, [r0, 0x4]\n\ + cmp r6, r0\n\ + bcc _080D68D6\n\ _080D6902:\n\ - cmp r5, 0\n\ - beq _080D6914\n\ + cmp r5, 0\n\ + beq _080D6914\n\ _080D6906:\n\ - movs r0, 0\n\ - b _080D6916\n\ - .pool\n\ + movs r0, 0\n\ + b _080D6916\n\ + .pool\n\ _080D6914:\n\ - movs r0, 0x1\n\ + movs r0, 0x1\n\ _080D6916:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1"); + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1"); } #endif // NONMATCHING @@ -538,7 +543,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count) VarSet(VAR_0x40ED, itemId); } - var = sub_81ABB2C(pocket); + var = GetItemListPosition(pocket); if (itemPocket->capacity > var && itemPocket->itemSlots[var].itemId == itemId) { diff --git a/src/item_icon.c b/src/item_icon.c index 68ec1daf0..d037782bd 100644 --- a/src/item_icon.c +++ b/src/item_icon.c @@ -1,16 +1,17 @@ #include "global.h" +#include "decompress.h" +#include "graphics.h" #include "item_icon.h" -#include "malloc.h" +#include "alloc.h" #include "sprite.h" -#include "decompress.h" #include "constants/items.h" -#include "data/item_icon_table.h" // EWRAM vars EWRAM_DATA void *gItemIconDecompressionBuffer = NULL; EWRAM_DATA void *gItemIcon4x4Buffer = NULL; // const rom data +#include "data/item_icon_table.h" static const struct OamData sOamData_ItemIcon = { diff --git a/src/item_menu.c b/src/item_menu.c index 1744a1bfa..32c42ac31 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -23,7 +23,7 @@ #include "link.h" #include "mail.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "map_name_popup.h" #include "menu.h" #include "money.h" @@ -57,7 +57,7 @@ bool8 load_bag_menu_graphics(void); void setup_bag_menu_textboxes(void); void allocate_bag_item_list_buffers(void); void load_bag_item_list_buffers(u8); -void bag_menu_print_pocket_names(u8*, u8*); +void bag_menu_print_pocket_names(const u8*, const u8*); void bag_menu_copy_pocket_name_to_window(u32); void bag_menu_draw_pocket_indicator_square(u8, u8); void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void); @@ -69,7 +69,6 @@ void Task_BagMenu(u8); void get_name(s8*, u16); u16 ItemIdToBattleMoveId(u16); u16 BagGetItemIdByPocketPosition(u8, u16); -void AddBagItemIconSprite(u16, u8); void bag_menu_print_description_box_text(int); void bag_menu_print_cursor(u8, u8); void bag_menu_print(u8, u8, const u8*, u8, u8, u8, u8, u8, u8); @@ -121,7 +120,7 @@ void bag_menu_leave_maybe_3(void); void bag_menu_leave_maybe_2(void); void bag_menu_leave_maybe(void); void sub_81ABA6C(void); -void sub_81ABAC4(void); +static void SetPocketListPositions(void); void sub_81ABAE0(void); u8 sub_81AB1F0(u8); void sub_81AC23C(u8); @@ -151,7 +150,7 @@ void sub_81AD6FC(u8 taskId); // .rodata -const struct BgTemplate gUnknown_08613F90[3] = +static const struct BgTemplate sBgTemplates_ItemMenu[3] = { { .bg = 0, @@ -182,7 +181,7 @@ const struct BgTemplate gUnknown_08613F90[3] = }, }; -const struct ListMenuTemplate gUnknown_08613F9C = +static const struct ListMenuTemplate sItemListMenu = { .items = NULL, .moveCursorFunc = bag_menu_change_item_callback, @@ -258,7 +257,8 @@ const struct ScrollArrowsTemplate gUnknown_08614094 = {SCROLL_ARROW_LEFT, 0x1C, const u8 gUnknown_086140A4[] = INCBIN_U8("graphics/interface/select_button.4bpp"); -const u8 gUnknown_08614164[][3] = { +static const u8 sFontColorTable[][3] = { +// bgColor, textColor, shadowColor {0, 1, 3}, {0, 1, 4}, {0, 3, 6}, @@ -268,7 +268,7 @@ const u8 gUnknown_08614164[][3] = { const struct WindowTemplate gUnknown_08614174[] = { - { + { // Item names .bg = 0, .tilemapLeft = 14, .tilemapTop = 2, @@ -277,7 +277,7 @@ const struct WindowTemplate gUnknown_08614174[] = .paletteNum = 1, .baseBlock = 0x27, }, - { + { // Description .bg = 0, .tilemapLeft = 0, .tilemapTop = 13, @@ -286,7 +286,7 @@ const struct WindowTemplate gUnknown_08614174[] = .paletteNum = 1, .baseBlock = 0x117, }, - { + { // Pocket name .bg = 0, .tilemapLeft = 4, .tilemapTop = 1, @@ -295,7 +295,7 @@ const struct WindowTemplate gUnknown_08614174[] = .paletteNum = 1, .baseBlock = 0x1A1, }, - { + { // TM/HM info icons .bg = 0, .tilemapLeft = 1, .tilemapTop = 13, @@ -304,7 +304,7 @@ const struct WindowTemplate gUnknown_08614174[] = .paletteNum = 12, .baseBlock = 0x16B, }, - { + {// TM/HM info .bg = 0, .tilemapLeft = 7, .tilemapTop = 13, @@ -313,7 +313,7 @@ const struct WindowTemplate gUnknown_08614174[] = .paletteNum = 12, .baseBlock = 0x189, }, - { + { // Field message box .bg = 1, .tilemapLeft = 2, .tilemapTop = 15, @@ -432,83 +432,81 @@ struct ListBuffer2 { struct TempWallyStruct { struct ItemSlot bagPocket_Items[30]; struct ItemSlot bagPocket_PokeBalls[16]; - u16 cursorPosition[5]; - u16 scrollPosition[5]; + u16 cursorPosition[POCKETS_COUNT]; + u16 scrollPosition[POCKETS_COUNT]; u8 filler[0x2]; u16 pocket; }; EWRAM_DATA struct UnkBagStruct *gUnknown_0203CE54 = 0; EWRAM_DATA struct BagStruct gUnknown_0203CE58 = {0}; -EWRAM_DATA struct ListBuffer1 *gUnknown_0203CE74 = 0; -EWRAM_DATA struct ListBuffer2 *gUnknown_0203CE78 = 0; +static EWRAM_DATA struct ListBuffer1 *sListBuffer1 = 0; +static EWRAM_DATA struct ListBuffer2 *sListBuffer2 = 0; EWRAM_DATA u16 gSpecialVar_ItemId = 0; -EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0; +static EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0; -extern u8 *gPocketNamesStringsTable[]; -extern struct ListMenuTemplate gUnknown_08613F9C; +extern u8 *const gPocketNamesStringsTable[]; extern const u8 gMoveNames[][0xD]; extern u8* gReturnToXStringsTable[]; -extern u32 gUnknown_0203CE5E[]; extern const u8 EventScript_2736B3[]; extern const u16 gUnknown_0860F074[]; void ResetBagScrollPositions(void) { - gUnknown_0203CE58.pocket = 0; + gUnknown_0203CE58.pocket = ITEMS_POCKET; memset(gUnknown_0203CE58.cursorPosition, 0, 10); memset(gUnknown_0203CE58.scrollPosition, 0, 10); } void CB2_BagMenuFromStartMenu(void) { - GoToBagMenu(0, 5, CB2_ReturnToFieldWithOpenMenu); + GoToBagMenu(RETURN_LOCATION_FIELD, POCKETS_COUNT, CB2_ReturnToFieldWithOpenMenu); } void sub_81AABB0(void) { if (!InBattlePyramid()) - GoToBagMenu(1, 5, SetCB2ToReshowScreenAfterMenu2); + GoToBagMenu(RETURN_LOCATION_BATTLE, POCKETS_COUNT, SetCB2ToReshowScreenAfterMenu2); else sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2); } void CB2_ChooseBerry(void) { - GoToBagMenu(4, 3, CB2_ReturnToFieldContinueScript); + GoToBagMenu(RETURN_LOCATION_FIELD_2, BERRIES_POCKET, CB2_ReturnToFieldContinueScript); } void sub_81AABF0(void(*callback)(void)) { - GoToBagMenu(5, 3, callback); + GoToBagMenu(RETURN_LOCATION_FIELD_3, BERRIES_POCKET, callback); } void CB2_GoToSellMenu(void) { - GoToBagMenu(3, 5, CB2_ExitSellMenu); + GoToBagMenu(RETURN_LOCATION_SHOP, POCKETS_COUNT, CB2_ExitSellMenu); } void sub_81AAC14(void) { - GoToBagMenu(6, 5, sub_816B31C); + GoToBagMenu(RETURN_LOCATION_PC, POCKETS_COUNT, sub_816B31C); } void sub_81AAC28(void) { - GoToBagMenu(9, 5, bag_menu_leave_maybe_3); + GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe_3); gSpecialVar_0x8005 = 0; gSpecialVar_Result = 0; } void sub_81AAC50(void) { - GoToBagMenu(7, 5, bag_menu_leave_maybe_2); + GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, bag_menu_leave_maybe_2); gSpecialVar_Result = 0; } void sub_81AAC70(void) { - GoToBagMenu(8, 5, bag_menu_leave_maybe); + GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, bag_menu_leave_maybe); gSpecialVar_Result = 0; } @@ -522,21 +520,21 @@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2) } else { - if (bagMenuType != 12) + if (bagMenuType != RETURN_LOCATION_UNCHANGED) gUnknown_0203CE58.location = bagMenuType; if (postExitMenuMainCallback2) gUnknown_0203CE58.bagCallback = postExitMenuMainCallback2; - if (pocketId <= 4) + if (pocketId < POCKETS_COUNT) gUnknown_0203CE58.pocket = pocketId; - temp = gUnknown_0203CE58.location - 4; + temp = gUnknown_0203CE58.location - (POCKETS_COUNT - 1); if (temp <= 1) gUnknown_0203CE54->unk81B = 1; - gUnknown_0203CE54->unk0 = 0; + gUnknown_0203CE54->mainCallback2 = 0; gUnknown_0203CE54->unk81A = 0xFF; gUnknown_0203CE54->unk81E = -1; gUnknown_0203CE54->unk81F = -1; - memset(gUnknown_0203CE54->unk804, 0xFF, sizeof(gUnknown_0203CE54->unk804)); - memset(gUnknown_0203CE54->unk810, 0xFF, 10); + memset(gUnknown_0203CE54->spriteId, 0xFF, sizeof(gUnknown_0203CE54->spriteId)); + memset(gUnknown_0203CE54->windowPointers, 0xFF, 10); SetMainCallback2(CB2_Bag); } } @@ -615,7 +613,7 @@ bool8 setup_bag_menu(void) break; case 10: sub_81ABA6C(); - sub_81ABAC4(); + SetPocketListPositions(); sub_81ABAE0(); gMain.state++; break; @@ -677,10 +675,10 @@ bool8 setup_bag_menu(void) void bag_menu_init_bgs(void) { ResetVramOamAndBgCntRegs(); - memset(gUnknown_0203CE54->unk4, 0, 0x800); + memset(gUnknown_0203CE54->tilemapBuffer, 0, 0x800); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_08613F90, 3); - SetBgTilemapBuffer(2, gUnknown_0203CE54->unk4); + InitBgsFromTemplates(0, sBgTemplates_ItemMenu, 3); + SetBgTilemapBuffer(2, gUnknown_0203CE54->tilemapBuffer); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(2); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); @@ -702,7 +700,7 @@ bool8 load_bag_menu_graphics(void) case 1: if (free_temp_tile_data_buffers_if_possible() != TRUE) { - LZDecompressWram(gUnknown_08D9A88C, gUnknown_0203CE54->unk4); + LZDecompressWram(gUnknown_08D9A88C, gUnknown_0203CE54->tilemapBuffer); gUnknown_0203CE54->unk834++; } break; @@ -744,8 +742,8 @@ u8 sub_81AB1F0(u8 a) void allocate_bag_item_list_buffers(void) { - gUnknown_0203CE74 = Alloc(sizeof(struct ListBuffer1)); - gUnknown_0203CE78 = Alloc(sizeof(struct ListBuffer2)); + sListBuffer1 = Alloc(sizeof(struct ListBuffer1)); + sListBuffer2 = Alloc(sizeof(struct ListBuffer2)); } void load_bag_item_list_buffers(u8 pocketId) @@ -754,41 +752,41 @@ void load_bag_item_list_buffers(u8 pocketId) struct BagPocket *pocket = &gBagPockets[pocketId]; struct ListMenuItem *subBuffer; - if (!gUnknown_0203CE54->unk81B_2) + if (!gUnknown_0203CE54->hideCloseBagText) { - for (i = 0; i < gUnknown_0203CE54->unk829[pocketId] - 1; i++) + for (i = 0; i < gUnknown_0203CE54->numItemStacks[pocketId] - 1; i++) { - get_name(gUnknown_0203CE78->name[i], pocket->itemSlots[i].itemId); - subBuffer = gUnknown_0203CE74->subBuffers; - subBuffer[i].name = gUnknown_0203CE78->name[i]; + get_name(sListBuffer2->name[i], pocket->itemSlots[i].itemId); + subBuffer = sListBuffer1->subBuffers; + subBuffer[i].name = sListBuffer2->name[i]; subBuffer[i].id = i; } - StringCopy(gUnknown_0203CE78->name[i], gText_CloseBag); - subBuffer = gUnknown_0203CE74->subBuffers; - subBuffer[i].name = gUnknown_0203CE78->name[i]; + StringCopy(sListBuffer2->name[i], gText_CloseBag); + subBuffer = sListBuffer1->subBuffers; + subBuffer[i].name = sListBuffer2->name[i]; subBuffer[i].id = -2; } else { - for (i = 0; i < gUnknown_0203CE54->unk829[pocketId]; i++) + for (i = 0; i < gUnknown_0203CE54->numItemStacks[pocketId]; i++) { - get_name(gUnknown_0203CE78->name[i], pocket->itemSlots[i].itemId); - subBuffer = gUnknown_0203CE74->subBuffers; - subBuffer[i].name = gUnknown_0203CE78->name[i]; + get_name(sListBuffer2->name[i], pocket->itemSlots[i].itemId); + subBuffer = sListBuffer1->subBuffers; + subBuffer[i].name = sListBuffer2->name[i]; subBuffer[i].id = i; } } - gMultiuseListMenuTemplate = gUnknown_08613F9C; - gMultiuseListMenuTemplate.totalItems = gUnknown_0203CE54->unk829[pocketId]; - gMultiuseListMenuTemplate.items = gUnknown_0203CE74->subBuffers; - gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CE54->unk82E[pocketId]; + gMultiuseListMenuTemplate = sItemListMenu; + gMultiuseListMenuTemplate.totalItems = gUnknown_0203CE54->numItemStacks[pocketId]; + gMultiuseListMenuTemplate.items = sListBuffer1->subBuffers; + gMultiuseListMenuTemplate.maxShowed = gUnknown_0203CE54->numShownItems[pocketId]; } void get_name(s8 *dest, u16 itemId) { switch (gUnknown_0203CE58.pocket) { - case 2: + case TMHM_POCKET: StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(itemId)]); if (itemId >= ITEM_HM01) { @@ -801,7 +799,7 @@ void get_name(s8 *dest, u16 itemId) StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2); } break; - case 3: + case BERRIES_POCKET: ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_CHERI_BERRY + 1, 2, 2); CopyItemName(itemId, gStringVar2); StringExpandPlaceholders(dest, gText_UnkF908Var1Clear7Var2); @@ -851,14 +849,14 @@ void sub_81AB520(u8 rboxId, int item_index_in_pocket, u8 a) itemQuantity = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, item_index_in_pocket); if (itemId >= ITEM_HM01 && itemId <= ITEM_HM08) BlitBitmapToWindow(rboxId, gBagMenuHMIcon_Gfx, 8, a - 1, 16, 16); - if (gUnknown_0203CE58.pocket == 3) + if (gUnknown_0203CE58.pocket == BERRIES_POCKET) { ConvertIntToDecimalStringN(gStringVar1, itemQuantity, 1, 3); StringExpandPlaceholders(gStringVar4, gText_xVar1); offset = GetStringRightAlignXOffset(7, gStringVar4, 0x77); bag_menu_print(rboxId, 7, gStringVar4, offset, a, 0, 0, -1, 0); } - else if (gUnknown_0203CE58.pocket != 4 && (unique = ItemId_GetImportance(itemId)) == FALSE) + else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && (unique = ItemId_GetImportance(itemId)) == FALSE) { ConvertIntToDecimalStringN(gStringVar1, itemQuantity, 1, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); @@ -907,7 +905,7 @@ void bag_menu_print_cursor(u8 a, u8 b) void bag_menu_add_pocket_scroll_arrow_indicators_maybe(void) { if (gUnknown_0203CE54->unk81E == 0xFF) - gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xAC, 12, 0x94, gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->unk82E[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]); + gUnknown_0203CE54->unk81E = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xAC, 12, 0x94, gUnknown_0203CE54->numItemStacks[gUnknown_0203CE58.pocket] - gUnknown_0203CE54->numShownItems[gUnknown_0203CE58.pocket], 0x6E, 0x6E, &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket]); } void sub_81AB824(void) @@ -937,8 +935,8 @@ void sub_81AB89C(void) void free_bag_item_list_buffers(void) { - Free(gUnknown_0203CE78); - Free(gUnknown_0203CE74); + Free(sListBuffer2); + Free(sListBuffer1); FreeAllWindowBuffers(); Free(gUnknown_0203CE54); } @@ -955,8 +953,8 @@ void task_close_bag_menu_2(u8 taskId) if (!gPaletteFade.active) { DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); - if (gUnknown_0203CE54->unk0 != 0) - SetMainCallback2(gUnknown_0203CE54->unk0); + if (gUnknown_0203CE54->mainCallback2 != 0) + SetMainCallback2(gUnknown_0203CE54->mainCallback2); else SetMainCallback2(gUnknown_0203CE58.bagCallback); sub_81AB824(); @@ -973,52 +971,54 @@ void sub_81AB9A8(u8 pocketId) struct BagPocket *pocket = &gBagPockets[pocketId]; switch (pocketId) { - case 2: - case 3: + case TMHM_POCKET: + case BERRIES_POCKET: SortBerriesOrTMHMs(pocket); break; default: CompactItemsInBagPocket(pocket); break; } - gUnknown_0203CE54->unk829[pocketId] = 0; + gUnknown_0203CE54->numItemStacks[pocketId] = 0; for (i = 0; i < pocket->capacity && pocket->itemSlots[i].itemId; i++) - gUnknown_0203CE54->unk829[pocketId]++; - if (!gUnknown_0203CE54->unk81B_2) - gUnknown_0203CE54->unk829[pocketId]++; - if (gUnknown_0203CE54->unk829[pocketId] > 8) - gUnknown_0203CE54->unk82E[pocketId] = 8; + gUnknown_0203CE54->numItemStacks[pocketId]++; + + if (!gUnknown_0203CE54->hideCloseBagText) + gUnknown_0203CE54->numItemStacks[pocketId]++; + + if (gUnknown_0203CE54->numItemStacks[pocketId] > 8) + gUnknown_0203CE54->numShownItems[pocketId] = 8; else - gUnknown_0203CE54->unk82E[pocketId] = gUnknown_0203CE54->unk829[pocketId]; + gUnknown_0203CE54->numShownItems[pocketId] = gUnknown_0203CE54->numItemStacks[pocketId]; } void sub_81ABA6C(void) { u8 i; - for (i = 0; i < 5; i++) + for (i = 0; i < POCKETS_COUNT; i++) sub_81AB9A8(i); } -void sub_81ABA88(u8 a) +void SetInitialScrollAndCursorPositions(u8 pocketId) { - sub_812225C(&gUnknown_0203CE58.scrollPosition[a], &gUnknown_0203CE58.cursorPosition[a], gUnknown_0203CE54->unk82E[a], gUnknown_0203CE54->unk829[a]); + sub_812225C(&gUnknown_0203CE58.scrollPosition[pocketId], &gUnknown_0203CE58.cursorPosition[pocketId], gUnknown_0203CE54->numShownItems[pocketId], gUnknown_0203CE54->numItemStacks[pocketId]); } -void sub_81ABAC4(void) +static void SetPocketListPositions(void) { u8 i; - for (i = 0; i < 5; i++) - sub_81ABA88(i); + for (i = 0; i < POCKETS_COUNT; i++) + SetInitialScrollAndCursorPositions(i); } void sub_81ABAE0(void) { u8 i; - for (i = 0; i < 5; i++) - sub_8122298(&gUnknown_0203CE58.scrollPosition[i], &gUnknown_0203CE58.cursorPosition[i], gUnknown_0203CE54->unk82E[i], gUnknown_0203CE54->unk829[i], 8); + for (i = 0; i < POCKETS_COUNT; i++) + sub_8122298(&gUnknown_0203CE58.scrollPosition[i], &gUnknown_0203CE58.cursorPosition[i], gUnknown_0203CE54->numShownItems[i], gUnknown_0203CE54->numItemStacks[i], 8); } -u8 sub_81ABB2C(u8 pocketId) +u8 GetItemListPosition(u8 pocketId) { return gUnknown_0203CE58.scrollPosition[pocketId] + gUnknown_0203CE58.cursorPosition[pocketId]; } @@ -1041,7 +1041,7 @@ void bag_menu_inits_lists_menu(u8 taskId) bag_menu_RemoveBagItem_message_window(4); DestroyListMenuTask(data[0], scrollPos, cursorPos); sub_81AB9A8(gUnknown_0203CE58.pocket); - sub_81ABA88(gUnknown_0203CE58.pocket); + SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket); load_bag_item_list_buffers(gUnknown_0203CE58.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); schedule_bg_copy_tilemap_to_vram(0); @@ -1055,7 +1055,7 @@ void sub_81ABC3C(u8 a) void sub_81ABC54(u8 a, s16 b) { - u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2; + u8 r3 = (gUnknown_0203CE58.pocket == BERRIES_POCKET) ? 3 : 2; ConvertIntToDecimalStringN(gStringVar1, b, 2, r3); StringExpandPlaceholders(gStringVar4, gText_xVar1); AddTextPrinterParameterized(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0); @@ -1063,7 +1063,7 @@ void sub_81ABC54(u8 a, s16 b) void sub_81ABCC0(int a, int b, int c) { - u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2; + u8 r3 = (gUnknown_0203CE58.pocket == BERRIES_POCKET) ? 3 : 2; ConvertIntToDecimalStringN(gStringVar1, b, 2, r3); StringExpandPlaceholders(gStringVar4, gText_xVar1); AddTextPrinterParameterized(a, 1, gStringVar4, 0, 1, -1, 0); @@ -1092,7 +1092,7 @@ void Task_BagMenu(u8 taskId) if (sub_81AC2C0() == 1) { ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); - if ((*scrollPos + *cursorPos) != gUnknown_0203CE54->unk829[gUnknown_0203CE58.pocket] - 1) + if ((*scrollPos + *cursorPos) != gUnknown_0203CE54->numItemStacks[gUnknown_0203CE58.pocket] - 1) { PlaySE(SE_SELECT); bag_menu_swap_items(taskId); @@ -1102,13 +1102,13 @@ void Task_BagMenu(u8 taskId) } else { - int r4 = ListMenuHandleInputGetItemId(data[0]); + int listPosition = ListMenuHandleInputGetItemId(data[0]); ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); - switch (r4) + switch (listPosition) { - case -1: + case LIST_NOTHING_CHOSEN: break; - case -2: + case LIST_B_PRESSED: if (gUnknown_0203CE58.location == 5) { PlaySE(SE_HAZURE); @@ -1118,13 +1118,13 @@ void Task_BagMenu(u8 taskId) gSpecialVar_ItemId = select; gTasks[taskId].func = unknown_ItemMenu_Confirm; break; - default: + default: // A_BUTTON PlaySE(SE_SELECT); sub_81AB824(); bag_menu_print_cursor_(data[0], 2); - data[1] = r4; - data[2] = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, r4); - gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, r4); + data[1] = listPosition; + data[2] = BagGetQuantityByPocketPosition(gUnknown_0203CE58.pocket + 1, listPosition); + gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, listPosition); gUnknown_08614054[gUnknown_0203CE58.location](taskId); break; } @@ -1164,10 +1164,10 @@ u8 GetSwitchBagPocketDirection(void) void ChangeBagPocketId(u8 *bagPocketId, s8 deltaBagPocketId) { - if (deltaBagPocketId == 1 && *bagPocketId == 4) + if (deltaBagPocketId == 1 && *bagPocketId == POCKETS_COUNT - 1) *bagPocketId = 0; else if (deltaBagPocketId == -1 && *bagPocketId == 0) - *bagPocketId = 4; + *bagPocketId = POCKETS_COUNT - 1; else *bagPocketId += deltaBagPocketId; } @@ -1186,7 +1186,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) ClearWindowTilemap(1); DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); schedule_bg_copy_tilemap_to_vram(0); - gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE; + gSprites[gUnknown_0203CE54->spriteId[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE; sub_81AB824(); } pocketId = gUnknown_0203CE58.pocket; @@ -1444,7 +1444,7 @@ void sub_81AC644(u8 unused) default: if (sub_81221AC() == TRUE || InUnionRoom() == TRUE) { - if (gUnknown_0203CE58.pocket == 4 || !sub_8122148(gSpecialVar_ItemId)) + if (gUnknown_0203CE58.pocket == KEYITEMS_POCKET || !sub_8122148(gSpecialVar_ItemId)) { gUnknown_0203CE54->unk820 = &gUnknown_08614046; gUnknown_0203CE54->unk828 = 1; @@ -1459,14 +1459,14 @@ void sub_81AC644(u8 unused) { switch (gUnknown_0203CE58.pocket) { - case 0: + case ITEMS_POCKET: gUnknown_0203CE54->unk820 = &gUnknown_0203CE54->unk824; gUnknown_0203CE54->unk828 = 4; memcpy(&gUnknown_0203CE54->unk824, &gUnknown_0861402C, 4); if (ItemIsMail(gSpecialVar_ItemId) == TRUE) gUnknown_0203CE54->unk824 = 6; break; - case 4: + case KEYITEMS_POCKET: gUnknown_0203CE54->unk820 = &gUnknown_0203CE54->unk824; gUnknown_0203CE54->unk828 = 4; memcpy(&gUnknown_0203CE54->unk824, &gUnknown_08614030, 4); @@ -1478,22 +1478,22 @@ void sub_81AC644(u8 unused) gUnknown_0203CE54->unk824 = 7; } break; - case 1: + case BALLS_POCKET: gUnknown_0203CE54->unk820 = gUnknown_08614034; gUnknown_0203CE54->unk828 = 4; break; - case 2: + case TMHM_POCKET: gUnknown_0203CE54->unk820 = gUnknown_08614038; gUnknown_0203CE54->unk828 = 4; break; - case 3: + case BERRIES_POCKET: gUnknown_0203CE54->unk820 = gUnknown_0861403C; gUnknown_0203CE54->unk828 = 6; break; } } } - if (gUnknown_0203CE58.pocket == 2) + if (gUnknown_0203CE58.pocket == TMHM_POCKET) { ClearWindowTilemap(1); PrintTMHMMoveData(gSpecialVar_ItemId); @@ -1624,17 +1624,17 @@ bool8 sub_81ACDFC(s8 a) void bag_menu_remove_some_window(void) { if (gUnknown_0203CE54->unk828 == 1) - bag_menu_remove_window(0); + bag_menu_remove_window(0); else if (gUnknown_0203CE54->unk828 == 2) { - bag_menu_remove_window(1); + bag_menu_remove_window(1); } else if (gUnknown_0203CE54->unk828 == 4) { - bag_menu_remove_window(2); + bag_menu_remove_window(2); } else - bag_menu_remove_window(3); + bag_menu_remove_window(3); } void ItemMenu_UseOutOfBattle(u8 taskId) @@ -1648,7 +1648,7 @@ void ItemMenu_UseOutOfBattle(u8 taskId) { FillWindowPixelBuffer(1, 0); schedule_bg_copy_tilemap_to_vram(0); - if (gUnknown_0203CE58.pocket != 3) + if (gUnknown_0203CE58.pocket != BERRIES_POCKET) ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); else sub_80FDD10(taskId); @@ -1744,7 +1744,7 @@ void Task_ActuallyToss(u8 taskId) RemoveBagItem(gSpecialVar_ItemId, data[8]); DestroyListMenuTask(data[0], scrollPos, cursorPos); sub_81AB9A8(gUnknown_0203CE58.pocket); - sub_81ABA88(gUnknown_0203CE58.pocket); + SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket); load_bag_item_list_buffers(gUnknown_0203CE58.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); schedule_bg_copy_tilemap_to_vram(0); @@ -1782,7 +1782,7 @@ void ItemMenu_Give(u8 taskId) bag_menu_print_there_is_no_pokemon(taskId); else { - gUnknown_0203CE54->unk0 = sub_81B7F60; + gUnknown_0203CE54->mainCallback2 = sub_81B7F60; unknown_ItemMenu_Confirm(taskId); } } @@ -1815,7 +1815,7 @@ void sub_81AD350(u8 taskId) void ItemMenu_CheckTag(u8 taskId) { - gUnknown_0203CE54->unk0 = DoBerryTagScreen; + gUnknown_0203CE54->mainCallback2 = DoBerryTagScreen; unknown_ItemMenu_Confirm(taskId); } @@ -1842,7 +1842,7 @@ void ItemMenu_UseInBattle(u8 taskId) void bag_menu_mail_related(void) { - GoToBagMenu(12, 5, NULL); + GoToBagMenu(RETURN_LOCATION_UNCHANGED, POCKETS_COUNT, NULL); } void item_menu_type_2(u8 taskId) @@ -1857,7 +1857,7 @@ void item_menu_type_2(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeldHere); DisplayItemMessage(taskId, 1, gStringVar4, sub_81AD350); } - else if (gUnknown_0203CE58.pocket != 4 && !ItemId_GetImportance(gSpecialVar_ItemId)) + else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId)) { unknown_ItemMenu_Confirm(taskId); } @@ -1871,7 +1871,7 @@ void item_menu_type_b(u8 taskId) { if (ItemIsMail(gSpecialVar_ItemId) == TRUE) DisplayItemMessage(taskId, 1, gText_CantWriteMail, sub_81AD350); - else if (gUnknown_0203CE58.pocket != 4 && !ItemId_GetImportance(gSpecialVar_ItemId)) + else if (gUnknown_0203CE58.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId)) gTasks[taskId].func = unknown_ItemMenu_Confirm; else bag_menu_print_cant_be_held_msg(taskId); @@ -2012,7 +2012,7 @@ void sub_81AD8C8(u8 taskId) AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]); DestroyListMenuTask(data[0], scrollPos, cursorPos); sub_81AB9A8(gUnknown_0203CE58.pocket); - sub_81ABA88(gUnknown_0203CE58.pocket); + SetInitialScrollAndCursorPositions(gUnknown_0203CE58.pocket); load_bag_item_list_buffers(gUnknown_0203CE58.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); bag_menu_print_cursor_(data[0], 2); @@ -2157,7 +2157,7 @@ void DoWallyTutorialBagMenu(void) PrepareBagForWallyTutorial(); AddBagItem(ITEM_POTION, 1); AddBagItem(ITEM_POKE_BALL, 1); - GoToBagMenu(10, 0, SetCB2ToReshowScreenAfterMenu2); + GoToBagMenu(RETURN_LOCATION_BATTLE_2, ITEMS_POCKET, SetCB2ToReshowScreenAfterMenu2); } void Task_WallyTutorialBagMenu(u8 taskId) @@ -2235,7 +2235,7 @@ void bag_menu_leave_maybe(void) SetMainCallback2(CB2_ReturnToField); } -void bag_menu_print_pocket_names(u8 *pocketName1, u8 *pocketName2) +void bag_menu_print_pocket_names(const u8 *pocketName1, const u8 *pocketName2) { struct WindowTemplate window = {0, 0, 0, 0, 0, 0, 0}; u16 windowId; @@ -2252,7 +2252,7 @@ void bag_menu_print_pocket_names(u8 *pocketName1, u8 *pocketName2) offset = GetStringCenterAlignXOffset(1, pocketName2, 0x40); bag_menu_print(windowId, 1, pocketName2, offset + 0x40, 1, 0, 0, -1, 1); } - CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gUnknown_0203CE54->unk844, 0x400); + CpuCopy32((u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA), gUnknown_0203CE54->pocketNameBuffer, 0x400); RemoveWindow(windowId); } @@ -2263,7 +2263,7 @@ void bag_menu_copy_pocket_name_to_window(u32 a) int b; if (a > 8) a = 8; - r4 = &gUnknown_0203CE54->unk844; + r4 = &gUnknown_0203CE54->pocketNameBuffer; windowAttribute = (u8*)GetWindowAttribute(2, WINDOW_TILE_DATA); CpuCopy32(r4[0][a], windowAttribute, 0x100); b = a + 16; @@ -2292,17 +2292,17 @@ void setup_bag_menu_textboxes(void) void bag_menu_print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 h) { - AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str); + AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, sFontColorTable[h], speed, str); } u8 sub_81AE124(u8 a) { - return gUnknown_0203CE54->unk810[a]; + return gUnknown_0203CE54->windowPointers[a]; } u8 bag_menu_add_window(u8 a) { - u8 *ptr = &gUnknown_0203CE54->unk810[a]; + u8 *ptr = &gUnknown_0203CE54->windowPointers[a]; if (*ptr == 0xFF) { *ptr = AddWindow(&gUnknown_086141AC[a]); @@ -2314,7 +2314,7 @@ u8 bag_menu_add_window(u8 a) void bag_menu_remove_window(u8 a) { - u8 *ptr = &gUnknown_0203CE54->unk810[a]; + u8 *ptr = &gUnknown_0203CE54->windowPointers[a]; if (*ptr != 0xFF) { sub_8198070(*ptr, 0); @@ -2327,7 +2327,7 @@ void bag_menu_remove_window(u8 a) u8 AddItemMessageWindow(u8 a) { - u8 *ptr = &gUnknown_0203CE54->unk810[a]; + u8 *ptr = &gUnknown_0203CE54->windowPointers[a]; if (*ptr == 0xFF) *ptr = AddWindow(&gUnknown_086141AC[a]); return *ptr; @@ -2335,7 +2335,7 @@ u8 AddItemMessageWindow(u8 a) void bag_menu_RemoveBagItem_message_window(u8 a) { - u8 *ptr = &gUnknown_0203CE54->unk810[a]; + u8 *ptr = &gUnknown_0203CE54->windowPointers[a]; if (*ptr != 0xFF) { sub_8197DF8(*ptr, 0); diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 23dbd51eb..894574ec9 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -1,17 +1,15 @@ #include "global.h" -#include "sprite.h" +#include "berry.h" #include "decompress.h" +#include "graphics.h" +#include "item.h" #include "item_menu.h" #include "item_icon.h" #include "item_menu_icons.h" -#include "window.h" #include "menu_helpers.h" -#include "berry.h" -#include "graphics.h" +#include "sprite.h" +#include "window.h" #include "constants/items.h" -#include "item.h" -#include "item_use.h" -#include "constants/hold_effects.h" struct CompressedTilesPal { @@ -19,12 +17,6 @@ struct CompressedTilesPal const u32 *pal; }; -extern void DoHorizontalLunge(struct Sprite *sprite); -extern void DoVerticalDip(struct Sprite *sprite); -extern void SlideMonToOriginalPos(struct Sprite *sprite); -extern void SlideMonToOffset(struct Sprite *sprite); -extern void sub_80D5B48(struct Sprite *sprite); - // this file's functions static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite); static void SpriteCB_ShakeBagVisual(struct Sprite *sprite); @@ -207,7 +199,7 @@ static const struct SpritePalette gUnknown_0857FBA8 = gUnknown_0857F564, 101 }; -static const struct SpriteTemplate gUnknown_0857FBB0 = +static const struct SpriteTemplate gSpriteTemplate_RotatingBall = { .tileTag = 101, .paletteTag = 101, @@ -414,68 +406,10 @@ static const struct SpriteTemplate gUnknown_0857FE10 = .callback = SpriteCallbackDummy, }; -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, -}; - -#include "data/text/item_descriptions.h" -#include "data/items.h" - // code void RemoveBagSprite(u8 id) { - u8 *spriteId = &gUnknown_0203CE54->unk804[id]; + u8 *spriteId = &gUnknown_0203CE54->spriteId[id]; if (*spriteId != 0xFF) { FreeSpriteTilesByTag(id + 100); @@ -488,14 +422,14 @@ void RemoveBagSprite(u8 id) void AddBagVisualSprite(u8 bagPocketId) { - u8 *spriteId = &gUnknown_0203CE54->unk804[0]; + u8 *spriteId = &gUnknown_0203CE54->spriteId[0]; *spriteId = CreateSprite(&gUnknown_0857FB4C, 68, 66, 0); SetBagVisualPocketId(bagPocketId, FALSE); } void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets) { - struct Sprite *sprite = &gSprites[gUnknown_0203CE54->unk804[0]]; + struct Sprite *sprite = &gSprites[gUnknown_0203CE54->spriteId[0]]; if (isSwitchingPockets) { sprite->pos2.y = -5; @@ -524,7 +458,7 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite) void ShakeBagVisual(void) { - struct Sprite *sprite = &gSprites[gUnknown_0203CE54->unk804[0]]; + struct Sprite *sprite = &gSprites[gUnknown_0203CE54->spriteId[0]]; if (sprite->affineAnimEnded) { StartSpriteAffineAnim(sprite, 1); @@ -543,10 +477,10 @@ static void SpriteCB_ShakeBagVisual(struct Sprite *sprite) void AddSwitchPocketRotatingBallSprite(s16 rotationDirection) { - u8 *spriteId = &gUnknown_0203CE54->unk804[1]; + u8 *spriteId = &gUnknown_0203CE54->spriteId[1]; LoadSpriteSheet(&gUnknown_0857FBA0); LoadSpritePalette(&gUnknown_0857FBA8); - *spriteId = CreateSprite(&gUnknown_0857FBB0, 16, 16, 0); + *spriteId = CreateSprite(&gSpriteTemplate_RotatingBall, 16, 16, 0); gSprites[*spriteId].data[0] = rotationDirection; } @@ -581,7 +515,7 @@ static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite) void AddBagItemIconSprite(u16 itemId, u8 id) { - u8 *spriteId = &gUnknown_0203CE54->unk804[id + 2]; + u8 *spriteId = &gUnknown_0203CE54->spriteId[id + 2]; if (*spriteId == 0xFF) { u8 iconSpriteId; @@ -605,17 +539,17 @@ void RemoveBagItemIconSprite(u8 id) void sub_80D4FAC(void) { - sub_8122344(&gUnknown_0203CE54->unk804[4], 8); + sub_8122344(&gUnknown_0203CE54->spriteId[4], 8); } void sub_80D4FC8(u8 arg0) { - sub_81223FC(&gUnknown_0203CE54->unk804[4], 8, arg0); + sub_81223FC(&gUnknown_0203CE54->spriteId[4], 8, arg0); } void sub_80D4FEC(u8 arg0) { - sub_8122448(&gUnknown_0203CE54->unk804[4], 136, 120, (arg0 + 1) * 16); + sub_8122448(&gUnknown_0203CE54->spriteId[4], 136, 120, (arg0 + 1) * 16); } static void sub_80D5018(void *mem0, void *mem1) diff --git a/src/item_use.c b/src/item_use.c index 4ab9f6e23..474b16ae1 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -10,7 +10,7 @@ #include "fieldmap.h" #include "event_object_movement.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "item.h" #include "item_menu.h" @@ -57,7 +57,6 @@ extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*); extern void sub_81C5924(void); extern void sub_81C59BC(void); extern void sub_81AB9A8(u8); -extern void sub_81ABA88(u8); extern void StartEscapeRopeFieldEffect(void); extern u8* sub_806CF78(u16); extern void sub_81B89F0(void); @@ -128,7 +127,7 @@ void SetUpItemUseCallback(u8 taskId) type = ItemId_GetType(gSpecialVar_ItemId) - 1; if (!InBattlePyramid()) { - gUnknown_0203CE54->unk0 = gUnknown_085920D8[type]; + gUnknown_0203CE54->mainCallback2 = gUnknown_085920D8[type]; unknown_ItemMenu_Confirm(taskId); } else @@ -212,7 +211,7 @@ void sub_80FD254(void) void ItemUseOutOfBattle_Mail(u8 taskId) { - gUnknown_0203CE54->unk0 = sub_80FD254; + gUnknown_0203CE54->mainCallback2 = sub_80FD254; unknown_ItemMenu_Confirm(taskId); } @@ -608,7 +607,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) } else if (gTasks[taskId].data[3] != TRUE) { - gUnknown_0203CE54->unk0 = sub_80FDBEC; + gUnknown_0203CE54->mainCallback2 = sub_80FDBEC; unknown_ItemMenu_Confirm(taskId); } else @@ -670,7 +669,7 @@ void sub_80FDD10(u8 taskId) { gUnknown_0203A0F4 = sub_80FDD74; gFieldCallback = MapPostLoadHook_UseItem; - gUnknown_0203CE54->unk0 = CB2_ReturnToField; + gUnknown_0203CE54->mainCallback2 = CB2_ReturnToField; unknown_ItemMenu_Confirm(taskId); } else @@ -812,7 +811,7 @@ void sub_80FE058(void) if (!InBattlePyramid()) { sub_81AB9A8(ItemId_GetPocket(gSpecialVar_ItemId)); - sub_81ABA88(ItemId_GetPocket(gSpecialVar_ItemId)); + SetInitialScrollAndCursorPositions(ItemId_GetPocket(gSpecialVar_ItemId)); } else { @@ -993,7 +992,7 @@ void sub_80FE54C(u8 taskId) { if (!InBattlePyramid()) { - gUnknown_0203CE54->unk0 = sub_81B89F0; + gUnknown_0203CE54->mainCallback2 = sub_81B89F0; unknown_ItemMenu_Confirm(taskId); } else diff --git a/src/landmark.c b/src/landmark.c index 4eade159a..52d52500a 100644 --- a/src/landmark.c +++ b/src/landmark.c @@ -17,21 +17,21 @@ struct LandmarkList static const u8 LandmarkName_FlowerShop[] = _("FLOWER SHOP"); static const u8 LandmarkName_PetalburgWoods[] = _("PETALBURG WOODS"); -static const u8 LandmarkName_MrBrineysCottage[] = _("MR. BRINEY’S COTTAGE"); +static const u8 LandmarkName_MrBrineysCottage[] = _("MR. BRINEY'S COTTAGE"); static const u8 LandmarkName_AbandonedShip[] = _("ABANDONED SHIP"); static const u8 LandmarkName_SeashoreHouse[] = _("SEASHORE HOUSE"); static const u8 LandmarkName_SlateportBeach[] = _("SLATEPORT BEACH"); static const u8 LandmarkName_CyclingRoad[] = _("CYCLING ROAD"); static const u8 LandmarkName_NewMauville[] = _("NEW MAUVILLE"); static const u8 LandmarkName_TrickHouse[] = _("TRICK HOUSE"); -static const u8 LandmarkName_OldLadysRestShop[] = _("OLD LADY’S REST STOP"); +static const u8 LandmarkName_OldLadysRestShop[] = _("OLD LADY'S REST STOP"); static const u8 LandmarkName_Desert[] = _("DESERT"); static const u8 LandmarkName_WinstrateFamily[] = _("THE WINSTRATE FAMILY"); static const u8 LandmarkName_CableCar[] = _("CABLE CAR"); static const u8 LandmarkName_GlassWorkshop[] = _("GLASS WORKSHOP"); static const u8 LandmarkName_WeatherInstitute[] = _("WEATHER INSTITUTE"); static const u8 LandmarkName_MeteorFalls[] = _("METEOR FALLS"); -static const u8 LandmarkName_TunnelersRestHouse[] = _("TUNNELER’S RESTHOUSE"); +static const u8 LandmarkName_TunnelersRestHouse[] = _("TUNNELER'S RESTHOUSE"); static const u8 LandmarkName_RusturfTunnel[] = _("RUSTURF TUNNEL"); static const u8 LandmarkName_PokemonDayCare[] = _("POKéMON DAY CARE"); static const u8 LandmarkName_SafariZoneEntrance[] = _("SAFARI ZONE ENTRANCE"); @@ -40,18 +40,18 @@ static const u8 LandmarkName_ShoalCave[] = _("SHOAL CAVE"); static const u8 LandmarkName_SeafloorCavern[] = _("SEAFLOOR CAVERN"); static const u8 LandmarkName_GraniteCave[] = _("GRANITE CAVE"); static const u8 LandmarkName_OceanCurrent[] = _("OCEAN CURRENT"); -static const u8 LandmarkName_LanettesHouse[] = _("LANETTE’S HOUSE"); +static const u8 LandmarkName_LanettesHouse[] = _("LANETTE'S HOUSE"); static const u8 LandmarkName_FieryPath[] = _("FIERY PATH"); static const u8 LandmarkName_JaggedPass[] = _("JAGGED PASS"); static const u8 LandmarkName_SkyPillar[] = _("SKY PILLAR"); -static const u8 LandmarkName_BerryMastersHouse[] = _("BERRY MASTER’S HOUSE"); +static const u8 LandmarkName_BerryMastersHouse[] = _("BERRY MASTER'S HOUSE"); static const u8 LandmarkName_IslandCave[] = _("ISLAND CAVE"); static const u8 LandmarkName_DesertRuins[] = _("DESERT RUINS"); static const u8 LandmarkName_ScorchedSlab[] = _("SCORCHED SLAB"); static const u8 LandmarkName_AncientTomb[] = _("ANCIENT TOMB"); static const u8 LandmarkName_SealedChamber[] = _("SEALED CHAMBER"); -static const u8 LandmarkName_FossilManiacsHouse[] = _("FOSSIL MANIAC’S HOUSE"); -static const u8 LandmarkName_HuntersHouse[] = _("HUNTER’S HOUSE"); +static const u8 LandmarkName_FossilManiacsHouse[] = _("FOSSIL MANIAC'S HOUSE"); +static const u8 LandmarkName_HuntersHouse[] = _("HUNTER'S HOUSE"); static const u8 LandmarkName_MagmaHideout[] = _("MAGMA HIDEOUT"); static const u8 LandmarkName_MirageTower[] = _("MIRAGE TOWER"); static const u8 LandmarkName_AlteringCave[] = _("ALTERING CAVE"); @@ -338,8 +338,8 @@ static const struct Landmark *const Landmarks_MtChimney_2[] = static const struct LandmarkList gLandmarkLists[] = { - {MAPSEC_ROUTE_103, 2, Landmarks_Route103_2}, - {MAPSEC_ROUTE_104, 0, Landmarks_Route104_0}, + {MAPSEC_ROUTE_103, 2, Landmarks_Route103_2}, + {MAPSEC_ROUTE_104, 0, Landmarks_Route104_0}, {MAPSEC_ROUTE_104, 1, Landmarks_Route104_1}, {MAPSEC_ROUTE_105, 0, Landmarks_Route105_0}, {MAPSEC_ROUTE_106, 1, Landmarks_Route106_1}, diff --git a/src/learn_move.c b/src/learn_move.c index 7717a5193..4db83861e 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -5,11 +5,11 @@ #include "contest_effect.h" #include "data2.h" #include "event_data.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "gpu_regs.h" #include "learn_move.h" #include "list_menu.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "overworld.h" @@ -52,7 +52,7 @@ static EWRAM_DATA struct { 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 = +const struct OamData gUnknown_085CEB98 = { .y = 0, .affineMode = 0, @@ -69,7 +69,7 @@ const struct OamData gUnknown_085CEB98 = .affineParam = 0, }; -const struct OamData gUnknown_085CEBA0 = +const struct OamData gUnknown_085CEBA0 = { .y = 0, .affineMode = 0, @@ -86,7 +86,7 @@ const struct OamData gUnknown_085CEBA0 = .affineParam = 0, }; -const struct OamData gUnknown_085CEBA8 = +const struct OamData gUnknown_085CEBA8 = { .y = 0, .affineMode = 0, @@ -103,20 +103,20 @@ const struct OamData gUnknown_085CEBA8 = .affineParam = 0, }; -const struct SpriteSheet gUnknown_085CEBB0 = +const struct SpriteSheet gUnknown_085CEBB0 = { .data = gUnknown_085CEA18, .size = 0x180, .tag = 5525 }; -const struct SpritePalette gUnknown_085CEBB8 = +const struct SpritePalette gUnknown_085CEBB8 = { .data = gUnknown_085CE9F8, .tag = 5526 }; -const struct ScrollArrowsTemplate gUnknown_085CEBC0 = +const struct ScrollArrowsTemplate gUnknown_085CEBC0 = { .firstArrowType = 0, .firstX = 27, @@ -131,7 +131,7 @@ const struct ScrollArrowsTemplate gUnknown_085CEBC0 = .palNum = 0, }; -const struct ScrollArrowsTemplate gUnknown_085CEBD0 = +const struct ScrollArrowsTemplate gUnknown_085CEBD0 = { .firstArrowType = 2, .firstX = 192, @@ -146,31 +146,31 @@ const struct ScrollArrowsTemplate gUnknown_085CEBD0 = .palNum = 0, }; -const union AnimCmd gUnknown_085CEBE0[] = +const union AnimCmd gUnknown_085CEBE0[] = { ANIMCMD_FRAME(8, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd gUnknown_085CEBE8[] = +const union AnimCmd gUnknown_085CEBE8[] = { ANIMCMD_FRAME(9, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd gUnknown_085CEBF0[] = +const union AnimCmd gUnknown_085CEBF0[] = { ANIMCMD_FRAME(10, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd gUnknown_085CEBF8[] = +const union AnimCmd gUnknown_085CEBF8[] = { ANIMCMD_FRAME(11, 5, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd *const gUnknown_085CEC00[] = +const union AnimCmd *const gUnknown_085CEC00[] = { gUnknown_085CEBE0, gUnknown_085CEBE8, @@ -178,7 +178,7 @@ const union AnimCmd *const gUnknown_085CEC00[] = gUnknown_085CEBF8, }; -const struct SpriteTemplate gUnknown_085CEC10 = +const struct SpriteTemplate gUnknown_085CEC10 = { .tileTag = 5525, .paletteTag = 5526, @@ -707,7 +707,7 @@ static void CreateHearts(void) 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); @@ -791,7 +791,7 @@ void ShowHideHearts(s32 item) else { numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10); - + if (numHearts == 0xFF) { numHearts = 0; @@ -811,7 +811,7 @@ void ShowHideHearts(s32 item) } numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10); - + if (numHearts == 0xFF) { numHearts = 0; diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c index 21d38bb38..556b79bf8 100644 --- a/src/librfu_stwi.c +++ b/src/librfu_stwi.c @@ -246,7 +246,7 @@ void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3) if (!STWI_init(RFU_SYSTEM_CONFIG)) { u8 *packetBytes; - + gRfuState->txParams = 1; packetBytes = gRfuState->txPacket->rfuPacket8.data; @@ -348,7 +348,7 @@ void STWI_send_DataTxREQ(void *in, u8 size) u8 txParams = (size / sizeof(u32)); if (size & (sizeof(u32) - 1)) txParams += 1; - + gRfuState->txParams = txParams; CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32)); STWI_start_Command(); @@ -469,11 +469,11 @@ void STWI_send_CPR_StartREQ(u16 unk0, u16 unk1, u8 unk2) { u32 *packetData; u32 arg1; - + if (!STWI_init(RFU_CPR_START)) { gRfuState->txParams = 2; - + arg1 = unk1 | (unk0 << 16); packetData = gRfuState->txPacket->rfuPacket32.data; packetData[0] = arg1; @@ -569,7 +569,7 @@ void STWI_set_timer(u8 unk) void STWI_stop_timer(void) { gRfuState->timerState = 0; - + REG_TMCNT_L(gRfuState->timerSelect) = 0; REG_TMCNT_H(gRfuState->timerSelect) = 0; } @@ -612,7 +612,7 @@ u16 STWI_init(u8 request) gRfuState->timerActive = 0; gRfuState->unk_12 = 0; gRfuState->unk_15 = 0; - + REG_RCNT = 0x100; REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; return FALSE; @@ -622,22 +622,22 @@ u16 STWI_init(u8 request) int STWI_start_Command() { u16 imeTemp; - + // Yes, it matters that it's casted to a u32... *(u32*)gRfuState->txPacket->rfuPacket8.data = 0x99660000 | (gRfuState->txParams << 8) | gRfuState->activeCommand; REG_SIODATA32 = gRfuState->txPacket->rfuPacket32.command; - + gRfuState->unk_0 = 0; gRfuState->unk_5 = 1; - + imeTemp = REG_IME; REG_IME = 0; REG_IE |= (INTR_FLAG_TIMER0 << gRfuState->timerSelect); REG_IE |= INTR_FLAG_SERIAL; REG_IME = imeTemp; - + REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_MULTI_BUSY | SIO_115200_BPS; - + return 0; } @@ -654,7 +654,7 @@ int STWI_restart_Command(void) { gRfuState->unk_12 = 1; gRfuState->unk_2c = 0; - + if (gRfuState->callbackM) gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12); } @@ -662,18 +662,18 @@ int STWI_restart_Command(void) { gRfuState->unk_12 = 1; gRfuState->unk_2c = 0; - + if (gRfuState->callbackM) gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12); - + gRfuState->unk_0 = 4; //TODO: what's 4 } } - + return 0; } -int STWI_reset_ClockCounter() +int STWI_reset_ClockCounter(void) { gRfuState->unk_0 = 5; //TODO: what is 5 gRfuState->txParams = 0; @@ -682,6 +682,6 @@ int STWI_reset_ClockCounter() REG_SIOCNT = 0; REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; REG_SIOCNT = (SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS) + 0x7F; - + return 0; } diff --git a/src/link.c b/src/link.c index 687a6c07b..79df699ef 100644 --- a/src/link.c +++ b/src/link.c @@ -2,7 +2,7 @@ // Includes #include "global.h" #include "m4a.h" -#include "malloc.h" +#include "alloc.h" #include "reset_save_heap.h" #include "save.h" #include "bg.h" diff --git a/src/link_rfu.c b/src/link_rfu.c index 7d46fec2d..2c6e22475 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -1,26 +1,24 @@ - -// Includes #include "global.h" -#include "malloc.h" +#include "alloc.h" #include "battle.h" #include "berry_blender.h" -#include "task.h" -#include "random.h" #include "decompress.h" -#include "text.h" -#include "string_util.h" #include "event_data.h" -#include "overworld.h" -#include "link.h" +#include "gpu_regs.h" #include "librfu.h" -#include "rom_8011DC0.h" +#include "link.h" #include "link_rfu.h" +#include "overworld.h" +#include "random.h" +#include "palette.h" +#include "rom_8011DC0.h" +#include "string_util.h" +#include "task.h" +#include "text.h" +#include "constants/species.h" extern u16 gUnknown_03005DA8; - -// Static type declarations - -// Static RAM declarations +extern void nullsub_89(u8 taskId); struct UnkRfuStruct_1 gUnknown_03004140; struct UnkRfuStruct_2 gUnknown_03005000; @@ -32,12 +30,11 @@ IWRAM_DATA u16 gUnknown_03000D90[8]; EWRAM_DATA u8 gWirelessStatusIndicatorSpriteId = 0; EWRAM_DATA ALIGNED(4) struct UnkLinkRfuStruct_02022B14 gUnknown_02022B14 = {}; -EWRAM_DATA ALIGNED(2) u8 gUnknown_02022B22[8] = {}; +EWRAM_DATA ALIGNED(2) u8 gUnknown_02022B22[PLAYER_NAME_LENGTH + 1] = {}; EWRAM_DATA struct UnkLinkRfuStruct_02022B2C gUnknown_02022B2C = {}; EWRAM_DATA struct UnkLinkRfuStruct_02022B44 gUnknown_02022B44 = {}; // Static ROM declarations - static void sub_800C000(void); static void sub_800C7B4(u16 r8, u16 r6); static void sub_800C744(u32 a0); @@ -68,18 +65,21 @@ static void rfufunc_80FA020(void); bool32 sub_8010454(u32 a0); static void sub_8010528(void); void sub_8010750(void); -int sub_80107A0(void); +s32 sub_80107A0(void); void sub_801084C(u8 taskId); void sub_80109E8(u16 a0); void sub_8010A70(void *a0); void sub_8010AAC(u8 taskId); void sub_8010D0C(u8 taskId); -void sub_80115EC(u16 a0); +void sub_80115EC(s32 a0); u8 sub_8011CE4(const u8 *a0, u16 a1); -void sub_8011D6C(u8 a0); -void sub_8011E94(u8 a0, u8 a1); -u8 sub_8012224(void); +void sub_8011D6C(u32 a0); +void sub_8011E94(u32 a0, u32 a1); +bool8 sub_8012224(void); void sub_801227C(void); +void sub_801209C(u8 taskId); +void sub_8011BF8(void); +void sub_8011BA4(void); // .rodata @@ -276,7 +276,7 @@ const struct { { gBlockSendBuffer, 40 } }; const u16 gUnknown_082ED6E0[] = { - 0x0002, 0x7f7d, 0x0000, 0xffff + 0x0002, 0x7f7d, 0x0000, 0xFFFF }; const char sUnref_082ED6E8[][15] = { @@ -308,6 +308,11 @@ 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[]; + // .text u32 sub_800BEC0(void) @@ -352,7 +357,7 @@ void rfu_REQ_sendData_wrapper(u8 r2) rfu_REQ_sendData(r2); } -int sub_800BF4C(void (*func1)(u8, u8), void (*func2)(u16)) +s32 sub_800BF4C(void (*func1)(u8, u8), void (*func2)(u16)) { if (func1 == NULL) { @@ -474,7 +479,6 @@ u8 sub_800C054(u8 r5, u16 r7, u16 r8, const u16 *r6) u8 sub_800C12C(u16 r6, u16 r8) { u8 i; - struct RfuUnk5 *tmp; if (gUnknown_03004140.unk_04 != 0 && (gUnknown_03004140.unk_04 < 9 || gUnknown_03004140.unk_04 > 11)) { @@ -1465,7 +1469,7 @@ static u8 sub_800D294(void) for (i = 0; i < gUnknown_03007890->unk_08; i++) { - for (ptr = gUnknown_03004140.unk_20; *ptr != 0xffff; ptr++) + for (ptr = gUnknown_03004140.unk_20; *ptr != 0xFFFF; ptr++) { if (gUnknown_03007890->unk_14[i].unk_04 == *ptr) { @@ -1685,8 +1689,8 @@ void sub_800D658(void) void sub_800D6C8(struct UnkRfuStruct_2_Sub_124 *ptr) { - int i; - int j; + s32 i; + s32 j; for (i = 0; i < 32; i++) { @@ -1703,8 +1707,8 @@ void sub_800D6C8(struct UnkRfuStruct_2_Sub_124 *ptr) void sub_800D724(struct UnkRfuStruct_2_Sub_9e8 *ptr) { - int i; - int j; + s32 i; + s32 j; for (i = 0; i < 40; i++) { @@ -1721,8 +1725,8 @@ void sub_800D724(struct UnkRfuStruct_2_Sub_9e8 *ptr) void sub_800D780(struct UnkRfuStruct_Sub_Unused *ptr) { - int i; - int j; + s32 i; + s32 j; for (i = 0; i < 2; i++) { @@ -1739,7 +1743,7 @@ void sub_800D780(struct UnkRfuStruct_Sub_Unused *ptr) void sub_800D7D8(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2) { - int i; + s32 i; u16 imeBak; u8 count; @@ -1779,7 +1783,7 @@ void sub_800D7D8(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2) void sub_800D888(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2) { - int i; + s32 i; u16 imeBak; if (q1->unk_232 < 40) @@ -1818,7 +1822,7 @@ void sub_800D888(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2) bool8 sub_800D934(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2) { u16 imeBak; - int i; + s32 i; imeBak = REG_IME; REG_IME = 0; @@ -1844,7 +1848,7 @@ bool8 sub_800D934(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2) bool8 sub_800D9DC(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2) { - int i; + s32 i; u16 imeBak; if (q1->unk_230 == q1->unk_231 || q1->unk_233 != 0) @@ -1866,7 +1870,7 @@ bool8 sub_800D9DC(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2) void sub_800DA68(struct UnkRfuStruct_2_Sub_c1c *q1, const u8 *q2) { - int i; + s32 i; if (q2[1] == 0) { @@ -1893,7 +1897,7 @@ void sub_800DA68(struct UnkRfuStruct_2_Sub_c1c *q1, const u8 *q2) static bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2) { - int i; + s32 i; if (q1->unk_1e == 0) { @@ -1914,7 +1918,7 @@ static bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2) void sub_800DB18(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2) { - int i; + s32 i; if (q1->unk_202 < 2) { @@ -1934,7 +1938,7 @@ void sub_800DB18(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2) bool8 sub_800DB84(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2) { - int i; + s32 i; if (q1->unk_200 == q1->unk_201 || q1->unk_203) { @@ -1952,7 +1956,7 @@ bool8 sub_800DB84(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2) void sub_800DBF8(u8 *q1, u8 mode) { - int i; + s32 i; u8 rval; u16 r5 = 0; switch (mode) @@ -1996,7 +2000,7 @@ void sub_800DBF8(u8 *q1, u8 mode) void PkmnStrToASCII(u8 *q1, const u8 *q2) { - int i; + s32 i; for (i = 0; q2[i] != EOS; i++) { @@ -2007,7 +2011,7 @@ void PkmnStrToASCII(u8 *q1, const u8 *q2) void ASCIIToPkmnStr(u8 *q1, const u8 *q2) { - int i; + s32 i; for (i = 0; q2[i] != 0; i++) { @@ -2020,20 +2024,17 @@ void ASCIIToPkmnStr(u8 *q1, const u8 *q2) u8 sub_800DD1C(u8 maxFlags) { u8 flagCount = 0; - u8 flags = gUnknown_03007890->unk_02; + u32 flags = gUnknown_03007890->unk_02; u8 i; if (gUnknown_03007890->unk_00 == 1) { - i = 0; for (i = 0; i < 4; flags >>= 1, i++) { if (flags & 1) { if (maxFlags == flagCount + 1) - { return gUnknown_03007890->unk_0a[i]; - } flagCount++; } } @@ -2043,9 +2044,7 @@ u8 sub_800DD1C(u8 maxFlags) for (i = 0; i < 4; flags >>= 1, i++) { if (flags & 1) - { return gUnknown_03007890->unk_0a[i]; - } } } return 0; @@ -2120,9 +2119,9 @@ NAKED u8 sub_800DD1C(u8 maxFlags) } #endif -void sub_800DD94(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, int r3) +void sub_800DD94(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, s32 r3) { - int i; + s32 i; for (i = 0; i < 2; i++) { @@ -2156,12 +2155,12 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx) if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04) && ((gUnknown_03007890->unk_07 >> idx) & 1)) { memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD); - memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, sizeof(gUnknown_03007890->unk_14[idx].unk_15)); + memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, PLAYER_NAME_LENGTH + 1); } else { memset(buff1, 0, 0xD); - memset(buff2, 0, sizeof(gUnknown_03007890->unk_14[idx].unk_15)); + memset(buff2, 0, sizeof(gUnknown_03007890->unk_14[idx].playerName)); } } else @@ -2170,12 +2169,12 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx) if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04)) { memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD); - memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, sizeof(gUnknown_03007890->unk_14[idx].unk_15)); + memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, PLAYER_NAME_LENGTH + 1); } else { memset(buff1, 0, 0xD); - memset(buff2, 0, sizeof(gUnknown_03007890->unk_14[idx].unk_15)); + memset(buff2, 0, PLAYER_NAME_LENGTH + 1); } } return retVal; @@ -2186,13 +2185,13 @@ bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx) bool8 retVal = FALSE; if (gUnknown_03007890->unk_14[idx].unk_04 == 0x7F7D) { - *buff1 = gUnknown_03007890->unk_14[idx].unk_06; - memcpy(buff2, gUnknown_03007890->unk_14[idx].unk_15, 8); + memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD); + memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, 8); retVal = TRUE; } else { - *buff1 = (struct UnkLinkRfuStruct_02022B14){}; + memset(buff1, 0, 0xD); memset(buff2, 0, 8); } return retVal; @@ -2200,7 +2199,7 @@ bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx) void sub_800DF90(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2) { - *buff1 = gUnknown_02022B14; + memcpy(buff1, &gUnknown_02022B14, 0xD); memcpy(buff2, gUnknown_02022B22, 8); } @@ -2266,7 +2265,7 @@ u8 sub_800E124(void) return 0; } -void sub_800E15C(struct Sprite *sprite, int signalStrengthAnimNum) +void sub_800E15C(struct Sprite *sprite, s32 signalStrengthAnimNum) { if (sprite->data[2] != signalStrengthAnimNum) { @@ -2356,7 +2355,7 @@ void sub_800E378(struct UnkSaveSubstruct_3b98 *dest, u32 trainerId, const u8 *na bool32 sub_800E388(const u8 *name) { - int i; + s32 i; for (i = 0; i < 8; i++) { @@ -2372,10 +2371,10 @@ void sub_800E3A8(void) { if (gWirelessCommType != 0) { - int i; - int j; - int cnt; - int sp0[5]; + s32 i; + s32 j; + s32 cnt; + s32 sp0[5]; struct UnkSaveSubstruct_3b98 *sp14 = calloc(20, sizeof(struct UnkSaveSubstruct_3b98)); for (i = 0; i < GetLinkPlayerCount(); i++) { @@ -2419,7 +2418,7 @@ void sub_800E3A8(void) bool32 sub_800E540(u16 id, u8 *name) { - int i; + s32 i; for (i = 0; i < 20; i++) { @@ -2437,7 +2436,7 @@ bool32 sub_800E540(u16 id, u8 *name) void sub_800E5AC(void) { - int i; + s32 i; for (i = 0; i < 20; i++) { @@ -2446,19 +2445,19 @@ void sub_800E5AC(void) } } -void nullsub_5(void *unused_0, u8 unused_1, u8 unused_2) +void nullsub_5(const char *unused_0, u8 unused_1, u8 unused_2) { // debug? } -void nullsub_13(u8 unused_0, u8 unused_1, u8 unused_2, u8 unused_3) +void nullsub_13(u16 unused_0, u8 unused_1, u8 unused_2, u8 unused_3) { } void sub_800E604(void) { - int i; + s32 i; u8 unk_ee_bak = gUnknown_03005000.unk_ee; CpuFill16(0, &gUnknown_03005000, sizeof gUnknown_03005000); gUnknown_03005000.unk_ee = unk_ee_bak; @@ -2542,17 +2541,17 @@ void sub_800E748(u8 taskId) } } -u8 sub_800E87C(u8 idx) +s32 sub_800E87C(u8 idx) { return gUnknown_082ED6A5[idx]; } -void sub_800E88C(int r2, int r5) +void sub_800E88C(s32 r2, s32 r5) { u8 i; u8 r4 = 1; - int r1 = r2; - int r6 = 0; + s32 r1 = r2; + s32 r6 = 0; if (r5 == -1) { for (i = 0; i < 4; r2 >>= 1, i++) @@ -2743,7 +2742,7 @@ void sub_800ED28(void) void sub_800ED34(u16 unused) { - int i; + s32 i; for (i = 0; i < 14; i++) { @@ -2820,7 +2819,7 @@ bool8 sub_800EE94(void) return FALSE; } -bool8 sub_800EEBC(void) +bool32 sub_800EEBC(void) { if (gUnknown_03005000.unk_04 == 7 && !sub_800C12C(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3d].unk_00, 240)) { @@ -2885,7 +2884,7 @@ void sub_800EF88(u8 a0) // FIXME: gRecvCmds should be in r6 and r7 void sub_800EFB0(void) { - int i, j; + s32 i, j; for (i = 0; i < 5; i++) { for (j = 0; j < 7; j++) @@ -2947,7 +2946,7 @@ NAKED void sub_800EFB0(void) void sub_800F014(void) { - int i; + s32 i; for (i = 0; i < 7; i++) { gRecvCmds[0][i] = gSendCmd[i]; @@ -2981,8 +2980,8 @@ static void sub_800F048(void) bool32 sub_800F0B8(void) { - int i; - int j; + s32 i; + s32 j; if (gUnknown_03007890->unk_06 == 0) { @@ -3078,7 +3077,7 @@ bool32 sub_800F1E0(void) { if (gUnknown_03005000.unk_14[i][1]) { - if (gUnknown_03005000.unk_cee[i] != 0xff && (gUnknown_03005000.unk_14[i][0] >> 5) != ((gUnknown_03005000.unk_cee[i] + 1) & 7)) + if (gUnknown_03005000.unk_cee[i] != 0xFF && (gUnknown_03005000.unk_14[i][0] >> 5) != ((gUnknown_03005000.unk_cee[i] + 1) & 7)) { if (++gUnknown_03005000.unk_cea[i] > 4) sub_8011170(0x8100); @@ -3137,7 +3136,7 @@ bool32 sub_800F1E0(void) void sub_800F498(u16 *a0, u8 *a1) { - int i; + s32 i; if (a0[0]) { @@ -3203,13 +3202,11 @@ bool32 sub_800F4F0(void) return sub_800F0B8(); } -#ifdef NONMATCHING void sub_800F638(u8 unused, u32 flags) { - int i; - int j; + s32 i, j; - u8 *r10 = gUnknown_03005000.unk_6c.unk_04; + const u8 *r10 = gUnknown_03005000.unk_6c.unk_04; for (i = 0; i < gUnknown_03005000.unk_6c.unk_02; i++) { if (!(flags & 1)) @@ -3220,11 +3217,11 @@ void sub_800F638(u8 unused, u32 flags) gUnknown_03000D90[j + 1] = (r10[12 * i + (j << 1) + 1] << 8) | r10[12 * i + (j << 1) + 0]; } for (j = 0; j < 7; j++) - // This should be an ascending loop. - // GCC compiles this as descending. { gUnknown_03000D80[2 * j + 1] = gUnknown_03000D90[j] >> 8; gUnknown_03000D80[2 * j + 0] = gUnknown_03000D90[j]; + + j++;j--; // Needed to match; } sub_800D888(&gUnknown_03005000.unk_9e8, gUnknown_03000D80); gUnknown_03005000.unk_6c.unk_0c |= (1 << i); @@ -3232,101 +3229,6 @@ void sub_800F638(u8 unused, u32 flags) flags >>= 1; } } -#else -NAKED void sub_800F638(u8 unused, u32 flags) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tldr r0, =gUnknown_03005000\n" - "\tldr r2, [r0, 0x70]\n" - "\tmov r10, r2\n" - "\tmovs r5, 0\n" - "\tadds r2, r0, 0\n" - "\tadds r2, 0x6E\n" - "\tldrh r3, [r2]\n" - "\tcmp r5, r3\n" - "\tbge _0800F6D4\n" - "\tmov r9, r0\n" - "\tldr r0, =gUnknown_03000D90\n" - "\tmov r8, r0\n" - "_0800F65A:\n" - "\tmovs r0, 0x1\n" - "\tands r0, r1\n" - "\tlsrs r7, r1, 1\n" - "\tadds r6, r5, 0x1\n" - "\tcmp r0, 0\n" - "\tbne _0800F6C8\n" - "\tldr r1, =0xffff8900\n" - "\tadds r0, r1, 0\n" - "\tadds r1, r5, 0\n" - "\torrs r1, r0\n" - "\tmov r2, r8\n" - "\tstrh r1, [r2]\n" - "\tmovs r4, 0\n" - "\tlsls r0, r5, 1\n" - "\tldr r3, =gUnknown_03000D80\n" - "\tmov r12, r3\n" - "\tadds r0, r5\n" - "\tlsls r0, 2\n" - "\tmov r1, r10\n" - "\tadds r2, r0, r1\n" - "\tmov r3, r8\n" - "\tadds r3, 0x2\n" - "_0800F686:\n" - "\tldrb r1, [r2, 0x1]\n" - "\tlsls r1, 8\n" - "\tldrb r0, [r2]\n" - "\torrs r0, r1\n" - "\tstrh r0, [r3]\n" - "\tadds r2, 0x2\n" - "\tadds r3, 0x2\n" - "\tadds r4, 0x1\n" - "\tcmp r4, 0x6\n" - "\tble _0800F686\n" - "\tmovs r4, 0\n" - "\tldr r2, =gUnknown_03000D90\n" - "\tldr r1, =gUnknown_03000D80\n" - "_0800F6A0:\n" - "\tldrh r0, [r2]\n" - "\tlsrs r0, 8\n" - "\tstrb r0, [r1, 0x1]\n" - "\tldrh r0, [r2]\n" - "\tstrb r0, [r1]\n" - "\tadds r2, 0x2\n" - "\tadds r1, 0x2\n" - "\tadds r4, 0x1\n" - "\tcmp r4, 0x6\n" - "\tble _0800F6A0\n" - "\tldr r0, =gUnknown_03005000+0x9E8\n" - "\tmov r1, r12\n" - "\tbl sub_800D888\n" - "\tmovs r1, 0x1\n" - "\tlsls r1, r5\n" - "\tmov r2, r9\n" - "\tldr r0, [r2, 0x78]\n" - "\torrs r0, r1\n" - "\tstr r0, [r2, 0x78]\n" - "_0800F6C8:\n" - "\tadds r1, r7, 0\n" - "\tadds r5, r6, 0\n" - "\tldr r3, =gUnknown_03005000+0x6E\n" - "\tldrh r3, [r3]\n" - "\tcmp r5, r3\n" - "\tblt _0800F65A\n" - "_0800F6D4:\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool"); -} -#endif void sub_800F6FC(u8 a0) { @@ -3408,89 +3310,89 @@ static void sub_800F86C(u8 unused) { switch (gRecvCmds[i][0] & 0xff00) { - case 0x7800: - if (gUnknown_03005000.unk_0c == 0 && gReceivedRemoteLinkPlayers != 0) - return; - // fallthrough - case 0x7700: - if (gUnknown_03007890->unk_00 == 0) - { - gUnknown_03005000.playerCount = gRecvCmds[i][1]; - gUnknown_03005000.unk_cce = sub_800F74C((u8 *)(gRecvCmds[i] + 2)); - } - break; - case 0x8800: - if (gUnknown_03005000.unk_80[i].unk_12 == 0) - { - gUnknown_03005000.unk_80[i].unk_00 = 0; - gUnknown_03005000.unk_80[i].unk_02 = gRecvCmds[i][1]; - gUnknown_03005000.unk_80[i].unk_11 = gRecvCmds[i][2]; - gUnknown_03005000.unk_80[i].unk_08 = 0; - gUnknown_03005000.unk_80[i].unk_12 = 1; - gUnknown_03005000.unk_5c[i] = 0; - } - break; - case 0x8900: - if (gUnknown_03005000.unk_80[i].unk_12 == 1) + case 0x7800: + if (gUnknown_03005000.unk_0c == 0 && gReceivedRemoteLinkPlayers != 0) + return; + // fallthrough + case 0x7700: + if (gUnknown_03007890->unk_00 == 0) + { + gUnknown_03005000.playerCount = gRecvCmds[i][1]; + gUnknown_03005000.unk_cce = sub_800F74C((u8 *)(gRecvCmds[i] + 2)); + } + break; + case 0x8800: + if (gUnknown_03005000.unk_80[i].unk_12 == 0) + { + gUnknown_03005000.unk_80[i].unk_00 = 0; + gUnknown_03005000.unk_80[i].unk_02 = gRecvCmds[i][1]; + gUnknown_03005000.unk_80[i].unk_11 = gRecvCmds[i][2]; + gUnknown_03005000.unk_80[i].unk_08 = 0; + gUnknown_03005000.unk_80[i].unk_12 = 1; + gUnknown_03005000.unk_5c[i] = 0; + } + break; + case 0x8900: + if (gUnknown_03005000.unk_80[i].unk_12 == 1) + { + gUnknown_03005000.unk_80[i].unk_00 = gRecvCmds[i][0] & 0xff; + gUnknown_03005000.unk_80[i].unk_08 |= (1 << gUnknown_03005000.unk_80[i].unk_00); + for (j = 0; j < 6; j++) + gBlockRecvBuffer[i][gUnknown_03005000.unk_80[i].unk_00 * 6 + j] = gRecvCmds[i][j + 1]; + if (gUnknown_03005000.unk_80[i].unk_08 == gUnknown_082ED628[gUnknown_03005000.unk_80[i].unk_02]) { - gUnknown_03005000.unk_80[i].unk_00 = gRecvCmds[i][0] & 0xff; - gUnknown_03005000.unk_80[i].unk_08 |= (1 << gUnknown_03005000.unk_80[i].unk_00); - for (j = 0; j < 6; j++) - gBlockRecvBuffer[i][gUnknown_03005000.unk_80[i].unk_00 * 6 + j] = gRecvCmds[i][j + 1]; - if (gUnknown_03005000.unk_80[i].unk_08 == gUnknown_082ED628[gUnknown_03005000.unk_80[i].unk_02]) - { - gUnknown_03005000.unk_80[i].unk_12 = 2; - sub_800F6FC(i); - if (sub_800F7DC()->unk_0a_0 == 0x45 && gReceivedRemoteLinkPlayers != 0 && gUnknown_03005000.unk_0c == 0) - sub_8010A70(gBlockRecvBuffer); - } + gUnknown_03005000.unk_80[i].unk_12 = 2; + sub_800F6FC(i); + if (sub_800F7DC()->unk_0a_0 == 0x45 && gReceivedRemoteLinkPlayers != 0 && gUnknown_03005000.unk_0c == 0) + sub_8010A70(gBlockRecvBuffer); } - break; - case 0xa100: - sub_800FE84(gUnknown_082ED6B8[gRecvCmds[i][1]].buffer, (u16)gUnknown_082ED6B8[gRecvCmds[i][1]].size); - break; - case 0x5f00: - gUnknown_03005000.unk_e4[i] = 1; - break; - case 0x6600: - if (gUnknown_03005000.unk_100 == gRecvCmds[i][1]) - gUnknown_03005000.unk_e9[i] = 1; - break; - case 0xed00: - if (gUnknown_03005000.unk_0c == 0) + } + break; + case 0xa100: + sub_800FE84(gUnknown_082ED6B8[gRecvCmds[i][1]].buffer, (u16)gUnknown_082ED6B8[gRecvCmds[i][1]].size); + break; + case 0x5f00: + gUnknown_03005000.unk_e4[i] = 1; + break; + case 0x6600: + if (gUnknown_03005000.unk_100 == gRecvCmds[i][1]) + gUnknown_03005000.unk_e9[i] = 1; + break; + case 0xed00: + if (gUnknown_03005000.unk_0c == 0) + { + if (gReceivedRemoteLinkPlayers != 0) { - if (gReceivedRemoteLinkPlayers != 0) + if (gRecvCmds[i][1] & gUnknown_03007890->unk_02) { - if (gRecvCmds[i][1] & gUnknown_03007890->unk_02) - { - gReceivedRemoteLinkPlayers = 0; - sub_800D630(); - gUnknown_03005000.unk_ce4 = gRecvCmds[i][2]; - } - gUnknown_03005000.playerCount = gRecvCmds[i][3]; - sub_80109E8(gRecvCmds[i][1]); + gReceivedRemoteLinkPlayers = 0; + sub_800D630(); + gUnknown_03005000.unk_ce4 = gRecvCmds[i][2]; } - } - else - { - sub_800FD14(0xee00); - gSendCmd[1] = gRecvCmds[i][1]; - gSendCmd[2] = gRecvCmds[i][2]; - gSendCmd[3] = gRecvCmds[i][3]; - } - break; - case 0xee00: - if (gUnknown_03005000.unk_0c == 1) - { - gUnknown_03005000.unk_ce3 |= gRecvCmds[i][1]; - gUnknown_03005000.unk_ce4 = gRecvCmds[i][2]; + gUnknown_03005000.playerCount = gRecvCmds[i][3]; sub_80109E8(gRecvCmds[i][1]); } - break; - case 0x4400: - case 0xbe00: - gLinkPartnersHeldKeys[i] = gRecvCmds[i][1]; - break; + } + else + { + sub_800FD14(0xee00); + gSendCmd[1] = gRecvCmds[i][1]; + gSendCmd[2] = gRecvCmds[i][2]; + gSendCmd[3] = gRecvCmds[i][3]; + } + break; + case 0xee00: + if (gUnknown_03005000.unk_0c == 1) + { + gUnknown_03005000.unk_ce3 |= gRecvCmds[i][1]; + gUnknown_03005000.unk_ce4 = gRecvCmds[i][2]; + sub_80109E8(gRecvCmds[i][1]); + } + break; + case 0x4400: + case 0xbe00: + gLinkPartnersHeldKeys[i] = gRecvCmds[i][1]; + break; } if (gUnknown_03005000.unk_0c == 1 && gUnknown_03005000.unk_61[i]) { @@ -3507,7 +3409,7 @@ static void sub_800F86C(u8 unused) bool8 sub_800FC60(void) { - int i; + s32 i; for (i = 0; i < 5; i++) { @@ -3519,7 +3421,7 @@ bool8 sub_800FC60(void) bool8 sub_800FC88(void) { - int i; + s32 i; for (i = 0; i < gUnknown_03005000.playerCount; i++) { @@ -3543,7 +3445,7 @@ static void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data) u8 sub_800FCD8(void) { u8 flags = 0; - int i; + s32 i; for (i = 0; i < 5; i++) { @@ -3555,8 +3457,6 @@ u8 sub_800FCD8(void) return flags; } -#ifdef NONMATCHING -// The switch tree is incorrect void sub_800FD14(u16 command) { u8 i; @@ -3566,199 +3466,48 @@ void sub_800FD14(u16 command) gSendCmd[0] = command; switch (command) { - case 0x8800: - gSendCmd[1] = gUnknown_03005000.unk_6c.unk_02; - gSendCmd[2] = gUnknown_03005000.unk_6c.unk_11 + 0x80; - break; - case 0xa100: - if (sub_800FC60()) - gSendCmd[1] = gUnknown_03005000.unk_5a; - break; - case 0x7800: - case 0x7700: - tmp = gUnknown_03005000.unk_ce2 ^ gUnknown_03005000.unk_ce3; - gUnknown_03005000.playerCount = gUnknown_082ED695[tmp] + 1; - gSendCmd[1] = gUnknown_03005000.playerCount; - buff = (u8 *)(gSendCmd + 2); - for (i = 0; i < 4; i++) - buff[i] = gUnknown_03005000.unk_cde[i]; - break; - case 0x6600: - case 0x5f00: - gSendCmd[1] = gUnknown_03005000.unk_100; - break; - case 0x4400: - gSendCmd[0] = 0x4400; - gSendCmd[1] = gMain.heldKeys; - break; - case 0x2f00: - for (i = 0; i < 6; i++) - gSendCmd[1 + i] = gUnknown_03005000.unk_f2[i]; - break; - case 0xbe00: - gSendCmd[1] = gUnknown_03005DA8; - break; + case 0x8800: + gSendCmd[1] = gUnknown_03005000.unk_6c.unk_02; + gSendCmd[2] = gUnknown_03005000.unk_6c.unk_11 + 0x80; + break; + case 0xa100: + if (sub_800FC60()) + gSendCmd[1] = gUnknown_03005000.unk_5a; + break; + case 0x7700: + case 0x7800: + tmp = gUnknown_03005000.unk_ce2 ^ gUnknown_03005000.unk_ce3; + gUnknown_03005000.playerCount = gUnknown_082ED695[tmp] + 1; + gSendCmd[1] = gUnknown_03005000.playerCount; + buff = (u8 *)(gSendCmd + 2); + for (i = 0; i < 4; i++) + buff[i] = gUnknown_03005000.unk_cde[i]; + break; + case 0x6600: + case 0x5f00: + gSendCmd[1] = gUnknown_03005000.unk_100; + break; + case 0x4400: + gSendCmd[0] = command; + gSendCmd[1] = gMain.heldKeys; + break; + case 0x2f00: + for (i = 0; i < 6; i++) + gSendCmd[1 + i] = gUnknown_03005000.unk_f2[i]; + break; + case 0xbe00: + gSendCmd[1] = gUnknown_03005DA8; + break; + case 0xee00: + break; + case 0xed00: + break; } } -#else -NAKED void sub_800FD14(u16 command) -{ - asm_unified("\tpush {r4,r5,lr}\n" - "\tlsls r0, 16\n" - "\tlsrs r1, r0, 16\n" - "\tldr r5, =gSendCmd\n" - "\tstrh r1, [r5]\n" - "\tmovs r0, 0xF0\n" - "\tlsls r0, 7\n" - "\tadds r4, r5, 0\n" - "\tcmp r1, r0\n" - "\tbeq _0800FDB0_case_7700_case_7800\n" - "\tcmp r1, r0\n" - "\tbgt _0800FD62\n" - "\tmovs r0, 0xBE\n" - "\tlsls r0, 7\n" - "\tcmp r1, r0\n" - "\tbeq _0800FE00_case_5f00_case_6600\n" - "\tcmp r1, r0\n" - "\tbgt _0800FD50\n" - "\tmovs r0, 0xBC\n" - "\tlsls r0, 6\n" - "\tcmp r1, r0\n" - "\tbeq _0800FE20_case_2f00\n" - "\tmovs r0, 0x88\n" - "\tlsls r0, 7\n" - "\tcmp r1, r0\n" - "\tbeq _0800FE14_case_4400\n" - "\tb _0800FE46_break\n" - "\t.pool\n" - "_0800FD50:\n" - "\tmovs r0, 0xCC\n" - "\tlsls r0, 7\n" - "\tcmp r1, r0\n" - "\tbeq _0800FE00_case_5f00_case_6600\n" - "\tmovs r0, 0xEE\n" - "\tlsls r0, 7\n" - "\tcmp r1, r0\n" - "\tbeq _0800FDB0_case_7700_case_7800\n" - "\tb _0800FE46_break\n" - "_0800FD62:\n" - "\tmovs r0, 0xBE\n" - "\tlsls r0, 8\n" - "\tcmp r1, r0\n" - "\tbeq _0800FE40_case_be00\n" - "\tcmp r1, r0\n" - "\tbgt _0800FE46_break\n" - "\tmovs r0, 0x88\n" - "\tlsls r0, 8\n" - "\tcmp r1, r0\n" - "\tbeq _0800FD80_case_8800\n" - "\tmovs r0, 0xA1\n" - "\tlsls r0, 8\n" - "\tcmp r1, r0\n" - "\tbeq _0800FD98_case_a100\n" - "\tb _0800FE46_break\n" - "_0800FD80_case_8800:\n" - "\tldr r0, =gUnknown_03005000\n" - "\tadds r1, r0, 0\n" - "\tadds r1, 0x6E\n" - "\tldrh r1, [r1]\n" - "\tstrh r1, [r5, 0x2]\n" - "\tadds r0, 0x7D\n" - "\tldrb r0, [r0]\n" - "\tadds r0, 0x80\n" - "\tstrh r0, [r5, 0x4]\n" - "\tb _0800FE46_break\n" - "\t.pool\n" - "_0800FD98_case_a100:\n" - "\tbl sub_800FC60\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbeq _0800FE46_break\n" - "\tldr r0, =gUnknown_03005000\n" - "\tadds r0, 0x5A\n" - "\tldrb r0, [r0]\n" - "\tb _0800FE44_str_break\n" - "\t.pool\n" - "_0800FDB0_case_7700_case_7800:\n" - "\tldr r3, =gUnknown_03005000\n" - "\tldr r1, =0x00000ce2\n" - "\tadds r0, r3, r1\n" - "\tldr r2, =0x00000ce3\n" - "\tadds r1, r3, r2\n" - "\tldrb r2, [r0]\n" - "\tldrb r0, [r1]\n" - "\teors r0, r2\n" - "\tldr r1, =gUnknown_082ED695\n" - "\tadds r0, r1\n" - "\tldrb r0, [r0]\n" - "\tadds r0, 0x1\n" - "\tstrb r0, [r3, 0xD]\n" - "\tldrb r0, [r3, 0xD]\n" - "\tstrh r0, [r4, 0x2]\n" - "\tadds r2, r4, 0x4\n" - "\tmovs r4, 0\n" - "\tldr r0, =0x00000cde\n" - "\tadds r3, r0\n" - "_0800FDD6:\n" - "\tadds r1, r2, r4\n" - "\tadds r0, r4, r3\n" - "\tldrb r0, [r0]\n" - "\tstrb r0, [r1]\n" - "\tadds r0, r4, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tcmp r4, 0x3\n" - "\tbls _0800FDD6\n" - "\tb _0800FE46_break\n" - "\t.pool\n" - "_0800FE00_case_5f00_case_6600:\n" - "\tldr r0, =gUnknown_03005000\n" - "\tmovs r1, 0x80\n" - "\tlsls r1, 1\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0]\n" - "\tstrh r0, [r4, 0x2]\n" - "\tb _0800FE46_break\n" - "\t.pool\n" - "_0800FE14_case_4400:\n" - "\tstrh r1, [r5]\n" - "\tldr r0, =gMain\n" - "\tldrh r0, [r0, 0x2C]\n" - "\tb _0800FE44_str_break\n" - "\t.pool\n" - "_0800FE20_case_2f00:\n" - "\tmovs r4, 0\n" - "\tldr r3, =gUnknown_03005000+0xF2\n" - "_0800FE24:\n" - "\tadds r2, r4, 0x1\n" - "\tlsls r1, r2, 1\n" - "\tadds r1, r5\n" - "\tlsls r0, r4, 1\n" - "\tadds r0, r3\n" - "\tldrh r0, [r0]\n" - "\tstrh r0, [r1]\n" - "\tlsls r2, 24\n" - "\tlsrs r4, r2, 24\n" - "\tcmp r4, 0x5\n" - "\tbls _0800FE24\n" - "\tb _0800FE46_break\n" - "\t.pool\n" - "_0800FE40_case_be00:\n" - "\tldr r0, =gUnknown_03005DA8\n" - "\tldrh r0, [r0]\n" - "_0800FE44_str_break:\n" - "\tstrh r0, [r5, 0x2]\n" - "_0800FE46_break:\n" - "\tpop {r4,r5}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool"); -} -#endif void sub_800FE50(u16 *a0) { - if (gSendCmd[0] == 0 && sub_8011A80() == 0) + if (gSendCmd[0] == 0 && !sub_8011A80()) { memcpy(gUnknown_03005000.unk_f2, a0, sizeof(gUnknown_03005000.unk_f2)); sub_800FD14(0x2f00); @@ -3816,7 +3565,7 @@ static void rfufunc_80F9F44(void) static void sub_800FFB0(void) { - int i; + s32 i; const u8 *src = gUnknown_03005000.unk_6c.unk_04; gSendCmd[0] = 0x8900 | gUnknown_03005000.unk_6c.unk_00; for (i = 0; i < 7; i++) @@ -3833,7 +3582,7 @@ static void rfufunc_80FA020(void) { const u8 *src = gUnknown_03005000.unk_6c.unk_04; u8 mpId = GetMultiplayerId(); - int i; + s32 i; if (gUnknown_03005000.unk_0c == 0) { gSendCmd[0] = (~0x76ff) | (gUnknown_03005000.unk_6c.unk_02 - 1); @@ -3897,9 +3646,9 @@ void sub_8010198(void) void sub_80101CC(void) { - int i; + s32 i; u8 playerCount = gUnknown_03005000.playerCount; - int count = 0; + s32 count = 0; for (i = 0; i < MAX_RFU_PLAYERS; i++) { @@ -4026,10 +3775,10 @@ void sub_8010434(void) bool32 sub_8010454(u32 a0) { - int i; + s32 i; for (i = 0; gUnknown_082ED6E0[i] != a0; i++) { - if (gUnknown_082ED6E0[i] == 0xffff) + if (gUnknown_082ED6E0[i] == 0xFFFF) return FALSE; } return TRUE; @@ -4076,7 +3825,7 @@ static void sub_8010528(void) bool8 sub_8010540(void) { - int i; + s32 i; bool8 retval = FALSE; for (i = 0; i < 4; i++) { @@ -4107,7 +3856,7 @@ bool8 sub_8010540(void) bool32 sub_80105EC(void) { u8 flags = 0; - int i; + s32 i; for (i = 0; i < 4; i++) { if (gUnknown_03005000.unk_cd5[i] == 11) @@ -4157,7 +3906,7 @@ void sub_80106D4(void) u32 sub_8010714(u16 a0, const u8 *a1) { u8 r0 = sub_8011CE4(a1, a0); - if (r0 == 0xff) + if (r0 == 0xFF) return 2; if (gUnknown_03007880[r0]->unk_0 == 0) return 1; @@ -4166,7 +3915,7 @@ u32 sub_8010714(u16 a0, const u8 *a1) void sub_8010750(void) { - int i; + s32 i; sub_8010540(); for (i = 0; i < 4; i++) @@ -4180,9 +3929,9 @@ void sub_8010750(void) } } -int sub_80107A0(void) +s32 sub_80107A0(void) { - int retval = 0; + s32 retval = 0; if (gUnknown_03005000.unk_c85 == 8) { if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_0 == 0x26 || gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_0 == 0x27) @@ -4204,7 +3953,7 @@ int sub_80107A0(void) void sub_801084C(u8 taskId) { - int i; + s32 i; if (gUnknown_03005000.unk_f1 == 1 || gUnknown_03005000.unk_f1 == 2) { @@ -4288,7 +4037,7 @@ void sub_801084C(u8 taskId) void sub_80109E8(u16 a0) { - int i; + s32 i; for (i = 0; i < 4; i++) { @@ -4299,7 +4048,7 @@ void sub_80109E8(u16 a0) void sub_8010A14(const struct UnkRfuStruct_8010A14 *a0) { - int i; + s32 i; gUnknown_03005000.playerCount = a0->unk_0f; for (i = 0; i < 4; i++) gUnknown_03005000.unk_cde[i] = a0->unk_10[i]; @@ -4322,7 +4071,7 @@ void sub_8010A70(void *a0) void sub_8010AAC(u8 taskId) { - int i; + s32 i; struct LinkPlayerBlock *r2; struct UnkRfuStruct_8010A14 *r5; u8 r4 = gUnknown_03005000.unk_cde[gUnknown_082ED68C[gUnknown_03005000.unk_ce9]]; @@ -4501,7 +4250,7 @@ void sub_8010F48(void) void sub_8010F60(void) { - gUnknown_02022B14 = (struct UnkLinkRfuStruct_02022B14){}; + memset(&gUnknown_02022B14, 0, 0xD); sub_800DD94(&gUnknown_02022B14, 0, 0, 0); } @@ -4523,7 +4272,7 @@ void sub_8010FCC(u32 a0, u32 a1, u32 a2) gUnknown_02022B14.unk_0b_1 = a2; } -u8 sub_801100C(int a0) +u8 sub_801100C(s32 a0) { u8 retval = 0x80; retval |= (gLinkPlayers[a0].gender << 3); @@ -4534,7 +4283,7 @@ u8 sub_801100C(int a0) void sub_801103C(void) { struct UnkLinkRfuStruct_02022B14 *r5 = &gUnknown_02022B14; - int i; + s32 i; for (i = 1; i < GetLinkPlayerCount(); i++) r5->unk_04[i - 1] = sub_801100C(i); @@ -4555,10 +4304,10 @@ void sub_8011090(u8 a0, u32 a1, u32 a2) void sub_80110B8(u32 a0) { - int i; + s32 i; u32 r5; u32 r7; - int r8; + s32 r8; if (sub_800F7DC()->unk_0a_0 == 0x45) { @@ -4614,329 +4363,794 @@ void sub_80111FC(void) gUnknown_03005000.unk_00 = sub_80111DC; } -#ifdef NONMATCHING -void sub_801120C(u8 a0) +void sub_801120C(u8 a0, u8 unused1) { u8 i; u8 r6 = 0; - struct RfuUnk5Sub *unk5Sub; switch (a0) { - case 0x00: - gUnknown_03005000.unk_04 = 2; - break; - case 0x10: - break; - case 0x11: - sub_80115EC(gUnknown_03004140.unk_14); - for (i = 0; i < 4; i++) + case 0x00: + gUnknown_03005000.unk_04 = 2; + break; + case 0x10: + break; + case 0x11: + sub_80115EC(gUnknown_03004140.unk_14); + for (i = 0; i < 4; i++) + { + if ((gUnknown_03004140.unk_14 >> i) & 1) { - if ((gUnknown_03004140.unk_14 >> i) & 1) + struct UnkLinkRfuStruct_02022B14 *structPtr = &gUnknown_03007890->unk_14[i].unk_06; + if (structPtr->unk_0a_0 == sub_800F7DC()->unk_0a_0) { - unk5Sub = &gUnknown_03007890->unk_14[i]; - if (unk5Sub->unk_06.unk_0a_0 == sub_800F7DC()->unk_0a_0) - { - gUnknown_03005000.unk_cd1[i] = 0; - gUnknown_03005000.unk_cd5[i] = 0; - rfu_setRecvBuffer(0x20, i, gUnknown_03005000.unk_cd5 + i, 1); - } - else - { - r6 |= (1 << i); - } + gUnknown_03005000.unk_cd1[i] = 0; + gUnknown_03005000.unk_cd5[i] = 0; + rfu_setRecvBuffer(0x20, i, gUnknown_03005000.unk_cd5 + i, 1); + } + else + { + r6 |= (1 << i); } } - if (r6) + } + if (r6) + { + rfu_REQ_disconnect(r6); + rfu_waitREQComplete(); + } + break; + case 0x12: + break; + case 0x13: + break; + case 0x14: + if (gUnknown_03005000.unk_ce7 != gUnknown_03004140.unk_00) + { + rfu_REQ_disconnect(gUnknown_03005000.unk_ce7 ^ gUnknown_03004140.unk_00); + rfu_waitREQComplete(); + } + gUnknown_03005000.unk_04 = 0x11; + break; + case 0x31: + gUnknown_03005000.unk_f0 = 1; + break; + case 0x32: + gUnknown_03005000.unk_f0 = 3; + break; + case 0x30: + case 0x33: + gUnknown_03005000.unk_f0 = 4; + gUnknown_03005000.unk_ce2 &= ~gUnknown_03004140.unk_14; + if (gReceivedRemoteLinkPlayers == 1) + { + if (gUnknown_03005000.unk_ce2 == 0) + sub_8011170(a0); + else + sub_80111FC(); + } + sub_8011A64(2, a0); + break; + case 0x34: + break; + case 0x42 ... 0x44: + break; + case 0xf3: + sub_8011A64(1, a0); + sub_8011170(a0); + gUnknown_03005000.unk_ef = 1; + break; + case 0xf0 ... 0xf2: + case 0xff: + sub_8011170(a0); + sub_8011A64(1, a0); + gUnknown_03005000.unk_cdb = 1; + break; + } +} + +void sub_8011404(u8 a0, u8 unused1) +{ + switch (a0) + { + case 0x00: + gUnknown_03005000.unk_04 = 6; + break; + case 0x20: + gUnknown_03005000.unk_ccd = gUnknown_03004140.unk_14; + break; + case 0x21: + break; + case 0x22: + gUnknown_03005000.unk_c3e = gUnknown_03004140.unk_14; + break; + case 0x23: + sub_8011A64(2, a0); + break; + case 0x24: + gUnknown_03005000.unk_04 = 11; + gUnknown_03005000.unk_c85 = 0; + gUnknown_03005000.unk_c86 = 0; + rfu_setRecvBuffer(0x20, gUnknown_03005000.unk_c3e, &gUnknown_03005000.unk_c86, 1); + rfu_setRecvBuffer(0x10, gUnknown_03005000.unk_c3e, gUnknown_03005000.unk_c3f, 70); + break; + case 0x25: + sub_8011A64(2, 0x25); + break; + case 0x30: + gUnknown_03005000.unk_f0 = 2; + if (gUnknown_03005000.unk_c86 == 6) + break; + case 0x33: + if (gUnknown_03005000.unk_f0 != 2) + gUnknown_03005000.unk_f0 = 4; + if (gUnknown_03005000.unk_c86 != 9) + sub_8011A64(2, a0); + nullsub_5(gUnknown_082ED7FC, 5, 5); + if (gReceivedRemoteLinkPlayers == 1) + sub_8011170(a0); + break; + case 0x31: + gUnknown_03005000.unk_f0 = 1; + nullsub_5(gUnknown_082ED814, 5, 5); + break; + case 0x32: + gUnknown_03005000.unk_f0 = 3; + gUnknown_03005000.unk_c3c = 1; + break; + case 0x34: + break; + case 0x42 ... 0x44: + break; + case 0xF3: + sub_8011A64(1, a0); + sub_8011170(a0); + gUnknown_03005000.unk_ef = 1; + break; + case 0xF0 ... 0xF2: + case 0xFF: + sub_8011A64(1, a0); + sub_8011170(a0); + gUnknown_03005000.unk_cdb = 1; + break; + } +} + +void sub_80115EC(s32 a0) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + if ((a0 >> i) & 1) + { + gUnknown_03005000.unk_cea[i] = 0; + gUnknown_03005000.unk_cee[i] |= 0xFF; + } + } +} + +u8 sub_8011628(s32 a0) +{ + u8 ret = 0; + u8 i; + + for (i = 0; i < 4; i++) + { + if ((a0 >> i) & 1) + { + struct UnkLinkRfuStruct_02022B14 *structPtr = &gUnknown_03007890->unk_14[i].unk_06; + if (structPtr->unk_0a_0 == 0x45) + ret |= (1 << i); + } + } + + return ret; +} + +void sub_8011674(u8 a0, u8 unused1) +{ + u8 r1; + + switch (a0) + { + case 0x00: + gUnknown_03005000.unk_04 = 0x11; + break; + case 0x10: + sub_8011A64(4, 0); + break; + case 0x11: + if (sub_800F7DC()->unk_0a_0 == 0x45 && gUnknown_03005000.unk_cd9 == 0) + { + u8 idx = sub_8011628(gUnknown_03004140.unk_14); + if (idx != 0) { - rfu_REQ_disconnect(r6); - rfu_waitREQComplete(); + r1 = 1 << sub_800E87C(idx); + if (gUnknown_03005000.unk_ce6 == 0 && gUnknown_03005000.unk_ce8 == 0) + { + gUnknown_03005000.unk_ce5 = r1; + gUnknown_03005000.unk_ce6 |= (r1 ^ idx); + gUnknown_03005000.unk_ce8 = 1; + } + else + { + gUnknown_03005000.unk_ce6 |= idx; + } } - break; - case 0x12: - break; - case 0x13: - break; - case 0x14: - if (gUnknown_03005000.unk_ce7 != gUnknown_03004140.unk_00) + if (idx != gUnknown_03004140.unk_14) { - rfu_REQ_disconnect(gUnknown_03005000.unk_ce7 ^ gUnknown_03004140.unk_00); - rfu_waitREQComplete(); + gUnknown_03005000.unk_ce3 |= (idx ^ gUnknown_03004140.unk_14); + gUnknown_03005000.unk_ce4 = 2; } - gUnknown_03005000.unk_04 = 0x11; - break; - case 0x31: + } + else if (sub_800F7DC()->unk_0a_0 == 0x54) + { + rfu_REQ_disconnect(gUnknown_03004140.unk_00); + rfu_waitREQComplete(); + } + sub_80115EC(gUnknown_03004140.unk_14); + break; + case 0x12: + break; + case 0x13: + break; + case 0x14: + if (sub_800F7DC()->unk_0a_0 != 0x45 && gUnknown_03004140.unk_01 > 1) + { + r1 = 1 << sub_800E87C(gUnknown_03004140.unk_14); + rfu_REQ_disconnect(gUnknown_03004140.unk_00 ^ r1); + rfu_waitREQComplete(); + } + if (gUnknown_03005000.unk_04 == 0xF) + gUnknown_03005000.unk_04 = 0x10; + break; + break; + case 0x20: + gUnknown_03005000.unk_ccd = gUnknown_03004140.unk_14; + break; + case 0x21: + break; + case 0x22: + gUnknown_03005000.unk_c3e = gUnknown_03004140.unk_14; + break; + case 0x23: + gUnknown_03005000.unk_04 = 0x12; + if (gUnknown_03005000.unk_ccf < 2) + { + gUnknown_03005000.unk_ccf++; + CreateTask(sub_801209C, 2); + } + else + { + sub_8011A64(2, a0); + } + break; + case 0x24: + gUnknown_03005000.unk_04 = 0xD; + sub_8011A64(3, 0); + rfu_setRecvBuffer(0x10, gUnknown_03005000.unk_c3e, gUnknown_03005000.unk_c3f, 70); + break; + case 0x25: + sub_8011A64(2, a0); + break; + case 0x31: + if (gUnknown_03004140.unk_00 & gUnknown_03004140.unk_14) gUnknown_03005000.unk_f0 = 1; - break; - case 0x32: - gUnknown_03005000.unk_f0 = 3; - break; - case 0x30: - case 0x33: + break; + case 0x32: + gUnknown_03005000.unk_f0 = 3; + if (gUnknown_03007890->unk_00 == 0) + gUnknown_03005000.unk_c3c = 1; + break; + case 0x30: + gUnknown_03005000.unk_f0 = 2; + case 0x33: + if (gUnknown_03005000.unk_f0 != 2) gUnknown_03005000.unk_f0 = 4; - gUnknown_03005000.unk_ce2 &= ~gUnknown_03004140.unk_14; + if (gUnknown_03005000.unk_0c == 1) + { if (gReceivedRemoteLinkPlayers == 1) { + gUnknown_03005000.unk_ce2 &= ~(gUnknown_03004140.unk_14); if (gUnknown_03005000.unk_ce2 == 0) sub_8011170(a0); else sub_80111FC(); } - sub_8011A64(2, a0); - break; - case 0x42 ... 0x44: - break; - case 0xf3: - sub_8011A64(1, a0); - sub_8011170(a0); - gUnknown_03005000.unk_ef = 1; - break; - case 0xf0 ... 0xf2: - case 0xff: + } + else if (gUnknown_03005000.unk_ce4 != 2 && gReceivedRemoteLinkPlayers == 1) + { sub_8011170(a0); - sub_8011A64(1, a0); - gUnknown_03005000.unk_cdb = 1; - break; + sub_800C27C(0); + } + + if (gUnknown_03007890->unk_00 == 0xFF && gUnknown_03004140.unk_07 == 0 && FuncIsActiveTask(sub_800EB44) == TRUE) + gUnknown_03005000.unk_04 = 0x11; + + sub_8011A64(2, a0); + break; + case 0x40: + gUnknown_03005000.unk_ce3 = 0; + break; + case 0x42 ... 0x44: + break; + case 0xF3: + sub_8011A64(1, a0); + sub_8011170(a0); + gUnknown_03005000.unk_ef = 1; + break; + case 0xF0 ... 0xF2: + case 0xFF: + sub_8011170(a0); + sub_8011A64(1, a0); + gUnknown_03005000.unk_cdb = 0; + break; } } -#else -NAKED void sub_801120C(u8 a0) + +void sub_8011A50(void) { - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tmovs r6, 0\n" - "\tcmp r4, 0x32\n" - "\tbne _08011222\n" - "\tb _08011360_case_32\n" - "_08011222:\n" - "\tcmp r4, 0x32\n" - "\tbgt _08011252\n" - "\tcmp r4, 0x13\n" - "\tbgt _08011240\n" - "\tcmp r4, 0x12\n" - "\tblt _08011230\n" - "\tb _080113EE_break\n" - "_08011230:\n" - "\tcmp r4, 0x10\n" - "\tbne _08011236\n" - "\tb _080113EE_break\n" - "_08011236:\n" - "\tcmp r4, 0x10\n" - "\tbgt _0801128C_case_11\n" - "\tcmp r4, 0\n" - "\tbeq _0801127E_case_00\n" - "\tb _080113EE_break\n" - "_08011240:\n" - "\tcmp r4, 0x30\n" - "\tbne _08011246\n" - "\tb _0801136C_case_30_case_33\n" - "_08011246:\n" - "\tcmp r4, 0x30\n" - "\tble _0801124C\n" - "\tb _08011354_case_31\n" - "_0801124C:\n" - "\tcmp r4, 0x14\n" - "\tbeq _08011328_case_14\n" - "\tb _080113EE_break\n" - "_08011252:\n" - "\tcmp r4, 0x44\n" - "\tbgt _08011264\n" - "\tcmp r4, 0x42\n" - "\tblt _0801125C\n" - "\tb _080113EE_break\n" - "_0801125C:\n" - "\tcmp r4, 0x33\n" - "\tbne _08011262\n" - "\tb _0801136C_case_30_case_33\n" - "_08011262:\n" - "\tb _080113EE_break\n" - "_08011264:\n" - "\tcmp r4, 0xF3\n" - "\tbne _0801126A\n" - "\tb _080113BA_case_f3\n" - "_0801126A:\n" - "\tcmp r4, 0xF3\n" - "\tbgt _08011276\n" - "\tcmp r4, 0xF0\n" - "\tbge _08011274\n" - "\tb _080113EE_break\n" - "_08011274:\n" - "\tb _080113D4_case_f0_f1_f2_ff\n" - "_08011276:\n" - "\tcmp r4, 0xFF\n" - "\tbne _0801127C\n" - "\tb _080113D4_case_f0_f1_f2_ff\n" - "_0801127C:\n" - "\tb _080113EE_break\n" - "_0801127E_case_00:\n" - "\tldr r1, =gUnknown_03005000\n" - "\tmovs r0, 0x2\n" - "\tstrh r0, [r1, 0x4]\n" - "\tb _080113EE_break\n" - "\t.pool\n" - "_0801128C_case_11:\n" - "\tldr r0, =gUnknown_03004140\n" - "\tldrh r0, [r0, 0x14]\n" - "\tbl sub_80115EC\n" - "\tmovs r5, 0\n" - "\tmovs r0, 0x1\n" - "\tmov r8, r0\n" - "\tldr r1, =gUnknown_03005000\n" - "\tmov r9, r1\n" - "\tldr r3, =0x00000cd5\n" - "\tadd r3, r9\n" - "\tmov r10, r3\n" - "\tmovs r7, 0x7F\n" - "_080112A6:\n" - "\tldr r0, =gUnknown_03004140\n" - "\tldrh r0, [r0, 0x14]\n" - "\tasrs r0, r5\n" - "\tmov r1, r8\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0801130E\n" - "\tldr r0, =gUnknown_03007890\n" - "\tlsls r1, r5, 5\n" - "\tadds r1, 0x14\n" - "\tldr r0, [r0]\n" - "\tadds r0, r1\n" - "\tldrb r0, [r0, 0x10]\n" - "\tadds r4, r7, 0\n" - "\tands r4, r0\n" - "\tbl sub_800F7DC\n" - "\tldrb r1, [r0, 0xA]\n" - "\tadds r0, r7, 0\n" - "\tands r0, r1\n" - "\tcmp r4, r0\n" - "\tbne _08011304\n" - "\tldr r0, =0x00000cd1\n" - "\tadd r0, r9\n" - "\tadds r0, r5, r0\n" - "\tmovs r1, 0\n" - "\tstrb r1, [r0]\n" - "\tmov r3, r10\n" - "\tadds r2, r5, r3\n" - "\tstrb r1, [r2]\n" - "\tmovs r0, 0x20\n" - "\tadds r1, r5, 0\n" - "\tmovs r3, 0x1\n" - "\tbl rfu_setRecvBuffer\n" - "\tb _0801130E\n" - "\t.pool\n" - "_08011304:\n" - "\tmov r0, r8\n" - "\tlsls r0, r5\n" - "\torrs r6, r0\n" - "\tlsls r0, r6, 24\n" - "\tlsrs r6, r0, 24\n" - "_0801130E:\n" - "\tadds r0, r5, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tcmp r5, 0x3\n" - "\tbls _080112A6\n" - "\tcmp r6, 0\n" - "\tbeq _080113EE_break\n" - "\tadds r0, r6, 0\n" - "\tbl rfu_REQ_disconnect\n" - "\tbl rfu_waitREQComplete\n" - "\tb _080113EE_break\n" - "_08011328_case_14:\n" - "\tldr r4, =gUnknown_03005000\n" - "\tldr r1, =0x00000ce7\n" - "\tadds r0, r4, r1\n" - "\tldr r1, =gUnknown_03004140\n" - "\tldrb r2, [r0]\n" - "\tldrb r0, [r1]\n" - "\tcmp r2, r0\n" - "\tbeq _08011342\n" - "\teors r0, r2\n" - "\tbl rfu_REQ_disconnect\n" - "\tbl rfu_waitREQComplete\n" - "_08011342:\n" - "\tmovs r0, 0x11\n" - "\tstrh r0, [r4, 0x4]\n" - "\tb _080113EE_break\n" - "\t.pool\n" - "_08011354_case_31:\n" - "\tldr r0, =gUnknown_03005000\n" - "\tadds r0, 0xF0\n" - "\tb _080113EA\n" - "\t.pool\n" - "_08011360_case_32:\n" - "\tldr r0, =gUnknown_03005000\n" - "\tadds r0, 0xF0\n" - "\tmovs r1, 0x3\n" - "\tb _080113EC\n" - "\t.pool\n" - "_0801136C_case_30_case_33:\n" - "\tldr r1, =gUnknown_03005000\n" - "\tadds r2, r1, 0\n" - "\tadds r2, 0xF0\n" - "\tmovs r0, 0x4\n" - "\tstrb r0, [r2]\n" - "\tldr r3, =0x00000ce2\n" - "\tadds r1, r3\n" - "\tldr r0, =gUnknown_03004140\n" - "\tldrb r2, [r0, 0x14]\n" - "\tldrb r0, [r1]\n" - "\tadds r3, r0, 0\n" - "\tbics r3, r2\n" - "\tadds r2, r3, 0\n" - "\tstrb r2, [r1]\n" - "\tldr r0, =gReceivedRemoteLinkPlayers\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0x1\n" - "\tbne _080113B0\n" - "\tcmp r2, 0\n" - "\tbne _080113AC\n" - "\tadds r0, r4, 0\n" - "\tbl sub_8011170\n" - "\tb _080113B0\n" - "\t.pool\n" - "_080113AC:\n" - "\tbl sub_80111FC\n" - "_080113B0:\n" - "\tmovs r0, 0x2\n" - "\tadds r1, r4, 0\n" - "\tbl sub_8011A64\n" - "\tb _080113EE_break\n" - "_080113BA_case_f3:\n" - "\tmovs r0, 0x1\n" - "\tmovs r1, 0xF3\n" - "\tbl sub_8011A64\n" - "\tmovs r0, 0xF3\n" - "\tbl sub_8011170\n" - "\tldr r0, =gUnknown_03005000\n" - "\tadds r0, 0xEF\n" - "\tb _080113EA\n" - "\t.pool\n" - "_080113D4_case_f0_f1_f2_ff:\n" - "\tadds r0, r4, 0\n" - "\tbl sub_8011170\n" - "\tmovs r0, 0x1\n" - "\tadds r1, r4, 0\n" - "\tbl sub_8011A64\n" - "\tldr r0, =gUnknown_03005000\n" - "\tldr r1, =0x00000cdb\n" - "\tadds r0, r1\n" - "\tldrb r1, [r0]\n" - "_080113EA:\n" - "\tmovs r1, 0x1\n" - "_080113EC:\n" - "\tstrb r1, [r0]\n" - "_080113EE_break:\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool"); + gUnknown_03005000.unk_ce4 = 2; +} + +void sub_8011A64(u8 a0, u16 a1) +{ + gUnknown_03005000.unk_f1 = a0; + gUnknown_03005000.unk_0a = a1; +} + +u8 sub_8011A74(void) +{ + return gUnknown_03005000.unk_f1; +} + +bool32 sub_8011A80(void) +{ + u32 var = sub_8011A74() - 1; + if (var < 2) + return TRUE; + else + return FALSE; +} + +u8 sub_8011A9C(void) +{ + return gUnknown_03005000.unk_ce8; +} + +bool8 Rfu_IsMaster(void) +{ + return gUnknown_03005000.unk_0c; +} + +void RfuVSync(void) +{ + rfu_syncVBlank_(); +} + +void sub_8011AC8(void) +{ + CpuFill32(0, gRecvCmds, sizeof(gRecvCmds)); +} + +void sub_8011AE8(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_8011AFC(void) +{ + s32 i; + + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + ResetPaletteFade(); + SetVBlankCallback(sub_8011AE8); + if (IsWirelessAdapterConnected()) + { + gLinkType = 0x1111; + sub_800B488(); + OpenLink(); + SeedRng(gMain.vblankCounter2); + for (i = 0; i < 4; i++) + gSaveBlock2Ptr->playerTrainerId[i] = Random() % 256; + + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_1D_MAP); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + sub_8011BA4(); + SetMainCallback2(sub_8011BF8); + } +} + +bool32 sub_8011B90(void) +{ + return FuncIsActiveTask(sub_800EB44); +} + +void sub_8011BA4(void) +{ + if (!FuncIsActiveTask(nullsub_89)) + gUnknown_03005000.unk_66 = CreateTask(nullsub_89, 0); +} + +void sub_8011BD0(void) +{ + if (FuncIsActiveTask(nullsub_89) == TRUE) + DestroyTask(gUnknown_03005000.unk_66); +} + +void sub_8011BF8(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_8011C10(u32 a0) +{ + gUnknown_03005000.unk_0c = 1; + sub_8010F48(); + sub_800BF4C(sub_801120C, NULL); + gUnknown_02022B2C = gUnknown_082ED608; + gUnknown_02022B2C.unk_02 = gUnknown_082ED620[a0 - 1]; + sub_800EE78(); +} + +void sub_8011C5C(void) +{ + gUnknown_03005000.unk_0c = 0; + sub_8010F48(); + sub_800BF4C(sub_8011404, sub_800ED34); + sub_800EF00(); +} + +void sub_8011C84(void) +{ + gUnknown_03005000.unk_0c = 2; + sub_8010F48(); + sub_800BF4C(sub_8011674, NULL); + gUnknown_02022B2C = gUnknown_082ED608; + gUnknown_02022B2C.unk_11 = 0; + gUnknown_02022B2C.unk_12 = 0x258; + gUnknown_03005000.unk_67 = CreateTask(sub_800EB44, 1); +} + +static u16 ReadU16(const void *ptr) +{ + const u8 *ptr_ = ptr; + return (ptr_[1] << 8) | (ptr_[0]); +} + +u8 sub_8011CE4(const u8 *a0, u16 a1) +{ + u8 i; + u8 ret = 0xFF; + + for (i = 0; i < 4; i++) + { + u16 trainerId = ReadU16(gUnknown_03007890->unk_14[i].unk_06.unk_00.playerTrainerId); + if (sub_8010454(gUnknown_03007890->unk_14[i].unk_04) + && !StringCompare(a0, gUnknown_03007890->unk_14[i].playerName) + && a1 == trainerId) + { + ret = i; + if (gUnknown_03007890->unk_14[i].unk_02 != 0xFF) + break; + } + } + + return ret; +} + +void sub_8011D6C(u32 a0) +{ + rfu_REQ_disconnect(a0); + rfu_waitREQComplete(); + gUnknown_03005000.unk_ce2 &= ~(a0); + rfu_clearSlot(1, gUnknown_03005000.unk_cda); + rfu_UNI_setSendData(gUnknown_03005000.unk_ce2, gUnknown_03005000.unk_c87, 70); + gUnknown_03005000.unk_cda = sub_800E87C(gUnknown_03005000.unk_ce2); +} + +void sub_8011DC0(const u8 *ptr, u16 a1) +{ + u8 var = sub_8011CE4(ptr, a1); + if (var != 0xFF) + sub_8011D6C(1 << var); +} + +void sub_8011DE0(u32 a0) +{ + if (a0 != 0) + { + s32 i; + u8 var = 0; + + for (i = 0; i < 4; i++) + { + if (gUnknown_03005000.unk_cde[i] == a0 && (gUnknown_03005000.unk_ce2 >> i) & 1) + var |= 1 << i; + } + if (var) + sub_8011E94(var, 2); + } +} + +void sub_8011E2C(u8 taskId) +{ + if (gSendCmd[0] == 0 && gUnknown_03005000.unk_ce8 == 0) + { + sub_800FD14(0xED00); + gSendCmd[1] = gTasks[taskId].data[0]; + gSendCmd[2] = gTasks[taskId].data[1]; + gUnknown_03005000.playerCount -= gUnknown_082ED695[gTasks[taskId].data[0]]; + gSendCmd[3] = gUnknown_03005000.playerCount; + DestroyTask(taskId); + } +} + +void sub_8011E94(u32 a0, u32 a1) +{ + u8 taskId = FindTaskIdByFunc(sub_8011E2C); + if (taskId == 0xFF) + { + taskId = CreateTask(sub_8011E2C, 5); + gTasks[taskId].data[0] = a0; + } + else + { + gTasks[taskId].data[0] |= a0; + } + + gTasks[taskId].data[1] = a1; +} + +void sub_8011EF4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + if (sub_800EE94()) + { + u8 id = sub_8011CE4((u8*)data, ReadU16(&data[8])); + if (id != 0xFF) + { + if (gUnknown_03007890->unk_14[id].unk_02 != 0xFF) + { + gUnknown_03005000.unk_c3d = id; + if (sub_800EEBC()) + DestroyTask(taskId); + } + else if (sub_800F7DC()->unk_0a_0 == 0x15 || sub_800F7DC()->unk_0a_0 == 0x16) + { + data[15]++; + } + else + { + sub_8011A64(2, 0x7000); + DestroyTask(taskId); + } + } + else + { + data[15]++; + gUnknown_03005000.unk_c3d = id; + } + } + else + { + data[15]++; + } + + if (data[15] > 240) + { + sub_8011A64(2, 0x7000); + DestroyTask(taskId); + } +} + +void sub_8011FC8(const u8 *src, u16 trainerId) +{ + u8 taskId; + s16 *data; + + gUnknown_03005000.unk_f1 = 0; + taskId = CreateTask(sub_8011EF4, 3); + data = gTasks[taskId].data; + StringCopy((u8*)(data), src); + data[8] = trainerId; +} + +bool32 sub_801200C(s16 a1, struct UnkLinkRfuStruct_02022B14 *structPtr) +{ + if (sub_800F7DC()->unk_0a_0 == 0x45) + { + if (structPtr->unk_0a_0 != 0x45) + return TRUE; + } + else if (structPtr->unk_0a_0 != 0x40) + { + return TRUE; + } + else if (a1 == 0x44) + { + struct UnkLinkRfuStruct_02022B14 *structPtr2 = &gUnknown_03005000.unk_10A; + if (structPtr2->species == SPECIES_EGG) + { + if (structPtr->species == structPtr2->species) + return FALSE; + else + return TRUE; + } + else if (structPtr->species != structPtr2->species + || structPtr->unk_0b_1 != structPtr2->unk_0b_1 + || structPtr->type != structPtr2->type) + { + return TRUE; + } + } + + return FALSE; +} + +void sub_801209C(u8 taskId) +{ + if (gUnknown_03005000.unk_f1 == 4) + DestroyTask(taskId); + + if (++gTasks[taskId].data[0] > 300) + { + sub_8011A64(2, 0x7000); + DestroyTask(taskId); + } + + if (gUnknown_03005000.unk_ccd != 0 && gUnknown_03004140.unk_06 == 0) + { + u16 trainerId = ReadU16(gUnknown_03005000.unk_10A.unk_00.playerTrainerId); + u8 id = sub_8011CE4(gUnknown_03005000.playerName, trainerId); + if (id != 0xFF) + { + if (!sub_801200C(gTasks[taskId].data[1], &gUnknown_03007890->unk_14[id].unk_06)) + { + if (gUnknown_03007890->unk_14[id].unk_02 != 0xFF && !sub_800C12C(gUnknown_03007890->unk_14[id].unk_00, 0x5A)) + { + gUnknown_03005000.unk_04 = 0xA; + DestroyTask(taskId); + } + } + else + { + sub_8011A64(2, 0x7000); + DestroyTask(taskId); + } + } + } +} + +void sub_8012188(const u8 *name, struct UnkLinkRfuStruct_02022B14 *structPtr, u8 a2) +{ + u8 taskId, taskId2; + + gUnknown_03005000.unk_ccf = 0; + gUnknown_03005000.unk_f1 = 0; + StringCopy(gUnknown_03005000.playerName, name); + memcpy(&gUnknown_03005000.unk_10A, structPtr, 0xD); + sub_800D658(); + taskId = CreateTask(sub_801209C, 2); + gTasks[taskId].data[1] = a2; + taskId2 = FindTaskIdByFunc(sub_800EB44); + if (a2 == 0x45) + { + if (taskId2 != 0xFF) + gTasks[taskId2].data[7] = 1; + } + else + { + if (taskId2 != 0xFF) + gTasks[taskId2].data[7] = 0; + } +} + +bool8 sub_8012224(void) +{ + if (gUnknown_03005000.unk_f0 == 1) + return TRUE; + else + return FALSE; +} + +bool32 sub_8012240(void) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + if ((gUnknown_03004140.unk_00 >> i) & 1 && gUnknown_03005000.unk_cd1[i] == 0) + return FALSE; + } + + return TRUE; +} + +void sub_801227C(void) +{ + s32 i; + + for (i = 0; i < 20; i++) + nullsub_5(gUnknown_082ED82C, 0, i); +} + +void sub_801229C(void) +{ + s32 i, j; + + nullsub_13(GetBlockReceivedStatus(), 0x1C, 0x13, 2); + nullsub_13(gUnknown_03007890->unk_02, 0x14, 1, 1); + nullsub_13(gUnknown_03007890->unk_03, 0x17, 1, 1); + if (gUnknown_03005000.unk_0c == 1) + { + for (i = 0; i < 4; i++) + { + if ((gUnknown_03007890->unk_07 >> i) & 1) + { + nullsub_13(gUnknown_03007890->unk_14[i].unk_04, 1, i + 3, 4); + nullsub_5((void*) &gUnknown_03007890->unk_14[i].unk_06, 6, i + 3); + nullsub_5(gUnknown_03007890->unk_14[i].playerName, 0x16, i + 3); + } + } + for (i = 0; i < 4; i++) + { + for (j = 0; j < 14; j++) + { + nullsub_13(gUnknown_03005000.unk_14[i][j], j * 2, i + 11, 2); + } + } + nullsub_5(gUnknown_082ED868, 1, 0xF); + } + else if (gUnknown_03007890->unk_02 != 0 && gUnknown_03007890->unk_07 != 0) + { + for (i = 0; i < 4; i++) + { + nullsub_13(0, 1, i + 3, 4); + nullsub_5(gUnknown_082ED84B, 6, i + 3); + nullsub_5(gUnknown_082ED85B, 0x16, i + 3); + } + nullsub_13(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].unk_04, 1, 3, 4); + nullsub_5((void*) &gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].unk_06, 6, 3); + nullsub_5(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].playerName, 0x16, 3); + } + else + { + for (i = 0; i < gUnknown_03007890->unk_08; i++) + { + if (gUnknown_03007890->unk_14[i].unk_02 != 0xFF) + { + nullsub_13(gUnknown_03007890->unk_14[i].unk_04, 1, i + 3, 4); + nullsub_13(gUnknown_03007890->unk_14[i].unk_00, 6, i + 3, 4); + nullsub_5(gUnknown_03007890->unk_14[i].playerName, 0x16, i + 3); + } + } + for (; i < 4; i++) + { + nullsub_13(0, 1, i + 3, 4); + nullsub_5(gUnknown_082ED84B, 6, i + 3); + nullsub_5(gUnknown_082ED85B, 0x16, i + 3); + } + } +} + +u32 sub_80124C0(void) +{ + return gUnknown_03005000.unk_9e8.unk_232; +} + +u32 sub_80124D4(void) +{ + return gUnknown_03005000.unk_124.unk_8c2; } -#endif diff --git a/src/list_menu.c b/src/list_menu.c index 6907a75a3..caf4b798d 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -8,7 +8,7 @@ #include "trig.h" #include "decompress.h" #include "palette.h" -#include "malloc.h" +#include "alloc.h" #include "strings.h" #include "sound.h" #include "constants/songs.h" @@ -953,52 +953,52 @@ void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value) case 0: case 1: data->field_4 = (void*)(value); - break; + break; case 2: data->field_C = value; - break; + break; case 3: data->field_E = value; - break; + break; case 4: data->field_10 = value; - break; + break; case 5: data->field_11 = value; - break; + break; case 6: data->field_12 = value; - break; + break; case 7: data->field_13 = value; - break; + break; case 8: data->field_14_0 = value; - break; + break; case 9: data->field_14_1 = value; - break; + break; case 10: data->field_15_0 = value; - break; + break; case 11: data->field_15_1 = value; - break; + break; case 12: data->field_16_0 = value; - break; + break; case 13: data->field_16_1 = value; - break; + break; case 14: data->field_16_2 = value; - break; + break; case 15: data->field_17_0 = value; - break; + break; case 16: data->field_17_1 = value; - break; + break; } } diff --git a/src/load_save.c b/src/load_save.c index 960a98981..8ecf89959 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -4,7 +4,7 @@ #include "main.h" #include "pokemon.h" #include "random.h" -#include "malloc.h" +#include "alloc.h" #include "item.h" #include "overworld.h" #include "decoration_inventory.h" diff --git a/src/mail.c b/src/mail.c index 513900746..7b096ed00 100644 --- a/src/mail.c +++ b/src/mail.c @@ -17,7 +17,7 @@ #include "bg.h" #include "pokemon_icon.h" #include "constants/species.h" -#include "malloc.h" +#include "alloc.h" #include "easy_chat.h" extern const u16 gMailPalette_Orange[]; diff --git a/src/main.c b/src/main.c index 4c71ed1f9..c4962286c 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,6 @@ #include "global.h" #include "crt0.h" -#include "malloc.h" +#include "alloc.h" #include "link.h" #include "link_rfu.h" #include "librfu.h" @@ -69,7 +69,7 @@ bool8 gSoftResetDisabled; IntrFunc gIntrTable[INTR_COUNT]; u8 gLinkVSyncDisabled; u32 IntrMain_Buffer[0x200]; -u8 gPcmDmaCounter; +s8 gPcmDmaCounter; static EWRAM_DATA u16 gTrainerId = 0; diff --git a/src/main_menu.c b/src/main_menu.c index a8383cd0c..e11f783eb 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -335,25 +335,25 @@ static const struct MenuAction sMenuActions_Gender[] = { static const u8 *const gMalePresetNames[] = { gText_DefaultNameStu, - gText_DefaultNameMilton, - gText_DefaultNameTom, - gText_DefaultNameKenny, - gText_DefaultNameReid, - gText_DefaultNameJude, - gText_DefaultNameJaxson, - gText_DefaultNameEaston, - gText_DefaultNameWalker, - gText_DefaultNameTeru, - gText_DefaultNameJohnny, - gText_DefaultNameBrett, - gText_DefaultNameSeth, - gText_DefaultNameTerry, - gText_DefaultNameCasey, - gText_DefaultNameDarren, - gText_DefaultNameLandon, - gText_DefaultNameCollin, - gText_DefaultNameStanley, - gText_DefaultNameQuincy + gText_DefaultNameMilton, + gText_DefaultNameTom, + gText_DefaultNameKenny, + gText_DefaultNameReid, + gText_DefaultNameJude, + gText_DefaultNameJaxson, + gText_DefaultNameEaston, + gText_DefaultNameWalker, + gText_DefaultNameTeru, + gText_DefaultNameJohnny, + gText_DefaultNameBrett, + gText_DefaultNameSeth, + gText_DefaultNameTerry, + gText_DefaultNameCasey, + gText_DefaultNameDarren, + gText_DefaultNameLandon, + gText_DefaultNameCollin, + gText_DefaultNameStanley, + gText_DefaultNameQuincy }; static const u8 *const gFemalePresetNames[] = { @@ -1772,12 +1772,12 @@ static void AddBirchSpeechObjects(u8 taskId) gSprites[lotadSpriteId].oam.priority = 0; gSprites[lotadSpriteId].invisible = TRUE; gTasks[taskId].tLotadSpriteId = lotadSpriteId; - brendanSpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN), 120, 60, 0, &gDecompressionBuffer[0]); + brendanSpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_BRENDAN), 120, 60, 0, &gDecompressionBuffer[0]); gSprites[brendanSpriteId].callback = nullsub_11; gSprites[brendanSpriteId].invisible = TRUE; gSprites[brendanSpriteId].oam.priority = 0; gTasks[taskId].tBrendanSpriteId = brendanSpriteId; - maySpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_MAY), 120, 60, 0, &gDecompressionBuffer[0x800]); + maySpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_MAY), 120, 60, 0, &gDecompressionBuffer[0x800]); gSprites[maySpriteId].callback = nullsub_11; gSprites[maySpriteId].invisible = TRUE; gSprites[maySpriteId].oam.priority = 0; diff --git a/src/malloc.c b/src/malloc.c deleted file mode 100644 index 1d64351c3..000000000 --- a/src/malloc.c +++ /dev/null @@ -1,210 +0,0 @@ -#include "global.h" - -static void *sHeapStart; -static u32 sHeapSize; -static u32 malloc_c_unused_0300000c; // needed to align dma3_manager.o(.bss) - -#define MALLOC_SYSTEM_ID 0xA3A3 - -struct MemBlock { - // Whether this block is currently allocated. - bool16 flag; - - // Magic number used for error checking. Should equal MALLOC_SYSTEM_ID. - u16 magic; - - // Size of the block (not including this header struct). - u32 size; - - // Previous block pointer. Equals sHeapStart if this is the first block. - struct MemBlock *prev; - - // Next block pointer. Equals sHeapStart if this is the last block. - struct MemBlock *next; - - // Data in the memory block. (Arrays of length 0 are a GNU extension.) - u8 data[0]; -}; - -void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size) -{ - struct MemBlock *header = (struct MemBlock *)block; - - header->flag = FALSE; - header->magic = MALLOC_SYSTEM_ID; - header->size = size; - header->prev = prev; - header->next = next; -} - -void PutFirstMemBlockHeader(void *block, u32 size) -{ - PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - sizeof(struct MemBlock)); -} - -void *AllocInternal(void *heapStart, u32 size) -{ - struct MemBlock *pos = (struct MemBlock *)heapStart; - struct MemBlock *head = pos; - struct MemBlock *splitBlock; - u32 foundBlockSize; - - // Alignment - if (size & 3) - size = 4 * ((size / 4) + 1); - - for (;;) { - // Loop through the blocks looking for unused block that's big enough. - - if (!pos->flag) { - foundBlockSize = pos->size; - - if (foundBlockSize >= size) { - if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) { - // The block isn't much bigger than the requested size, - // so just use it. - pos->flag = TRUE; - } else { - // The block is significantly bigger than the requested - // size, so split the rest into a separate block. - foundBlockSize -= sizeof(struct MemBlock); - foundBlockSize -= size; - - splitBlock = (struct MemBlock *)(pos->data + size); - - pos->flag = TRUE; - pos->size = size; - - PutMemBlockHeader(splitBlock, pos, pos->next, foundBlockSize); - - pos->next = splitBlock; - - if (splitBlock->next != head) - splitBlock->next->prev = splitBlock; - } - - return pos->data; - } - } - - if (pos->next == head) - return NULL; - - pos = pos->next; - } -} - -void FreeInternal(void *heapStart, void *pointer) -{ - if (pointer) { - struct MemBlock *head = (struct MemBlock *)heapStart; - struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock)); - block->flag = FALSE; - - // If the freed block isn't the last one, merge with the next block - // if it's not in use. - if (block->next != head) { - if (!block->next->flag) { - block->size += sizeof(struct MemBlock) + block->next->size; - block->next->magic = 0; - block->next = block->next->next; - if (block->next != head) - block->next->prev = block; - } - } - - // If the freed block isn't the first one, merge with the previous block - // if it's not in use. - if (block != head) { - if (!block->prev->flag) { - block->prev->next = block->next; - - if (block->next != head) - block->next->prev = block->prev; - - block->magic = 0; - block->prev->size += sizeof(struct MemBlock) + block->size; - } - } - } -} - -void *AllocZeroedInternal(void *heapStart, u32 size) -{ - void *mem = AllocInternal(heapStart, size); - - if (mem != NULL) { - if (size & 3) - size = 4 * ((size / 4) + 1); - - CpuFill32(0, mem, size); - } - - return mem; -} - -bool32 CheckMemBlockInternal(void *heapStart, void *pointer) -{ - struct MemBlock *head = (struct MemBlock *)heapStart; - struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock)); - - if (block->magic != MALLOC_SYSTEM_ID) - return FALSE; - - if (block->next->magic != MALLOC_SYSTEM_ID) - return FALSE; - - if (block->next != head && block->next->prev != block) - return FALSE; - - if (block->prev->magic != MALLOC_SYSTEM_ID) - return FALSE; - - if (block->prev != head && block->prev->next != block) - return FALSE; - - if (block->next != head && block->next != (struct MemBlock *)(block->data + block->size)) - return FALSE; - - return TRUE; -} - -void InitHeap(void *heapStart, u32 heapSize) -{ - sHeapStart = heapStart; - sHeapSize = heapSize; - PutFirstMemBlockHeader(heapStart, heapSize); -} - -void *Alloc(u32 size) -{ - AllocInternal(sHeapStart, size); -} - -void *AllocZeroed(u32 size) -{ - AllocZeroedInternal(sHeapStart, size); -} - -void Free(void *pointer) -{ - FreeInternal(sHeapStart, pointer); -} - -bool32 CheckMemBlock(void *pointer) -{ - return CheckMemBlockInternal(sHeapStart, pointer); -} - -bool32 CheckHeap() -{ - struct MemBlock *pos = (struct MemBlock *)sHeapStart; - - do { - if (!CheckMemBlockInternal(sHeapStart, pos->data)) - return FALSE; - pos = pos->next; - } while (pos != (struct MemBlock *)sHeapStart); - - return TRUE; -} diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 110ec068e..930f1f35b 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -62,14 +62,14 @@ static const u8 * const sGiddyAdjectives[] = { }; static const u8 * const sGiddyQuestions[] = { - gUnknown_08294313, - gUnknown_08294359, - gUnknown_08294398, - gUnknown_082943DA, - gUnknown_0829441C, - gUnknown_08294460, - gUnknown_082944A0, - gUnknown_082944D5 + gMauvilleManText_ISoWantToGoOnAVacation, + gMauvilleManText_IBoughtCrayonsWith120Colors, + gMauvilleManText_WouldntItBeNiceIfWeCouldFloat, + gMauvilleManText_WhenYouWriteOnASandyBeach, + gMauvilleManText_WhatsTheBottomOfTheSeaLike, + gMauvilleManText_WhenYouSeeTheSettingSunDoesIt, + gMauvilleManText_LyingBackInTheGreenGrass, + gMauvilleManText_SecretBasesAreSoWonderful }; static void SetupBard(void) diff --git a/src/menu.c b/src/menu.c index dde0e0a1a..61096138a 100644 --- a/src/menu.c +++ b/src/menu.c @@ -7,7 +7,7 @@ #include "main.h" #include "sound.h" #include "menu_helpers.h" -#include "malloc.h" +#include "alloc.h" #include "task.h" #include "dma3.h" #include "string_util.h" @@ -2096,253 +2096,253 @@ void sub_819A080(struct UnkStruct_819A080 *a0, struct UnkStruct_819A080 *a1, u16 NAKED void sub_819A080(struct UnkStruct_819A080 *a0, struct UnkStruct_819A080 *a1, u16 a2, u16 a3, u16 a4, u16 a5, u16 a6, u16 a7) { - asm("push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, #0x28\n\ - str r0, [sp]\n\ - str r1, [sp, #0x4]\n\ - ldr r0, [sp, #0x48]\n\ - ldr r4, [sp, #0x4C]\n\ - ldr r1, [sp, #0x50]\n\ - ldr r5, [sp, #0x54]\n\ - lsl r2, #16\n\ - lsr r2, #16\n\ - str r2, [sp, #0x8]\n\ - lsl r3, #16\n\ - lsr r3, #16\n\ - lsl r0, #16\n\ - lsr r0, #16\n\ - str r0, [sp, #0xC]\n\ - lsl r4, #16\n\ - lsr r4, #16\n\ - lsl r1, #16\n\ - lsr r1, #16\n\ - lsl r5, #16\n\ - lsr r5, #16\n\ - ldr r2, [sp, #0x4]\n\ - ldrh r0, [r2, #0x4]\n\ - ldr r2, [sp, #0xC]\n\ - sub r0, r2\n\ - ldr r2, [sp, #0x8]\n\ - add r2, r1, r2\n\ - str r2, [sp, #0x10]\n\ - cmp r0, r1\n\ - bge _0819A0CC\n\ - ldr r1, [sp, #0x8]\n\ - add r0, r1\n\ - str r0, [sp, #0x10]\n\ + asm("push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, #0x28\n\ + str r0, [sp]\n\ + str r1, [sp, #0x4]\n\ + ldr r0, [sp, #0x48]\n\ + ldr r4, [sp, #0x4C]\n\ + ldr r1, [sp, #0x50]\n\ + ldr r5, [sp, #0x54]\n\ + lsl r2, #16\n\ + lsr r2, #16\n\ + str r2, [sp, #0x8]\n\ + lsl r3, #16\n\ + lsr r3, #16\n\ + lsl r0, #16\n\ + lsr r0, #16\n\ + str r0, [sp, #0xC]\n\ + lsl r4, #16\n\ + lsr r4, #16\n\ + lsl r1, #16\n\ + lsr r1, #16\n\ + lsl r5, #16\n\ + lsr r5, #16\n\ + ldr r2, [sp, #0x4]\n\ + ldrh r0, [r2, #0x4]\n\ + ldr r2, [sp, #0xC]\n\ + sub r0, r2\n\ + ldr r2, [sp, #0x8]\n\ + add r2, r1, r2\n\ + str r2, [sp, #0x10]\n\ + cmp r0, r1\n\ + bge _0819A0CC\n\ + ldr r1, [sp, #0x8]\n\ + add r0, r1\n\ + str r0, [sp, #0x10]\n\ _0819A0CC:\n\ - ldr r2, [sp, #0x4]\n\ - ldrh r1, [r2, #0x6]\n\ - sub r0, r1, r4\n\ - cmp r0, r5\n\ - bge _0819A0DE\n\ - add r0, r3, r1\n\ - sub r0, r4\n\ - str r0, [sp, #0x14]\n\ - b _0819A0E2\n\ + ldr r2, [sp, #0x4]\n\ + ldrh r1, [r2, #0x6]\n\ + sub r0, r1, r4\n\ + cmp r0, r5\n\ + bge _0819A0DE\n\ + add r0, r3, r1\n\ + sub r0, r4\n\ + str r0, [sp, #0x14]\n\ + b _0819A0E2\n\ _0819A0DE:\n\ - add r5, r3, r5\n\ - str r5, [sp, #0x14]\n\ + add r5, r3, r5\n\ + str r5, [sp, #0x14]\n\ _0819A0E2:\n\ - ldr r0, [sp]\n\ - ldrh r1, [r0, #0x4]\n\ - mov r2, #0x7\n\ - add r0, r1, #0\n\ - and r0, r2\n\ - add r1, r0\n\ - asr r1, #3\n\ - str r1, [sp, #0x18]\n\ - ldr r0, [sp, #0x4]\n\ - ldrh r1, [r0, #0x4]\n\ - add r0, r1, #0\n\ - and r0, r2\n\ - add r1, r0\n\ - asr r1, #3\n\ - str r1, [sp, #0x1C]\n\ - mov r12, r3\n\ - mov r8, r4\n\ - ldr r1, [sp, #0x14]\n\ - cmp r12, r1\n\ - blt _0819A10C\n\ - b _0819A24A\n\ + ldr r0, [sp]\n\ + ldrh r1, [r0, #0x4]\n\ + mov r2, #0x7\n\ + add r0, r1, #0\n\ + and r0, r2\n\ + add r1, r0\n\ + asr r1, #3\n\ + str r1, [sp, #0x18]\n\ + ldr r0, [sp, #0x4]\n\ + ldrh r1, [r0, #0x4]\n\ + add r0, r1, #0\n\ + and r0, r2\n\ + add r1, r0\n\ + asr r1, #3\n\ + str r1, [sp, #0x1C]\n\ + mov r12, r3\n\ + mov r8, r4\n\ + ldr r1, [sp, #0x14]\n\ + cmp r12, r1\n\ + blt _0819A10C\n\ + b _0819A24A\n\ _0819A10C:\n\ - ldr r5, [sp, #0x8]\n\ - ldr r6, [sp, #0xC]\n\ - mov r2, r12\n\ - add r2, #0x1\n\ - str r2, [sp, #0x20]\n\ - mov r0, r8\n\ - add r0, #0x1\n\ - str r0, [sp, #0x24]\n\ - ldr r1, [sp, #0x10]\n\ - cmp r5, r1\n\ - blt _0819A124\n\ - b _0819A23A\n\ + ldr r5, [sp, #0x8]\n\ + ldr r6, [sp, #0xC]\n\ + mov r2, r12\n\ + add r2, #0x1\n\ + str r2, [sp, #0x20]\n\ + mov r0, r8\n\ + add r0, #0x1\n\ + str r0, [sp, #0x24]\n\ + ldr r1, [sp, #0x10]\n\ + cmp r5, r1\n\ + blt _0819A124\n\ + b _0819A23A\n\ _0819A124:\n\ - mov r7, #0x1\n\ - mov r2, #0xF0\n\ - mov r10, r2\n\ - mov r0, #0xF\n\ - mov r9, r0\n\ + mov r7, #0x1\n\ + mov r2, #0xF0\n\ + mov r10, r2\n\ + mov r0, #0xF\n\ + mov r9, r0\n\ _0819A12E:\n\ - asr r0, r5, #1\n\ - mov r1, #0x3\n\ - and r0, r1\n\ - ldr r2, [sp]\n\ - ldr r1, [r2]\n\ - add r1, r0\n\ - asr r0, r5, #3\n\ - lsl r0, #5\n\ - add r1, r0\n\ - mov r2, r12\n\ - asr r0, r2, #3\n\ - ldr r2, [sp, #0x18]\n\ - mul r0, r2\n\ - lsl r0, #5\n\ - add r1, r0\n\ - mov r2, r12\n\ - lsl r0, r2, #29\n\ - lsr r0, #27\n\ - add r3, r1, r0\n\ - asr r0, r6, #1\n\ - mov r1, #0x3\n\ - and r0, r1\n\ - ldr r2, [sp, #0x4]\n\ - ldr r1, [r2]\n\ - add r1, r0\n\ - asr r0, r6, #3\n\ - lsl r0, #5\n\ - add r1, r0\n\ - mov r2, r8\n\ - asr r0, r2, #3\n\ - ldr r2, [sp, #0x1C]\n\ - mul r0, r2\n\ - lsl r0, #5\n\ - add r1, r0\n\ - mov r2, r8\n\ - lsl r0, r2, #29\n\ - lsr r0, #27\n\ - add r4, r1, r0\n\ - add r0, r4, #0\n\ - and r0, r7\n\ - cmp r0, #0\n\ - beq _0819A1DA\n\ - sub r4, #0x1\n\ - add r0, r6, #0\n\ - and r0, r7\n\ - cmp r0, #0\n\ - beq _0819A1B2\n\ - ldrh r0, [r4]\n\ - ldr r2, =0x00000fff\n\ - and r2, r0\n\ - add r0, r5, #0\n\ - and r0, r7\n\ - cmp r0, #0\n\ - beq _0819A1A8\n\ - ldrb r1, [r3]\n\ - mov r0, r10\n\ - and r0, r1\n\ - lsl r0, #8\n\ - b _0819A22A\n\ - .pool\n\ + asr r0, r5, #1\n\ + mov r1, #0x3\n\ + and r0, r1\n\ + ldr r2, [sp]\n\ + ldr r1, [r2]\n\ + add r1, r0\n\ + asr r0, r5, #3\n\ + lsl r0, #5\n\ + add r1, r0\n\ + mov r2, r12\n\ + asr r0, r2, #3\n\ + ldr r2, [sp, #0x18]\n\ + mul r0, r2\n\ + lsl r0, #5\n\ + add r1, r0\n\ + mov r2, r12\n\ + lsl r0, r2, #29\n\ + lsr r0, #27\n\ + add r3, r1, r0\n\ + asr r0, r6, #1\n\ + mov r1, #0x3\n\ + and r0, r1\n\ + ldr r2, [sp, #0x4]\n\ + ldr r1, [r2]\n\ + add r1, r0\n\ + asr r0, r6, #3\n\ + lsl r0, #5\n\ + add r1, r0\n\ + mov r2, r8\n\ + asr r0, r2, #3\n\ + ldr r2, [sp, #0x1C]\n\ + mul r0, r2\n\ + lsl r0, #5\n\ + add r1, r0\n\ + mov r2, r8\n\ + lsl r0, r2, #29\n\ + lsr r0, #27\n\ + add r4, r1, r0\n\ + add r0, r4, #0\n\ + and r0, r7\n\ + cmp r0, #0\n\ + beq _0819A1DA\n\ + sub r4, #0x1\n\ + add r0, r6, #0\n\ + and r0, r7\n\ + cmp r0, #0\n\ + beq _0819A1B2\n\ + ldrh r0, [r4]\n\ + ldr r2, =0x00000fff\n\ + and r2, r0\n\ + add r0, r5, #0\n\ + and r0, r7\n\ + cmp r0, #0\n\ + beq _0819A1A8\n\ + ldrb r1, [r3]\n\ + mov r0, r10\n\ + and r0, r1\n\ + lsl r0, #8\n\ + b _0819A22A\n\ + .pool\n\ _0819A1A8:\n\ - ldrb r1, [r3]\n\ - mov r0, r9\n\ - and r0, r1\n\ - lsl r0, #12\n\ - b _0819A22A\n\ + ldrb r1, [r3]\n\ + mov r0, r9\n\ + and r0, r1\n\ + lsl r0, #12\n\ + b _0819A22A\n\ _0819A1B2:\n\ - ldrh r0, [r4]\n\ - ldr r2, =0x0000f0ff\n\ - and r2, r0\n\ - add r0, r5, #0\n\ - and r0, r7\n\ - cmp r0, #0\n\ - beq _0819A1D0\n\ - ldrb r1, [r3]\n\ - mov r0, r10\n\ - and r0, r1\n\ - lsl r0, #4\n\ - b _0819A22A\n\ - .pool\n\ + ldrh r0, [r4]\n\ + ldr r2, =0x0000f0ff\n\ + and r2, r0\n\ + add r0, r5, #0\n\ + and r0, r7\n\ + cmp r0, #0\n\ + beq _0819A1D0\n\ + ldrb r1, [r3]\n\ + mov r0, r10\n\ + and r0, r1\n\ + lsl r0, #4\n\ + b _0819A22A\n\ + .pool\n\ _0819A1D0:\n\ - ldrb r1, [r3]\n\ - mov r0, r9\n\ - and r0, r1\n\ - lsl r0, #8\n\ - b _0819A22A\n\ + ldrb r1, [r3]\n\ + mov r0, r9\n\ + and r0, r1\n\ + lsl r0, #8\n\ + b _0819A22A\n\ _0819A1DA:\n\ - add r0, r6, #0\n\ - and r0, r7\n\ - cmp r0, #0\n\ - beq _0819A206\n\ - ldrh r0, [r4]\n\ - ldr r2, =0x0000ff0f\n\ - and r2, r0\n\ - add r0, r5, #0\n\ - and r0, r7\n\ - cmp r0, #0\n\ - beq _0819A1FC\n\ - ldrb r1, [r3]\n\ - mov r0, r10\n\ - b _0819A228\n\ - .pool\n\ + add r0, r6, #0\n\ + and r0, r7\n\ + cmp r0, #0\n\ + beq _0819A206\n\ + ldrh r0, [r4]\n\ + ldr r2, =0x0000ff0f\n\ + and r2, r0\n\ + add r0, r5, #0\n\ + and r0, r7\n\ + cmp r0, #0\n\ + beq _0819A1FC\n\ + ldrb r1, [r3]\n\ + mov r0, r10\n\ + b _0819A228\n\ + .pool\n\ _0819A1FC:\n\ - ldrb r1, [r3]\n\ - mov r0, r9\n\ - and r0, r1\n\ - lsl r0, #4\n\ - b _0819A22A\n\ + ldrb r1, [r3]\n\ + mov r0, r9\n\ + and r0, r1\n\ + lsl r0, #4\n\ + b _0819A22A\n\ _0819A206:\n\ - ldrh r0, [r4]\n\ - ldr r2, =0x0000fff0\n\ - and r2, r0\n\ - add r0, r5, #0\n\ - and r0, r7\n\ - cmp r0, #0\n\ - beq _0819A224\n\ - ldrb r1, [r3]\n\ - mov r0, r10\n\ - and r0, r1\n\ - lsr r0, #4\n\ - b _0819A22A\n\ - .pool\n\ + ldrh r0, [r4]\n\ + ldr r2, =0x0000fff0\n\ + and r2, r0\n\ + add r0, r5, #0\n\ + and r0, r7\n\ + cmp r0, #0\n\ + beq _0819A224\n\ + ldrb r1, [r3]\n\ + mov r0, r10\n\ + and r0, r1\n\ + lsr r0, #4\n\ + b _0819A22A\n\ + .pool\n\ _0819A224:\n\ - ldrb r1, [r3]\n\ - mov r0, r9\n\ + ldrb r1, [r3]\n\ + mov r0, r9\n\ _0819A228:\n\ - and r0, r1\n\ + and r0, r1\n\ _0819A22A:\n\ - orr r2, r0\n\ - strh r2, [r4]\n\ - add r5, #0x1\n\ - add r6, #0x1\n\ - ldr r0, [sp, #0x10]\n\ - cmp r5, r0\n\ - bge _0819A23A\n\ - b _0819A12E\n\ + orr r2, r0\n\ + strh r2, [r4]\n\ + add r5, #0x1\n\ + add r6, #0x1\n\ + ldr r0, [sp, #0x10]\n\ + cmp r5, r0\n\ + bge _0819A23A\n\ + b _0819A12E\n\ _0819A23A:\n\ - ldr r1, [sp, #0x20]\n\ - mov r12, r1\n\ - ldr r2, [sp, #0x24]\n\ - mov r8, r2\n\ - ldr r0, [sp, #0x14]\n\ - cmp r12, r0\n\ - bge _0819A24A\n\ - b _0819A10C\n\ + ldr r1, [sp, #0x20]\n\ + mov r12, r1\n\ + ldr r2, [sp, #0x24]\n\ + mov r8, r2\n\ + ldr r0, [sp, #0x14]\n\ + cmp r12, r0\n\ + bge _0819A24A\n\ + b _0819A10C\n\ _0819A24A:\n\ - add sp, #0x28\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"); + add sp, #0x28\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"); } #endif diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index 2bae89ecf..8a2c3ad91 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -10,246 +10,246 @@ // wonder what the third flag is supposed to do static const u8 sTileBitAttributes[] = { - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NORMAL - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_WALL - TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_TALL_GRASS - TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_LONG_GRASS - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_04 - TILE_ATTRIBUTES(FALSE, FALSE, TRUE), // MB_UNUSED_05 - TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_DEEP_SAND - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHORT_GRASS - TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_UNUSED_CAVE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LONG_GRASS_SOUTH_EDGE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NO_RUNNING - TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_INDOOR_ENCOUNTER - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MOUNTAIN_TOP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BATTLE_PYRAMID_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MOSSDEEP_GYM_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MT_PYRE_HOLE - TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_POND_WATER - TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEMI_DEEP_WATER - TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_DEEP_WATER - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATERFALL - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_SOOTOPOLIS_DEEP_WATER - TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_OCEAN_WATER - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PUDDLE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHALLOW_WATER - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_SOOTOPOLIS_DEEP_WATER - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_NO_SURFACING - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_SOOTOPOLIS_DEEP_WATER_2 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_STAIRS_OUTSIDE_ABANDONED_SHIP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHOAL_CAVE_ENTRANCE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_1D - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_1E - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_1F - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ICE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SAND - TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEAWEED - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UNUSED_23 - TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_ASHGRASS - TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_FOOTPRINTS - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_THIN_ICE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_ICE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_HOT_SPRINGS - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LAVARIDGE_GYM_B1F_WARP - TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEAWEED_NO_SURFACING - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_REFLECTION_UNDER_BRIDGE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_2C - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_2D - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_2E - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_2F - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_EAST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_WEST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTH - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTH - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTHEAST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTHWEST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTHEAST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTHWEST - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_EAST - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_WEST - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_NORTH - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_SOUTH - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_NORTHEAST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_NORTHWEST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_SOUTHEAST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_SOUTHWEST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_EAST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_WEST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_NORTH - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_SOUTH - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_EAST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_WEST - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_NORTH - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_SOUTH - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_TRICK_HOUSE_PUZZLE_8_FLOOR - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UNUSED_49 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UNUSED_4A - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_4B - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_4C - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_4D - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_4E - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_4F - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_EASTWARD_CURRENT - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WESTWARD_CURRENT - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_NORTHWARD_CURRENT - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_SOUTHWARD_CURRENT - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_54 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_55 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_56 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_57 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_58 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_59 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_5A - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_5B - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_5C - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_5D - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_5E - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_5F - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NON_ANIMATED_DOOR - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LADDER - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_EAST_ARROW_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WEST_ARROW_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NORTH_ARROW_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SOUTH_ARROW_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_FLOOR_HOLE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_AQUA_HIDEOUT_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LAVARIDGE_GYM_1F_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ANIMATED_DOOR - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UP_ESCALATOR - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_DOWN_ESCALATOR - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATER_DOOR - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATER_SOUTH_ARROW_WARP - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_DEEP_SOUTH_WARP - TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_UNUSED_6F - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_WARP_OR_BRIDGE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UNUSED_71 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_1 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_2 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_VERTICAL_LOG_1 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_VERTICAL_LOG_2 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_HORIZONTAL_LOG_1 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_HORIZONTAL_LOG_2 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_FORTREE_BRIDGE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_79 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_SOUTH_BRIDGE_1 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_SOUTH_BRIDGE_2 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_3 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_4 - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UNUSED_7E - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE110_BRIDGE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_COUNTER - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_81 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_82 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_PC - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CABLE_BOX_RESULTS_1 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_REGION_MAP - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TELEVISION - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_POKEBLOCK_FEEDER - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_88 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SLOT_MACHINE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_ROULETTE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CLOSED_SOOTOPOLIS_DOOR - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRICK_HOUSE_PUZZLE_DOOR - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_PETALBURG_GYM_DOOR - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_RUNNING_SHOES_INSTRUCTION - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_QUESTIONNAIRE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_RED_CAVE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_RED_CAVE_OPEN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BROWN_CAVE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_YELLOW_CAVE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_LEFT - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_SHRUB - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_SHRUB_OPEN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BLUE_CAVE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_RIGHT - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_9E - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_9F - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BERRY_TREE_SOIL - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A1 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A2 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A3 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A4 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A5 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A6 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A7 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A8 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_A9 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_AA - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_AB - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_AC - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_AD - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_AE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_AF - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_PC - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_REGISTER_PC - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_UNUSED - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BLOCK_DECORATION - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_DECORATION - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_LARGE_MAT_EDGE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_B6 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_NORTH_WALL - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_BALLOON - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_IMPASSABLE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_GLITTER_MAT - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_JUMP_MAT - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_SPIN_MAT - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_SOUND_MAT - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_BREAKABLE_DOOR - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SAND_ORNAMENT - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // 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_SECRET_BASE_TV_SHIELD - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PLAYER_ROOM_PC_ON - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_C6 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_POSTER - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_C8 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_C9 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_CA - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_CB - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_CC - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_CD - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_CE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_CF - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MUDDY_SLOPE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BUMPY_SLOPE - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_FLOOR - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ISOLATED_VERTICAL_RAIL - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ISOLATED_HORIZONTAL_RAIL - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_VERTICAL_RAIL - TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_HORIZONTAL_RAIL - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_D7 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_D8 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_D9 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_DA - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_DB - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_DC - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_DD - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_DE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_DF - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_PICTURE_BOOK_SHELF - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BOOKSHELF - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_POKEMON_CENTER_BOOKSHELF - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_VASE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRASH_CAN - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SHOP_SHELF - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BLUEPRINT - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CABLE_BOX_RESULTS_2 - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_WIRELESS_BOX_RESULTS - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRAINER_HILL_TIMER - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNKNOWN_CLOSED_DOOR - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_EB - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_EC - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_ED - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_EE - TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNUSED_EF + [MB_NORMAL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SECRET_BASE_WALL] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_TALL_GRASS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), + [MB_LONG_GRASS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), + [MB_UNUSED_04] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_05] = TILE_ATTRIBUTES(FALSE, FALSE, TRUE), + [MB_DEEP_SAND] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), + [MB_SHORT_GRASS] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_CAVE] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), + [MB_LONG_GRASS_SOUTH_EDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_NO_RUNNING] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_INDOOR_ENCOUNTER] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), + [MB_MOUNTAIN_TOP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_BATTLE_PYRAMID_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_MOSSDEEP_GYM_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_MT_PYRE_HOLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_POND_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), + [MB_SEMI_DEEP_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), + [MB_DEEP_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), + [MB_WATERFALL] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_SOOTOPOLIS_DEEP_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_OCEAN_WATER] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), + [MB_PUDDLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SHALLOW_WATER] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_SOOTOPOLIS_DEEP_WATER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_NO_SURFACING] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_UNUSED_SOOTOPOLIS_DEEP_WATER_2] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_STAIRS_OUTSIDE_ABANDONED_SHIP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SHOAL_CAVE_ENTRANCE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_1D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_1E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_1F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_ICE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SAND] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SEAWEED] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), + [MB_UNUSED_23] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ASHGRASS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), + [MB_FOOTPRINTS] = TILE_ATTRIBUTES(TRUE, FALSE, TRUE), + [MB_THIN_ICE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_CRACKED_ICE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_HOT_SPRINGS] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_LAVARIDGE_GYM_B1F_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SEAWEED_NO_SURFACING] = TILE_ATTRIBUTES(TRUE, TRUE, TRUE), + [MB_REFLECTION_UNDER_BRIDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_2C] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_2D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_2E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_2F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_IMPASSABLE_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_IMPASSABLE_WEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_IMPASSABLE_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_IMPASSABLE_SOUTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_IMPASSABLE_NORTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_IMPASSABLE_NORTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_IMPASSABLE_SOUTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_IMPASSABLE_SOUTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_JUMP_EAST] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_JUMP_WEST] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_JUMP_NORTH] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_JUMP_SOUTH] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_JUMP_NORTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_JUMP_NORTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_JUMP_SOUTHEAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_JUMP_SOUTHWEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_WALK_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_WALK_WEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_WALK_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_WALK_SOUTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SLIDE_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SLIDE_WEST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SLIDE_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SLIDE_SOUTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_TRICK_HOUSE_PUZZLE_8_FLOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_49] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_4A] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_4B] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_4C] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_4D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_4E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_4F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_EASTWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_WESTWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_NORTHWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_SOUTHWARD_CURRENT] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_UNUSED_54] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_55] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_56] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_57] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_58] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_59] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_5A] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_5B] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_5C] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_5D] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_5E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_5F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_NON_ANIMATED_DOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_LADDER] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_EAST_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_WEST_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_NORTH_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SOUTH_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_CRACKED_FLOOR_HOLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_AQUA_HIDEOUT_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_LAVARIDGE_GYM_1F_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ANIMATED_DOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UP_ESCALATOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_DOWN_ESCALATOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_WATER_DOOR] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_WATER_SOUTH_ARROW_WARP] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_DEEP_SOUTH_WARP] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_6F] = TILE_ATTRIBUTES(TRUE, TRUE, FALSE), + [MB_WARP_OR_BRIDGE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_71] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ROUTE120_NORTH_BRIDGE_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ROUTE120_NORTH_BRIDGE_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_PACIFIDLOG_VERTICAL_LOG_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_PACIFIDLOG_VERTICAL_LOG_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_PACIFIDLOG_HORIZONTAL_LOG_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_PACIFIDLOG_HORIZONTAL_LOG_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_FORTREE_BRIDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_79] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_ROUTE120_SOUTH_BRIDGE_1] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ROUTE120_SOUTH_BRIDGE_2] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ROUTE120_NORTH_BRIDGE_3] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ROUTE120_NORTH_BRIDGE_4] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_7E] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ROUTE110_BRIDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_COUNTER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_81] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_82] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_PC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_CABLE_BOX_RESULTS_1] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_REGION_MAP] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_TELEVISION] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_POKEBLOCK_FEEDER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_88] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SLOT_MACHINE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_ROULETTE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_CLOSED_SOOTOPOLIS_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_TRICK_HOUSE_PUZZLE_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_PETALBURG_GYM_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_RUNNING_SHOES_INSTRUCTION] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_QUESTIONNAIRE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_RED_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_RED_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_BROWN_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_YELLOW_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_TREE_LEFT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_SHRUB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_SHRUB_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_BLUE_CAVE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_TREE_RIGHT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_9E] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_9F] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_BERRY_TREE_SOIL] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A1] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A2] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A3] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A4] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A5] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A6] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A7] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A8] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_A9] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_AA] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_AB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_AC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_AD] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_AE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_AF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_PC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SECRET_BASE_REGISTER_PC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [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_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), + [MB_SECRET_BASE_IMPASSABLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SECRET_BASE_GLITTER_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SECRET_BASE_JUMP_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SECRET_BASE_SPIN_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SECRET_BASE_SOUND_MAT] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SECRET_BASE_BREAKABLE_DOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_SECRET_BASE_SAND_ORNAMENT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [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_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), + [MB_SECRET_BASE_POSTER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_C8] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_C9] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_CA] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_CB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_CC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_CD] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_CE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_CF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_MUDDY_SLOPE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_BUMPY_SLOPE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_CRACKED_FLOOR] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ISOLATED_VERTICAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_ISOLATED_HORIZONTAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_VERTICAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_HORIZONTAL_RAIL] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_UNUSED_D7] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_D8] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_D9] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_DA] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_DB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_DC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_DD] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_DE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_DF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_PICTURE_BOOK_SHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_BOOKSHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_POKEMON_CENTER_BOOKSHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_VASE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_TRASH_CAN] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_SHOP_SHELF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_BLUEPRINT] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_CABLE_BOX_RESULTS_2] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_WIRELESS_BOX_RESULTS] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_TRAINER_HILL_TIMER] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNKNOWN_CLOSED_DOOR] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_EB] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_EC] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_ED] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_EE] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), + [MB_UNUSED_EF] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), }; bool8 MetatileBehavior_IsATile(u8 metatileBehavior) diff --git a/src/mon_markings.c b/src/mon_markings.c index 7f320002d..30015dbef 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -479,7 +479,7 @@ static void sub_811FC80(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag) for (i = 0; i < 2; i++) { spriteId = CreateSprite(&sprTemplate, x + 32, y + 32, 1); - if (spriteId != 64) + if (spriteId != MAX_SPRITES) { sMenu->menuWindowSprites[i] = &gSprites[spriteId]; StartSpriteAnim(&gSprites[spriteId], i); @@ -502,7 +502,7 @@ static void sub_811FC80(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag) for (i = 0; i < 4; i++) { spriteId = CreateSprite(&sprTemplate, x + 32, y + 16 + 16 * i, 0); - if (spriteId != 64) + if (spriteId != MAX_SPRITES) { sMenu->menuMarkingSprites[i] = &gSprites[spriteId]; gSprites[spriteId].data[0] = i; @@ -518,7 +518,7 @@ static void sub_811FC80(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag) spriteId = CreateSprite(&sprTemplate, 0, 0, 0); - if (spriteId != 64) + if (spriteId != MAX_SPRITES) { sMenu->menuTextSprite = &gSprites[spriteId]; sMenu->menuTextSprite->oam.shape = ST_OAM_SQUARE; @@ -535,7 +535,7 @@ static void sub_811FC80(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag) sprTemplate.callback = sub_811FF7C; spriteId = CreateSprite(&sprTemplate, x + 12, 0, 0); - if(spriteId != 64) + if (spriteId != MAX_SPRITES) { sMenu->unkSprite = &gSprites[spriteId]; sMenu->unkSprite->data[0] = y + 16; @@ -600,7 +600,7 @@ static struct Sprite *sub_811FFD4(u16 tileTag, u16 paletteTag, const u16 *palett LoadSpritePalette(&sprPalette); spriteId = CreateSprite(&sprTemplate, 0, 0, 0); - if (spriteId != 64) + if (spriteId != MAX_SPRITES) return &gSprites[spriteId]; else return NULL; diff --git a/src/mossdeep_gym.c b/src/mossdeep_gym.c index cd377ad83..07920fe4c 100644 --- a/src/mossdeep_gym.c +++ b/src/mossdeep_gym.c @@ -1,7 +1,7 @@ #include "global.h" #include "event_object_movement.h" #include "fieldmap.h" -#include "malloc.h" +#include "alloc.h" #include "mossdeep_gym.h" #include "script_movement.h" #include "constants/event_object_movement_constants.h" diff --git a/src/mystery_event_msg.c b/src/mystery_event_msg.c index 74261179b..e0e70a218 100644 --- a/src/mystery_event_msg.c +++ b/src/mystery_event_msg.c @@ -10,4 +10,4 @@ const u8 gText_MysteryGiftSentOver[] = _("{STR_VAR_1} was sent over!"); const u8 gText_MysteryGiftFullParty[] = _("Your party is full.\n{STR_VAR_1} could not be sent over."); const u8 gText_MysteryGiftNewTrainer[] = _("A new TRAINER has arrived in\nHOENN."); const u8 gText_MysteryGiftNewAdversaryInBattleTower[] = _("A new adversary has arrived in the\nBATTLE TOWER."); -const u8 gText_MysteryGiftCantBeUsed[] = _("This data can’t be used in\nthis version."); +const u8 gText_MysteryGiftCantBeUsed[] = _("This data can't be used in\nthis version."); diff --git a/src/naming_screen.c b/src/naming_screen.c index 9902df04c..e6d146b85 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1,6 +1,6 @@ #include "global.h" #include "naming_screen.h" -#include "malloc.h" +#include "alloc.h" #include "palette.h" #include "task.h" #include "sprite.h" @@ -150,7 +150,7 @@ static const struct WindowTemplate gUnknown_0858BE10[] = DUMMY_WIN_TEMPLATE }; -static const u8 gUnknown_0858BE40[] = __("abcdef .ghijkl ,mnopqrs tuvwxyz ABCDEF .GHIJKL ,MNOPQRS TUVWXYZ 01234 56789 !?♂♀/- …“”‘’ "); +static const u8 gUnknown_0858BE40[] = __("abcdef .ghijkl ,mnopqrs tuvwxyz ABCDEF .GHIJKL ,MNOPQRS TUVWXYZ 01234 56789 !?♂♀/- …“”‘' "); static const u8 gUnknown_0858BEA0[] = { 8, 8, 6 }; static const u8 gUnknown_0858BEA3[] = { 0, 12, 24, 56, 68, 80, 92, 123, 0, 12, 24, 56, 68, 80, 92, 123, 0, 22, 44, 66, 88, 110, 0, 0 }; diff --git a/src/new_game.c b/src/new_game.c index 18b128624..4804b28f3 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -205,14 +205,14 @@ void NewGameInitData(void) ScriptContext2_RunNewScript(EventScript_2715DE); ResetMiniGamesResults(); copy_strings_to_sav1(); - SetLilycoveLady(); - ResetAllApprenticeData(); - ClearRankingHallRecords(); - sub_8195E10(); - sub_801AFD8(); - sub_800E5AC(); - sub_81D54BC(); - ResetContestLinkResults(); + SetLilycoveLady(); + ResetAllApprenticeData(); + ClearRankingHallRecords(); + sub_8195E10(); + sub_801AFD8(); + sub_800E5AC(); + sub_81D54BC(); + ResetContestLinkResults(); } static void ResetMiniGamesResults(void) diff --git a/src/normal.c b/src/normal.c index a4ed5edca..3de8b1157 100644 --- a/src/normal.c +++ b/src/normal.c @@ -1,19 +1,42 @@ #include "global.h" #include "battle_anim.h" +#include "palette.h" +#include "random.h" +#include "task.h" +#include "trig.h" #include "constants/rgb.h" -extern void sub_811572C(struct Sprite *); -extern void sub_81157FC(struct Sprite *); -extern void sub_81158A4(struct Sprite *); -extern void sub_81159B4(struct Sprite *); -extern void sub_81160A4(struct Sprite *); -extern void sub_8116388(struct Sprite *); -extern void sub_8116420(struct Sprite *); -extern void sub_8116458(struct Sprite *); -extern void sub_81164F0(struct Sprite *); -extern void sub_8116560(struct Sprite *); -extern void sub_81165A8(struct Sprite *); -extern void sub_81163D0(struct Sprite *); +void AnimConfusionDuck(struct Sprite *); +void AnimSimplePaletteBlend(struct Sprite *); +u32 UnpackSelectedBattleAnimPalettes(s16); +void sub_81158A4(struct Sprite *); +void sub_81159B4(struct Sprite *); +void sub_81160A4(struct Sprite *); +void sub_8116388(struct Sprite *); +void sub_8116420(struct Sprite *); +void sub_8116458(struct Sprite *); +void sub_81164F0(struct Sprite *); +void sub_8116560(struct Sprite *); +void sub_81165A8(struct Sprite *); +static void AnimConfusionDuckStep(struct Sprite *); +static void AnimSimplePaletteBlendStep(struct Sprite *); +static void sub_81158F8(struct Sprite *); +static void sub_8115984(struct Sprite *); +static void sub_8115A54(u8, u8, u8); +static void sub_8115AA4(u8); +static void sub_8115BC8(u8, u8, u8); +static void sub_8115C18(u8); +static void sub_8115CD0(u8, u8, u8); +static void sub_8115D2C(u8); +static void sub_8115E00(u8); +static void sub_8115EB8(u8); +static void sub_8116148(struct Sprite *); +static void sub_81161F4(void); +static void sub_81162F8(u8); +static void sub_81163D0(struct Sprite *); +static void sub_81165E4(struct Sprite *); + +extern void sub_810E2C8(struct Sprite *); const union AnimCmd gUnknown_0859722C[] = { @@ -47,7 +70,7 @@ const struct SpriteTemplate gConfusionDuckSpriteTemplate = .anims = gUnknown_08597254, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_811572C, + .callback = AnimConfusionDuck, }; const struct SpriteTemplate gSimplePaletteBlendSpriteTemplate = @@ -58,7 +81,7 @@ const struct SpriteTemplate gSimplePaletteBlendSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81157FC, + .callback = AnimSimplePaletteBlend, }; const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate = @@ -231,3 +254,717 @@ const struct SpriteTemplate gUnknown_08597400 = .affineAnims = gUnknown_08597348, .callback = sub_81163D0, }; + +// Moves a spinning duck around the mon's head. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: initial wave offset +// arg 3: wave period (higher means faster wave) +// arg 4: duration +void AnimConfusionDuck(struct Sprite *sprite) +{ + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + sprite->data[1] = -gBattleAnimArgs[3]; + sprite->data[4] = 1; + } + else + { + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[4] = 0; + StartSpriteAnim(sprite, 1); + } + + sprite->data[3] = gBattleAnimArgs[4]; + sprite->callback = AnimConfusionDuckStep; + sprite->callback(sprite); +} + +static void AnimConfusionDuckStep(struct Sprite *sprite) +{ + sprite->pos2.x = Cos(sprite->data[0], 30); + sprite->pos2.y = Sin(sprite->data[0], 10); + + if ((u16)sprite->data[0] < 128) + sprite->oam.priority = 1; + else + sprite->oam.priority = 3; + + sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; + if (++sprite->data[2] == sprite->data[3]) + DestroyAnimSprite(sprite); +} + +// Performs a simple color blend on a specified sprite. +// arg 0: palette selector +// arg 1: delay +// arg 2: start blend amount +// arg 3: end blend amount +// arg 4: blend color +void AnimSimplePaletteBlend(struct Sprite *sprite) +{ + u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]); + sprite->invisible = 1; + sprite->callback = AnimSimplePaletteBlendStep; +} + +// Unpacks a bitfield and returns a bitmask of its selected palettes. +// Bits 0-6 of the selector parameter result in the following palettes being selected: +// 0: battle background palettes (BG palettes 1, 2, and 3) +// 1: gBattleAnimAttacker OBJ palette +// 2: gBattleAnimTarget OBJ palette +// 3: gBattleAnimAttacker partner OBJ palette +// 4: gBattleAnimTarget partner OBJ palette +// 5: BG palette 4 +// 6: BG palette 5 +u32 UnpackSelectedBattleAnimPalettes(s16 selector) +{ + u8 arg0 = selector & 1; + u8 arg1 = (selector >> 1) & 1; + u8 arg2 = (selector >> 2) & 1; + u8 arg3 = (selector >> 3) & 1; + u8 arg4 = (selector >> 4) & 1; + u8 arg5 = (selector >> 5) & 1; + u8 arg6 = (selector >> 6) & 1; + return sub_80A75AC(arg0, arg1, arg2, arg3, arg4, arg5, arg6); +} + +static void AnimSimplePaletteBlendStep(struct Sprite *sprite) +{ + if (!gPaletteFade.active) + DestroyAnimSprite(sprite); +} + +void sub_81158A4(struct Sprite *sprite) +{ + u32 selectedPalettes; + + sprite->data[0] = gBattleAnimArgs[1]; + sprite->data[1] = gBattleAnimArgs[1]; + sprite->data[2] = gBattleAnimArgs[2]; + sprite->data[3] = gBattleAnimArgs[3]; + sprite->data[4] = gBattleAnimArgs[4]; + sprite->data[5] = gBattleAnimArgs[5]; + sprite->data[6] = gBattleAnimArgs[6]; + sprite->data[7] = gBattleAnimArgs[0]; + + selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]); + sprite->invisible = 1; + sprite->callback = sub_81158F8; +} + +static void sub_81158F8(struct Sprite *sprite) +{ + u32 selectedPalettes; + + if (sprite->data[0] > 0) + { + sprite->data[0]--; + return; + } + + if (gPaletteFade.active) + return; + + if (sprite->data[2] == 0) + { + sprite->callback = sub_8115984; + return; + } + + selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + if (sprite->data[1] & 0x100) + BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]); + else + BlendPalettes(selectedPalettes, sprite->data[6], sprite->data[5]); + + sprite->data[1] ^= 0x100; + sprite->data[0] = sprite->data[1] & 0xFF; + sprite->data[2]--; +} + +static void sub_8115984(struct Sprite *sprite) +{ + u32 selectedPalettes; + + if (!gPaletteFade.active) + { + selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + BlendPalettes(selectedPalettes, 0, 0); + DestroyAnimSprite(sprite); + } +} + +void sub_81159B4(struct Sprite *sprite) +{ + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = 0; + sprite->data[1] = 10; + sprite->data[2] = 8; + sprite->data[3] = 40; + sprite->data[4] = 112; + sprite->data[5] = 0; + StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); + sprite->callback = sub_80A634C; + sprite->callback(sprite); +} + +void sub_8115A04(u8 taskId) +{ + 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] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[5]; + gTasks[taskId].data[8] = 0; + sub_8115A54(taskId, 0, gTasks[taskId].data[4]); + gTasks[taskId].func = sub_8115AA4; +} + +static void sub_8115A54(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +{ + u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].data[0]); + BeginNormalPaletteFade( + selectedPalettes, + gTasks[taskId].data[1], + initialBlendAmount, + targetBlendAmount, + gTasks[taskId].data[5]); + + gTasks[taskId].data[2]--; + gTasks[taskId].data[8] ^= 1; +} + +static void sub_8115AA4(u8 taskId) +{ + u8 initialBlendAmount, targetBlendAmount; + if (!gPaletteFade.active) + { + if (gTasks[taskId].data[2] > 0) + { + if (gTasks[taskId].data[8] == 0) + { + initialBlendAmount = gTasks[taskId].data[3]; + targetBlendAmount = gTasks[taskId].data[4]; + } + else + { + initialBlendAmount = gTasks[taskId].data[4]; + targetBlendAmount = gTasks[taskId].data[3]; + } + + if (gTasks[taskId].data[2] == 1) + targetBlendAmount = 0; + + sub_8115A54(taskId, initialBlendAmount, targetBlendAmount); + } + else + { + DestroyAnimVisualTask(taskId); + } + } +} + +void sub_8115B0C(u8 taskId) +{ + int battler; + u32 selectedPalettes = 0; + + 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] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[5]; + gTasks[taskId].data[8] = 0; + + for (battler = 0; battler < gBattlersCount; battler++) + { + if (battler != gBattleAnimAttacker && battler != gBattleAnimTarget) + selectedPalettes |= 1 << (battler + 16); + } + + if (gBattleAnimArgs[0] == 1) + selectedPalettes |= 0xE; + + gTasks[taskId].data[9] = selectedPalettes >> 16; + gTasks[taskId].data[10] = selectedPalettes & 0xFF; + sub_8115BC8(taskId, 0, gTasks[taskId].data[4]); + gTasks[taskId].func = sub_8115C18; +} + +static void sub_8115BC8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +{ + u32 selectedPalettes = ((u16)gTasks[taskId].data[9] << 16) | (u16)gTasks[taskId].data[10]; + BeginNormalPaletteFade( + selectedPalettes, + gTasks[taskId].data[1], + initialBlendAmount, + targetBlendAmount, + gTasks[taskId].data[5]); + + gTasks[taskId].data[2]--; + gTasks[taskId].data[8] ^= 1; +} + +static void sub_8115C18(u8 taskId) +{ + u8 initialBlendAmount, targetBlendAmount; + if (!gPaletteFade.active) + { + if (gTasks[taskId].data[2] > 0) + { + if (gTasks[taskId].data[8] == 0) + { + initialBlendAmount = gTasks[taskId].data[3]; + targetBlendAmount = gTasks[taskId].data[4]; + } + else + { + initialBlendAmount = gTasks[taskId].data[4]; + targetBlendAmount = gTasks[taskId].data[3]; + } + + if (gTasks[taskId].data[2] == 1) + targetBlendAmount = 0; + + sub_8115BC8(taskId, initialBlendAmount, targetBlendAmount); + } + else + { + DestroyAnimVisualTask(taskId); + } + } +} + +void sub_8115C80(u8 taskId) +{ + u8 paletteIndex; + + 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] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[5]; + gTasks[taskId].data[8] = 0; + + sub_8115CD0(taskId, 0, gTasks[taskId].data[4]); + gTasks[taskId].func = sub_8115D2C; +} + +static void sub_8115CD0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +{ + u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].data[0]); + BeginNormalPaletteFade( + 1 << (paletteIndex + 16), + gTasks[taskId].data[1], + initialBlendAmount, + targetBlendAmount, + gTasks[taskId].data[5]); + + gTasks[taskId].data[2]--; + gTasks[taskId].data[8] ^= 1; +} + +static void sub_8115D2C(u8 taskId) +{ + u8 initialBlendAmount, targetBlendAmount; + if (!gPaletteFade.active) + { + if (gTasks[taskId].data[2] > 0) + { + if (gTasks[taskId].data[8] == 0) + { + initialBlendAmount = gTasks[taskId].data[3]; + targetBlendAmount = gTasks[taskId].data[4]; + } + else + { + initialBlendAmount = gTasks[taskId].data[4]; + targetBlendAmount = gTasks[taskId].data[3]; + } + + if (gTasks[taskId].data[2] == 1) + targetBlendAmount = 0; + + sub_8115CD0(taskId, initialBlendAmount, targetBlendAmount); + } + else + { + DestroyAnimVisualTask(taskId); + } + } +} + +void sub_8115D94(u8 taskId) +{ + u8 paletteIndex; + + gTasks[taskId].data[0] = gBattleAnimArgs[1]; + 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].data[5] = gBattleAnimArgs[5]; + gTasks[taskId].data[6] = gBattleAnimArgs[6]; + gTasks[taskId].data[7] = gBattleAnimArgs[0]; + + paletteIndex = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); + BeginNormalPaletteFade( + 1 << (paletteIndex + 16), + 0, + gBattleAnimArgs[4], + gBattleAnimArgs[4], + gBattleAnimArgs[3]); + + gTasks[taskId].func = sub_8115E00; +} + +static void sub_8115E00(u8 taskId) +{ + u32 selectedPalettes; + + if (gTasks[taskId].data[0] > 0) + { + gTasks[taskId].data[0]--; + return; + } + + if (gPaletteFade.active) + return; + + if (gTasks[taskId].data[2] == 0) + { + gTasks[taskId].func = sub_8115EB8; + return; + } + + selectedPalettes = 1 << (IndexOfSpritePaletteTag(gTasks[taskId].data[7]) + 16); + if (gTasks[taskId].data[1] & 0x100) + { + BeginNormalPaletteFade( + selectedPalettes, + 0, + gTasks[taskId].data[4], + gTasks[taskId].data[4], + gTasks[taskId].data[3]); + } + else + { + BeginNormalPaletteFade( + selectedPalettes, + 0, + gTasks[taskId].data[6], + gTasks[taskId].data[6], + gTasks[taskId].data[5]); + } + + gTasks[taskId].data[1] ^= 0x100; + gTasks[taskId].data[0] = gTasks[taskId].data[1] & 0xFF; + gTasks[taskId].data[2]--; +} + +static void sub_8115EB8(u8 taskId) +{ + u32 selectedPalettes; + + if (!gPaletteFade.active) + { + selectedPalettes = 1 << (IndexOfSpritePaletteTag(gTasks[taskId].data[7]) + 16); + BeginNormalPaletteFade(selectedPalettes, 0, 0, 0, RGB(0, 0, 0)); + DestroyAnimVisualTask(taskId); + } +} + +void sub_8115F10(u8 taskId) +{ + u32 selectedPalettes = 0; + u8 attackerBattler = gBattleAnimAttacker; + u8 targetBattler = gBattleAnimTarget; + + if (gBattleAnimArgs[0] & 0x100) + selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + + if (gBattleAnimArgs[1] & 0x100) + selectedPalettes |= (0x10000 << attackerBattler); + + if (gBattleAnimArgs[2] & 0x100) + selectedPalettes |= (0x10000 << targetBattler); + + InvertPlttBuffer(selectedPalettes); + DestroyAnimVisualTask(taskId); +} + +void sub_8115F94(u8 taskId) +{ + u8 attackerBattler; + u8 targetBattler; + u8 paletteIndex; + u32 selectedPalettes = 0; + + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[2] = gBattleAnimArgs[0]; + gTasks[taskId].data[3] = gBattleAnimArgs[1]; + gTasks[taskId].data[4] = gBattleAnimArgs[2]; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[5] = gBattleAnimArgs[4]; + gTasks[taskId].data[6] = gBattleAnimArgs[5]; + gTasks[taskId].data[7] = gBattleAnimArgs[6]; + } + + gTasks[taskId].data[0]++; + attackerBattler = gBattleAnimAttacker; + targetBattler = gBattleAnimTarget; + + if (gTasks[taskId].data[2] & 0x100) + selectedPalettes = 0x0000FFFF; + + if (gTasks[taskId].data[2] & 0x1) + { + paletteIndex = IndexOfSpritePaletteTag(gSprites[gHealthboxSpriteIds[attackerBattler]].template->paletteTag); + selectedPalettes |= (1 << paletteIndex) << 16; + } + + if (gTasks[taskId].data[3] & 0x100) + selectedPalettes |= (1 << attackerBattler) << 16; + + if (gTasks[taskId].data[4] & 0x100) + selectedPalettes |= (1 << targetBattler) << 16; + + TintPlttBuffer(selectedPalettes, gTasks[taskId].data[5], gTasks[taskId].data[6], gTasks[taskId].data[7]); + if (gTasks[taskId].data[0] == gTasks[taskId].data[1]) + { + UnfadePlttBuffer(selectedPalettes); + DestroyAnimVisualTask(taskId); + } +} + +void sub_81160A4(struct Sprite *sprite) +{ + u16 var0; + + sprite->invisible = 1; + sprite->data[0] = -gBattleAnimArgs[0]; + sprite->data[1] = gBattleAnimArgs[1]; + sprite->data[2] = gBattleAnimArgs[1]; + sprite->data[3] = gBattleAnimArgs[2]; + + switch (gBattleAnimArgs[3]) + { + case 0: + StoreSpriteCallbackInData6(sprite, (void *)&gBattle_BG3_X); + break; + case 1: + StoreSpriteCallbackInData6(sprite, (void *)&gBattle_BG3_Y); + break; + case 2: + StoreSpriteCallbackInData6(sprite, (void *)&gSpriteCoordOffsetX); + break; + default: + StoreSpriteCallbackInData6(sprite, (void *)&gSpriteCoordOffsetY); + break; + } + + sprite->data[4] = *(u16 *)(sprite->data[6] | (sprite->data[7] << 16)); + sprite->data[5] = gBattleAnimArgs[3]; + var0 = sprite->data[5] - 2; + if (var0 < 2) + sub_81161F4(); + + sprite->callback = sub_8116148; +} + +static void sub_8116148(struct Sprite *sprite) +{ + u8 i; + u16 var0; + + if (sprite->data[3] > 0) + { + sprite->data[3]--; + if (sprite->data[1] > 0) + { + sprite->data[1]--; + } + else + { + sprite->data[1] = sprite->data[2]; + *(u16 *)(sprite->data[6] | (sprite->data[7] << 16)) += sprite->data[0]; + sprite->data[0] = -sprite->data[0]; + } + } + else + { + *(u16 *)(sprite->data[6] | (sprite->data[7] << 16)) = sprite->data[4]; + var0 = sprite->data[5] - 2; + if (var0 < 2) + { + for (i = 0; i < gBattlersCount; i++) + gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = 0; + } + + DestroyAnimSprite(sprite); + } +} + +static void sub_81161F4(void) +{ + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0; + + if (gBattleAnimArgs[4] == 2) + { + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + } + else + { + if (gBattleAnimArgs[4] == 0) + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; + else + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + } +} + +void sub_81162A4(u8 taskId) +{ + 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[8] = gBattleAnimArgs[3]; + gBattle_BG3_X = gBattleAnimArgs[0]; + gBattle_BG3_Y = gBattleAnimArgs[1]; + gTasks[taskId].func = sub_81162F8; + gTasks[taskId].func(taskId); +} + +static void sub_81162F8(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + if (gBattle_BG3_X == gTasks[taskId].data[0]) + gBattle_BG3_X = -gTasks[taskId].data[0]; + else + gBattle_BG3_X = gTasks[taskId].data[0]; + + if (gBattle_BG3_Y == -gTasks[taskId].data[1]) + gBattle_BG3_Y = 0; + else + gBattle_BG3_Y = -gTasks[taskId].data[1]; + + gTasks[taskId].data[3] = gTasks[taskId].data[8]; + if (--gTasks[taskId].data[2] == 0) + { + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + DestroyAnimVisualTask(taskId); + } + } + else + { + gTasks[taskId].data[3]--; + } +} + +void sub_8116388(struct Sprite *sprite) +{ + StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); + if (gBattleAnimArgs[2] == 0) + InitAnimSpritePos(sprite, 1); + else + sub_80A6980(sprite, TRUE); + + sprite->callback = sub_80A67BC; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +static void sub_81163D0(struct Sprite *sprite) +{ + StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); + if (gBattleAnimArgs[2] == 0) + InitAnimSpritePos(sprite, 1); + else + sub_80A6980(sprite, TRUE); + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->callback = sub_80A67BC; + StoreSpriteCallbackInData6(sprite, sub_810E2C8); +} + +void sub_8116420(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest()) + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + + sub_8116388(sprite); +} + +void sub_8116458(struct Sprite *sprite) +{ + if (gBattleAnimArgs[1] == -1) + gBattleAnimArgs[1] = Random2() & 3; + + StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]); + if (gBattleAnimArgs[0] == 0) + InitAnimSpritePos(sprite, 0); + else + sub_80A6980(sprite, FALSE); + + sprite->pos2.x += (Random2() % 48) - 24; + sprite->pos2.y += (Random2() % 24) - 12; + + StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); + sprite->callback = sub_80A67BC; +} + +void sub_81164F0(struct Sprite *sprite) +{ + sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x; + sprite->pos1.y = gSprites[sprite->data[0]].pos1.y + gSprites[sprite->data[0]].pos2.y; + sprite->pos2.x = gBattleAnimArgs[1]; + sprite->pos2.y = gBattleAnimArgs[2]; + StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); + StoreSpriteCallbackInData6(sprite, move_anim_8074EE0); + sprite->callback = sub_80A67BC; +} + +void sub_8116560(struct Sprite *sprite) +{ + if (gBattleAnimArgs[2] == 0) + InitAnimSpritePos(sprite, 1); + else + sub_80A6980(sprite, TRUE); + + sprite->data[0] = gBattleAnimArgs[3]; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = WaitAnimForDuration; +} + +void sub_81165A8(struct Sprite *sprite) +{ + StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); + if (gBattleAnimArgs[2] == 0) + InitAnimSpritePos(sprite, 1); + else + sub_80A6980(sprite, TRUE); + + sprite->callback = sub_81165E4; +} + +static void sub_81165E4(struct Sprite *sprite) +{ + sprite->invisible ^= 1; + if (sprite->data[0]++ > 12) + DestroyAnimSprite(sprite); +} diff --git a/src/overworld.c b/src/overworld.c index 10f2ebd26..6998c9d98 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -4,18 +4,17 @@ #include "battle_setup.h" #include "berry.h" #include "bg.h" -// #include "cable_club.h" +#include "cable_club.h" #include "clock.h" #include "event_data.h" #include "field_camera.h" #include "field_control_avatar.h" #include "field_effect.h" -#include "field_fadetransition.h" #include "event_object_movement.h" #include "field_message_box.h" #include "field_player_avatar.h" #include "field_screen_effect.h" -// #include "field_special_scene.h" +#include "field_special_scene.h" #include "field_specials.h" #include "field_tasks.h" #include "field_weather.h" @@ -27,7 +26,7 @@ #include "link_rfu.h" #include "load_save.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "m4a.h" #include "map_name_popup.h" #include "menu.h" @@ -38,7 +37,7 @@ #include "play_time.h" #include "random.h" #include "roamer.h" -// #include "rotating_gate.h" +#include "rotating_gate.h" #include "safari_zone.h" #include "save.h" #include "save_location.h" @@ -129,7 +128,7 @@ extern void sub_80A0A38(void); extern void trainer_hill_map_load_related(void); extern void sub_8087D74(void); extern void battle_pyramid_map_load_related(u8); -extern void sub_80B00E8(u8); +extern void WriteFlashScanlineEffectBuffer(u8); extern void sub_80E9238(u8); extern void sub_81AA2F8(void); extern void sub_8195E10(void); @@ -148,7 +147,6 @@ extern void ResetAllPicSprites(void); extern void FieldEffectActiveListClear(void); extern void SetUpFieldTasks(void); extern void sub_81BE6B8(void); -extern void sub_80AAFA4(void); extern void ShowStartMenu(void); extern void sub_80AEE84(void); extern void mapldr_default(void); @@ -296,15 +294,51 @@ static const u8 sUnusedData[] = const struct UCoords32 gDirectionToVectors[] = { - { 0, 0}, // DIR_NONE - { 0, 1}, // DIR_SOUTH - { 0, -1}, // DIR_NORTH - {-1, 0}, // DIR_WEST - { 1, 0}, // DIR_EAST - {-1, 1}, // DIR_SOUTHWEST - { 1, 1}, // DIR_SOUTHEAST - {-1, -1}, // DIR_NORTHWEST - { 1, -1}, // DIR_NORTHEAST + [DIR_NONE] = + { + .x = 0, + .y = 0, + }, + [DIR_SOUTH] = + { + .x = 0, + .y = 1, + }, + [DIR_NORTH] = + { + .x = 0, + .y = -1, + }, + [DIR_WEST] = + { + .x = -1, + .y = 0, + }, + [DIR_EAST] = + { + .x = 1, + .y = 0, + }, + [DIR_SOUTHWEST] = + { + .x = -1, + .y = 1, + }, + [DIR_SOUTHEAST] = + { + .x = 1, + .y = 1, + }, + [DIR_NORTHWEST] = + { + .x = -1, + .y = -1, + }, + [DIR_NORTHEAST] = + { + .x = 1, + .y = -1, + }, }; static const struct BgTemplate gUnknown_08339DAC[] = @@ -1241,7 +1275,7 @@ u8 GetMapMusicFadeoutSpeed(void) return 4; } -void music_something(void) +void TryFadeOutOldMapMusic(void) { u16 currentMusic = GetCurrentMapMusic(); u16 warpMusic = GetWarpDestinationMusic(); @@ -1819,7 +1853,7 @@ static void InitCurrentFlashLevelScanlineEffect(void) } else if ((flashLevel = Overworld_GetFlashLevel())) { - sub_80B00E8(flashLevel); + WriteFlashScanlineEffectBuffer(flashLevel); ScanlineEffect_SetParams(sFlashEffectParams); } } @@ -2160,7 +2194,7 @@ static void sub_8086988(u32 a1) InitEventObjectPalettes(1); FieldEffectActiveListClear(); - sub_80AAFA4(); + StartWeather(); sub_80AEE84(); if (!a1) SetUpFieldTasks(); @@ -2955,7 +2989,7 @@ static void sub_808780C(u8 linkPlayerId) struct LinkPlayerEventObject *linkPlayerEventObj = &gLinkPlayerEventObjects[linkPlayerId]; u8 eventObjId = linkPlayerEventObj->eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; - if (eventObj->spriteId != 64 ) + if (eventObj->spriteId != MAX_SPRITES) DestroySprite(&gSprites[eventObj->spriteId]); linkPlayerEventObj->active = 0; eventObj->active = 0; diff --git a/src/player_pc.c b/src/player_pc.c index d21ffdb62..c41dfa380 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -3,9 +3,8 @@ #include "bg.h" #include "decoration.h" #include "event_scripts.h" -#include "field_fadetransition.h" #include "event_object_movement.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "international_string_util.h" #include "item.h" @@ -15,7 +14,7 @@ #include "list_menu.h" #include "mail.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "overworld.h" @@ -332,7 +331,7 @@ static void InitPlayerPCMenu(u8 taskId) struct WindowTemplate windowTemplate; data = gTasks[taskId].data; - if(gPcItemMenuOptionsNum == 3) + if (gPcItemMenuOptionsNum == 3) windowTemplate = gUnknown_085DFF24[0]; else windowTemplate = gUnknown_085DFF24[1]; @@ -351,7 +350,7 @@ static void PlayerPCProcessMenuInput(u8 taskId) s8 inputOptionId; data = gTasks[taskId].data; - if(gPcItemMenuOptionsNum > 3) + if (gPcItemMenuOptionsNum > 3) inputOptionId = Menu_ProcessInput(); else inputOptionId = Menu_ProcessInputNoWrap(); @@ -402,7 +401,7 @@ static void PlayerPC_Mailbox(u8 taskId) playerPCItemPageInfo.scrollIndicatorId = 0xFF; Mailbox_UpdateMailList(); ItemStorage_SetItemAndMailCount(taskId); - if(sub_81D1C44(playerPCItemPageInfo.count) == TRUE) + if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) { sub_8197434(0, 0); Mailbox_DrawMailboxMenu(taskId); @@ -595,7 +594,7 @@ static u8 GetMailboxMailCount(void) u8 i, j; for(i = 0, j = 6; j < 16; j++) - if(gSaveBlock1Ptr->mail[j].itemId != 0) + if (gSaveBlock1Ptr->mail[j].itemId != 0) i++; return i; @@ -637,7 +636,7 @@ static void Mailbox_ProcessInput(u8 taskId) u16 *data = gTasks[taskId].data; s32 inputOptionId; - if(!gPaletteFade.active) + if (!gPaletteFade.active) { inputOptionId = ListMenuHandleInputGetItemId(data[5]); ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); @@ -721,7 +720,7 @@ static void Mailbox_DoMailRead(u8 taskId) static void Mailbox_FadeAndReadMail(u8 taskId) { - if(!gPaletteFade.active) + if (!gPaletteFade.active) { sub_81D1EC0(); overworld_free_bg_tilemaps(); @@ -742,7 +741,7 @@ static void pal_fill_for_maplights_or_black(void) sub_81973A4(); taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0); - if(sub_81D1C44(playerPCItemPageInfo.count) == TRUE) + if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) Mailbox_DrawMailboxMenu(taskId); else DestroyTask(taskId); @@ -751,7 +750,7 @@ static void pal_fill_for_maplights_or_black(void) static void Mailbox_HandleReturnToProcessInput(u8 taskId) { - if(IsWeatherNotFadingIn() == TRUE) + if (IsWeatherNotFadingIn() == TRUE) gTasks[taskId].func = Mailbox_ProcessInput; } @@ -787,7 +786,7 @@ static void Mailbox_MoveToBagYesNoPrompt(u8 taskId) static void Mailbox_DoMailMoveToBag(u8 taskId) { struct MailStruct *mailStruct = &(gSaveBlock1Ptr->mail[playerPCItemPageInfo.itemsAbove + 6 + playerPCItemPageInfo.cursorPos]); - if(!AddBagItem(mailStruct->itemId, 1)) + if (!AddBagItem(mailStruct->itemId, 1)) { DisplayItemMessageOnField(taskId, gText_BagIsFull, Mailbox_Cancel); } @@ -797,7 +796,7 @@ static void Mailbox_DoMailMoveToBag(u8 taskId) ClearMailStruct(mailStruct); Mailbox_UpdateMailList(); playerPCItemPageInfo.count--; - if(playerPCItemPageInfo.count < (playerPCItemPageInfo.pageItems + playerPCItemPageInfo.itemsAbove) && playerPCItemPageInfo.itemsAbove != 0) + if (playerPCItemPageInfo.count < (playerPCItemPageInfo.pageItems + playerPCItemPageInfo.itemsAbove) && playerPCItemPageInfo.itemsAbove != 0) playerPCItemPageInfo.itemsAbove--; ItemStorage_SetItemAndMailCount(taskId); } @@ -810,7 +809,7 @@ static void Mailbox_CancelMoveToBag(u8 taskId) static void Mailbox_Give(u8 taskId) { - if(CalculatePlayerPartyCount() == 0) + if (CalculatePlayerPartyCount() == 0) Mailbox_NoPokemonForMail(taskId); else { @@ -821,7 +820,7 @@ static void Mailbox_Give(u8 taskId) static void Mailbox_DoGiveMailPokeMenu(u8 taskId) { - if(!gPaletteFade.active) + if (!gPaletteFade.active) { sub_81D1EC0(); overworld_free_bg_tilemaps(); @@ -844,12 +843,12 @@ static void Mailbox_UpdateMailListAfterDeposit(void) prevCount = playerPCItemPageInfo.count; playerPCItemPageInfo.count = GetMailboxMailCount(); Mailbox_UpdateMailList(); - if(prevCount != playerPCItemPageInfo.count && (playerPCItemPageInfo.count < (playerPCItemPageInfo.pageItems + playerPCItemPageInfo.itemsAbove)) + if (prevCount != playerPCItemPageInfo.count && (playerPCItemPageInfo.count < (playerPCItemPageInfo.pageItems + playerPCItemPageInfo.itemsAbove)) && playerPCItemPageInfo.itemsAbove != 0) playerPCItemPageInfo.itemsAbove--; ItemStorage_SetItemAndMailCount(taskId); sub_81973A4(); - if(sub_81D1C44(playerPCItemPageInfo.count) == TRUE) + if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) Mailbox_DrawMailboxMenu(taskId); else DestroyTask(taskId); @@ -890,7 +889,7 @@ static void sub_816BC58(void) static u8 sub_816BC7C(u8 a) { u8 *windowIdLoc = &(gUnknown_0203BCC4->windowIds[a]); - if(*windowIdLoc == 0xFF) + if (*windowIdLoc == 0xFF) { *windowIdLoc = AddWindow(&gUnknown_085DFF5C[a]); SetWindowBorderStyle(*windowIdLoc, FALSE, 0x214, 0xE); @@ -902,7 +901,7 @@ static u8 sub_816BC7C(u8 a) static void sub_816BCC4(u8 a) { u8 *windowIdLoc = &(gUnknown_0203BCC4->windowIds[a]); - if(*windowIdLoc != 0xFF) + if (*windowIdLoc != 0xFF) { sub_8198070(*windowIdLoc, FALSE); ClearWindowTilemap(*windowIdLoc); @@ -939,12 +938,12 @@ void CopyItemName_PlayerPC(u8 *string, u16 itemId) static void ItemStorage_MoveCursor(s32 id, bool8 b, struct ListMenu *thisMenu) { - if(b != TRUE) + if (b != TRUE) PlaySE(SE_SELECT); - if(gUnknown_0203BCC4->unk666 == 0xFF) + if (gUnknown_0203BCC4->unk666 == 0xFF) { sub_816C0C8(); - if(id != -2) + if (id != -2) sub_816C060(gSaveBlock1Ptr->pcItems[id].itemId); else sub_816C060(ITEMPC_GO_BACK_TO_PREV); @@ -954,11 +953,11 @@ static void ItemStorage_MoveCursor(s32 id, bool8 b, struct ListMenu *thisMenu) static void fish4_goto_x5_or_x6(u8 windowId, s32 id, u8 yOffset) { - if(id != -2) + if (id != -2) { - if(gUnknown_0203BCC4->unk666 != 0xFF) + if (gUnknown_0203BCC4->unk666 != 0xFF) { - if(gUnknown_0203BCC4->unk666 == (u8)id) + if (gUnknown_0203BCC4->unk666 == (u8)id) sub_816BFE0(yOffset, 0, 0xFF); else sub_816BFE0(yOffset, 0xFF, 0xFF); @@ -974,7 +973,7 @@ static void sub_816BEF0(s32 id) const u8* description; u8 windowId = gUnknown_0203BCC4->windowIds[1]; - if(id != -2) + if (id != -2) description = (u8 *)ItemId_GetDescription(gSaveBlock1Ptr->pcItems[id].itemId); else description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV); @@ -984,13 +983,13 @@ static void sub_816BEF0(s32 id) static void ItemStorage_StartScrollIndicator(void) { - if(playerPCItemPageInfo.scrollIndicatorId == 0xFF) + if (playerPCItemPageInfo.scrollIndicatorId == 0xFF) playerPCItemPageInfo.scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xB0, 0xC, 0x94, playerPCItemPageInfo.count - playerPCItemPageInfo.pageItems, 0x13F8, 0x13F8, &(playerPCItemPageInfo.itemsAbove)); } static void ItemStorage_RemoveScrollIndicator(void) { - if(playerPCItemPageInfo.scrollIndicatorId != 0xFF) + if (playerPCItemPageInfo.scrollIndicatorId != 0xFF) { RemoveScrollIndicatorArrowPair(playerPCItemPageInfo.scrollIndicatorId); playerPCItemPageInfo.scrollIndicatorId = 0xFF; @@ -1005,7 +1004,7 @@ static void sub_816BFB8(u8 a, u8 b, u8 speed) static void sub_816BFE0(u8 y, u8 b, u8 speed) { u8 windowId = gUnknown_0203BCC4->windowIds[0]; - if(b == 0xFF) + if (b == 0xFF) FillWindowPixelRect(windowId, 17, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); @@ -1016,12 +1015,12 @@ static void sub_816C060(u16 itemId) u8 spriteId; u8* spriteIdLoc = &(gUnknown_0203BCC4->spriteId); - if(*spriteIdLoc == 0xFF) + if (*spriteIdLoc == 0xFF) { FreeSpriteTilesByTag(0x13F6); FreeSpritePaletteByTag(0x13F6); spriteId = AddItemIconSprite(0x13F6, 0x13F6, itemId); - if(spriteId != 64) + if (spriteId != MAX_SPRITES) { *spriteIdLoc = spriteId; gSprites[spriteId].oam.priority = 0; @@ -1034,7 +1033,7 @@ static void sub_816C060(u16 itemId) static void sub_816C0C8(void) { u8* spriteIdLoc = &(gUnknown_0203BCC4->spriteId); - if(*spriteIdLoc != 0xFF) + if (*spriteIdLoc != 0xFF) { FreeSpriteTilesByTag(0x13F6); FreeSpritePaletteByTag(0x13F6); @@ -1067,7 +1066,7 @@ static void ItemStorage_ProcessWithdrawTossInput(u8 taskId) sub_816BC7C(i); toss = data[3]; text = gText_TossItem; - if(!toss) + if (!toss) text = gText_WithdrawItem; x = GetStringCenterAlignXOffset(1, text, 104); AddTextPrinterParameterized(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL); @@ -1135,10 +1134,10 @@ static void ItemStorage_ProcessInput(u8 taskId) s32 id; data = gTasks[taskId].data; - if(gMain.newKeys & SELECT_BUTTON) + if (gMain.newKeys & SELECT_BUTTON) { ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - if((playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos) != (playerPCItemPageInfo.count - 1)) + if ((playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos) != (playerPCItemPageInfo.count - 1)) { PlaySE(SE_SELECT); ItemStorage_ItemSwapChoosePrompt(taskId); @@ -1169,10 +1168,10 @@ static void ItemStorage_GoBackToPlayerPCMenu_InitStorage(u8 taskId) s16 *data; data = gTasks[taskId].data; - if(!IsDma3ManagerBusyWithBgCopy()) + if (!IsDma3ManagerBusyWithBgCopy()) { NewMenuHelpers_DrawDialogueFrame(0, 0); - if(!data[3]) + if (!data[3]) InitItemStorageMenu(taskId, ITEMPC_MENU_WITHDRAW); else InitItemStorageMenu(taskId, ITEMPC_MENU_TOSS); @@ -1213,7 +1212,7 @@ static void sub_816C4FC(u8 taskId) s32 id; data = gTasks[taskId].data; - if(gMain.newKeys & SELECT_BUTTON) + if (gMain.newKeys & SELECT_BUTTON) { ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); ItemStorage_DoItemSwap(taskId, FALSE); @@ -1228,7 +1227,7 @@ static void sub_816C4FC(u8 taskId) case -1: break; case -2: - if(gMain.newKeys & A_BUTTON) + if (gMain.newKeys & A_BUTTON) { ItemStorage_DoItemSwap(taskId, FALSE); } @@ -1251,12 +1250,12 @@ static void ItemStorage_DoItemSwap(u8 taskId, bool8 a) b = (playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos); PlaySE(SE_SELECT); DestroyListMenuTask(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - if(!a) + if (!a) { c = gUnknown_0203BCC4->unk666; - if(c != b) + if (c != b) { - if(c != b - 1) + if (c != b - 1) { MoveItemSlotInList(gSaveBlock1Ptr->pcItems, c, b); ItemStorage_RefreshListMenu(); @@ -1296,9 +1295,9 @@ static void ItemStorage_DoItemAction(u8 taskId) b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); ItemStorage_RemoveScrollIndicator(); data[2] = 1; - if(!data[3]) + if (!data[3]) { - if(gSaveBlock1Ptr->pcItems[b].quantity == 1) + if (gSaveBlock1Ptr->pcItems[b].quantity == 1) { ItemStorage_DoItemWithdraw(taskId); return; @@ -1308,7 +1307,7 @@ static void ItemStorage_DoItemAction(u8 taskId) } else { - if(gSaveBlock1Ptr->pcItems[b].quantity == 1) + if (gSaveBlock1Ptr->pcItems[b].quantity == 1) { ItemStorage_DoItemToss(taskId); return; @@ -1327,20 +1326,20 @@ static void ItemStorage_HandleQuantityRolling(u8 taskId) data = gTasks[taskId].data; b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if(AdjustQuantityAccordingToDPadInput(&(data[2]), gSaveBlock1Ptr->pcItems[b].quantity) == TRUE) + if (AdjustQuantityAccordingToDPadInput(&(data[2]), gSaveBlock1Ptr->pcItems[b].quantity) == TRUE) sub_816C6BC(sub_816BC7C(4), data[2], STR_CONV_MODE_LEADING_ZEROS, 8, 1, 3); else { - if(gMain.newKeys & A_BUTTON) + if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); sub_816BCC4(4); - if(!data[3]) + if (!data[3]) ItemStorage_DoItemWithdraw(taskId); else ItemStorage_DoItemToss(taskId); } - else if(gMain.newKeys & B_BUTTON) + else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); sub_816BCC4(4); @@ -1357,7 +1356,7 @@ static void ItemStorage_DoItemWithdraw(u8 taskId) data = gTasks[taskId].data; b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if(AddBagItem(gSaveBlock1Ptr->pcItems[b].itemId, data[2]) == TRUE) + if (AddBagItem(gSaveBlock1Ptr->pcItems[b].itemId, data[2]) == TRUE) { CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3); @@ -1379,7 +1378,7 @@ static void ItemStorage_DoItemToss(u8 taskId) data = gTasks[taskId].data; b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove); - if(!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId)) + if (!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId)) { CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3); @@ -1411,7 +1410,7 @@ static void ItemStorage_HandleRemoveItem(u8 taskId) s16 *data; data = gTasks[taskId].data; - if(gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { RemovePCItem((playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove), data[2]); DestroyListMenuTask(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); @@ -1428,7 +1427,7 @@ static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId) s16 *data; data = gTasks[taskId].data; - if(gMain.newKeys & (A_BUTTON | B_BUTTON)) + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ItemStorage_PrintItemPcResponse(ItemStorage_GetItemPcResponse(gSaveBlock1Ptr->pcItems[(playerPCItemPageInfo.itemsAbove + playerPCItemPageInfo.cursorPos)].itemId)); ItemStorage_StartScrollIndicatorAndProcessInput(taskId); diff --git a/src/pokeball.c b/src/pokeball.c index ad839e6af..82d2f2cea 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -426,7 +426,7 @@ static void SpriteCB_TestBallThrow(struct Sprite *sprite) sprite->pos2.y = 0; sprite->data[5] = 0; ballId = ItemIdToBallId(GetBattlerPokeballItemId(opponentBattler)); - LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBattler, 14, ballId); sprite->sBattler = opponentBattler; sprite->data[7] = noOfShakes; @@ -737,7 +737,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) StartSpriteAnim(sprite, 1); ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId)); - LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); sprite->data[0] = LaunchBallFadeMonTask(1, sprite->sBattler, 14, ballId); sprite->callback = HandleBallAnimEnd; @@ -985,9 +985,9 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) #undef sBattler -static u8 LaunchBallStarsTaskForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d) +static u8 AnimateBallOpenParticlesForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d) { - return LaunchBallStarsTask(x, y, kindOfStars, d, BALL_POKE); + return AnimateBallOpenParticles(x, y, kindOfStars, d, BALL_POKE); } static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 battlerId, u32 arg2) @@ -1036,7 +1036,7 @@ static void sub_8076524(struct Sprite *sprite) r5 = 0; StartSpriteAnim(sprite, 1); - LaunchBallStarsTaskForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5); + AnimateBallOpenParticlesForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5); sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, battlerId, r4); sprite->callback = sub_80765E0; gSprites[r7].invisible = FALSE; @@ -1129,7 +1129,7 @@ static void sub_80767D4(struct Sprite *sprite) r6 = 0; StartSpriteAnim(sprite, 1); - LaunchBallStarsTaskForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6); + AnimateBallOpenParticlesForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6); sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, r8, r5); sprite->callback = sub_807687C; StartSpriteAffineAnim(&gSprites[r7], 2); diff --git a/src/pokeblock.c b/src/pokeblock.c index 01343c6eb..1418588b8 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -13,7 +13,7 @@ #include "lilycove_lady.h" #include "list_menu.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "overworld.h" diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 0a8f1b8c2..2271d7adf 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -7,7 +7,7 @@ #include "gpu_regs.h" #include "graphics.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "m4a.h" @@ -88,31 +88,31 @@ EWRAM_DATA static struct CompressedSpritePalette sPokeblockSpritePal = {0}; // const rom data static const u8 sNatureToMonPokeblockAnim[][2] = { - { 0, 0 }, // HARDY - { 3, 0 }, // LONELY - { 4, 1 }, // BRAVE - { 5, 0 }, // ADAMANT - { 10, 0 }, // NAUGHTY - { 13, 0 }, // BOLD - { 15, 0 }, // DOCILE - { 16, 2 }, // RELAXED - { 18, 0 }, // IMPISH - { 19, 0 }, // LAX - { 20, 0 }, // TIMID - { 25, 0 }, // HASTY - { 27, 3 }, // SERIOUS - { 28, 0 }, // JOLLY - { 29, 0 }, // NAIVE - { 33, 4 }, // MODEST - { 36, 0 }, // MILD - { 37, 0 }, // QUIET - { 39, 0 }, // BASHFUL - { 42, 0 }, // RASH - { 45, 0 }, // CALM - { 46, 5 }, // GENTLE - { 47, 6 }, // SASSY - { 48, 0 }, // CAREFUL - { 53, 0 }, // QUIRKY + [NATURE_HARDY] = { 0, 0 }, + [NATURE_LONELY] = { 3, 0 }, + [NATURE_BRAVE] = { 4, 1 }, + [NATURE_ADAMANT] = { 5, 0 }, + [NATURE_NAUGHTY] = { 10, 0 }, + [NATURE_BOLD] = { 13, 0 }, + [NATURE_DOCILE] = { 15, 0 }, + [NATURE_RELAXED] = { 16, 2 }, + [NATURE_IMPISH] = { 18, 0 }, + [NATURE_LAX] = { 19, 0 }, + [NATURE_TIMID] = { 20, 0 }, + [NATURE_HASTY] = { 25, 0 }, + [NATURE_SERIOUS] = { 27, 3 }, + [NATURE_JOLLY] = { 28, 0 }, + [NATURE_NAIVE] = { 29, 0 }, + [NATURE_MODEST] = { 33, 4 }, + [NATURE_MILD] = { 36, 0 }, + [NATURE_QUIET] = { 37, 0 }, + [NATURE_BASHFUL] = { 39, 0 }, + [NATURE_RASH] = { 42, 0 }, + [NATURE_CALM] = { 45, 0 }, + [NATURE_GENTLE] = { 46, 5 }, + [NATURE_SASSY] = { 47, 6 }, + [NATURE_CAREFUL] = { 48, 0 }, + [NATURE_QUIRKY] = { 53, 0 }, }; static const s16 sMonPokeblockAnims[][10] = diff --git a/src/pokedex.c b/src/pokedex.c index 66a68f0bd..ef8905bb6 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -8,7 +8,7 @@ #include "graphics.h" #include "international_string_util.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "m4a.h" #include "overworld.h" @@ -30,40 +30,27 @@ #include "constants/songs.h" #include "constants/species.h" -extern u8 gUnknown_030061EC; +extern u8 gDexCryScreenState; // EWRAM -static EWRAM_DATA struct PokedexView *gUnknown_02039B4C = NULL; +static EWRAM_DATA struct PokedexView *sPokedexView = NULL; static EWRAM_DATA u16 gUnknown_02039B50 = 0; static EWRAM_DATA u8 gUnknown_02039B52 = 0; -static EWRAM_DATA struct PokedexListItem *gUnknown_02039B54 = NULL; +static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL; // IWRAM common u8 gUnknown_030060B0; void (*gUnknown_030060B4)(void); -struct PokedexEntry +struct PokedexOption { - /*0x00*/ u8 categoryName[12]; - /*0x0C*/ u16 height; //in decimeters - /*0x0E*/ u16 weight; //in hectograms - /*0x10*/ const u8 *description; - /*0x14*/ u16 unused; - /*0x16*/ u16 pokemonScale; - /*0x18*/ u16 pokemonOffset; - /*0x1A*/ u16 trainerScale; - /*0x1C*/ u16 trainerOffset; -}; /*size = 0x20*/ - -struct UnknownStruct2 -{ - const u8 *text1; - const u8 *text2; + const u8 *description; + const u8 *title; }; struct UnknownStruct1 { - const struct UnknownStruct2 *unk0; + const struct PokedexOption *pokedexList; u8 unk4; u8 unk5; u16 unk6; @@ -88,9 +75,6 @@ struct UnknownStruct4 u8 unk9; }; -#define HOENN_DEX_COUNT 202 -#define NATIONAL_DEX_COUNT 386 - extern struct MusicPlayerInfo gMPlayInfo_BGM; struct PokedexListItem @@ -102,7 +86,7 @@ struct PokedexListItem struct PokedexView { - struct PokedexListItem unk0[NATIONAL_DEX_COUNT]; + struct PokedexListItem pokedexList[NATIONAL_DEX_COUNT]; u16 unk608; u8 unk60A_1:1; u8 unk60A_2:1; @@ -114,14 +98,14 @@ struct PokedexView u16 unk614; u16 dexOrder; u16 unk618; - u16 unk61A; - u16 unk61C; + u16 seenCount; + u16 ownCount; u16 unk61E[4]; u16 selectedMonSpriteId; u16 unk628; u16 unk62A; u8 unk62C; - u8 unk62D; + u8 initialVOffset; u8 unk62E; u8 unk62F; s16 unk630; @@ -145,12 +129,6 @@ struct PokedexView enum { - DEX_MODE_HOENN, - DEX_MODE_NATIONAL -}; - -enum -{ AREA_SCREEN, CRY_SCREEN, SIZE_SCREEN, @@ -170,30 +148,30 @@ void sub_80BBDE8(u8); void sub_80BBE70(u8); void sub_80BBEB8(u8); void sub_80BC0A8(u8); -void sub_80BC0F8(u8); +static void HandleButtonPress_StartMenu(u8); void sub_80BC2D4(u8); void sub_80BC360(u8); void sub_80BC3DC(u8); void sub_80BC47C(u8); bool8 sub_80BC514(u8); -void sub_80BC844(u8); +static void LoadPokedexBgPalette(u8); void sub_80BC890(void); void sub_80BC8D4(u8, u8); -void sub_80BD154(u16, u8, u8, u16); -void sub_80BD1F4(u16, u8, u8, u16); -u8 sub_80BD23C(u16, u8, u8); +static void CreateMonDexNum(u16, u8, u8, u16); +static void CreateCaughtBall(u16, u8, u8, u16); +static u8 CreateMonName(u16, u8, u8); void sub_80BD28C(u8, u8, u16); -void sub_80BD2B4(u16, u16); +static void CreateInitialPokemonSprites(u16, u16); bool8 sub_80BD404(u8, u8, u8); u16 sub_80BD69C(u16, u16); void sub_80BD8D0(void); bool8 sub_80BD930(void); u8 sub_80BDA40(void); -u16 sub_80BDA8C(u16); +u16 GetPokemonSpriteToDisplay(u16); u32 sub_80BDACC(u16, s16, s16); -void sub_80BDB7C(u8); +static void CreateInterfaceSprites(u8); void sub_80BE470(struct Sprite *sprite); -void sub_80BE604(struct Sprite *sprite); +static void SpriteCB_Scrollbar(struct Sprite *sprite); void sub_80BE658(struct Sprite *sprite); void sub_80BE758(struct Sprite *sprite); void sub_80BE780(struct Sprite *sprite); @@ -262,7 +240,7 @@ void sub_80C2668(u32, const u8*); void sub_80C267C(void); // const rom data -#include "data/pokedex_orders.h" +#include "data/pokemon/pokedex_orders.h" static const struct OamData sOamData_855CFE4 = { @@ -271,7 +249,7 @@ static const struct OamData sOamData_855CFE4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = ST_OAM_SQUARE, .x = 0, .matrixNum = 0, .size = 0, @@ -288,7 +266,7 @@ static const struct OamData sOamData_855CFEC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = ST_OAM_H_RECTANGLE, .x = 0, .matrixNum = 0, .size = 0, @@ -305,7 +283,7 @@ static const struct OamData sOamData_855CFF4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = ST_OAM_H_RECTANGLE, .x = 0, .matrixNum = 0, .size = 2, @@ -322,7 +300,7 @@ static const struct OamData sOamData_855CFFC = .objMode = 2, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = ST_OAM_SQUARE, .x = 0, .matrixNum = 0, .size = 2, @@ -339,7 +317,7 @@ static const struct OamData sOamData_855D004 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = ST_OAM_H_RECTANGLE, .x = 0, .matrixNum = 0, .size = 3, @@ -356,7 +334,7 @@ static const struct OamData sOamData_855D00C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = ST_OAM_V_RECTANGLE, .x = 0, .matrixNum = 0, .size = 0, @@ -626,7 +604,7 @@ static const union AnimCmd *const sSpriteAnimTable_855D190[] = sSpriteAnim_855D10C }; -static const struct SpriteTemplate gUnknown_0855D194 = +static const struct SpriteTemplate sScrollBarSpriteTemplate = { .tileTag = 4096, .paletteTag = 4096, @@ -634,10 +612,10 @@ static const struct SpriteTemplate gUnknown_0855D194 = .anims = sSpriteAnimTable_855D114, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80BE604, + .callback = SpriteCB_Scrollbar, }; -static const struct SpriteTemplate gUnknown_0855D1AC = +static const struct SpriteTemplate sArrowSpriteTemplate = { .tileTag = 4096, .paletteTag = 4096, @@ -648,7 +626,7 @@ static const struct SpriteTemplate gUnknown_0855D1AC = .callback = sub_80BE658, }; -static const struct SpriteTemplate gUnknown_0855D1C4 = +static const struct SpriteTemplate sInterfaceTextSpriteTemplate = { .tileTag = 4096, .paletteTag = 4096, @@ -659,7 +637,7 @@ static const struct SpriteTemplate gUnknown_0855D1C4 = .callback = sub_80BE758, }; -static const struct SpriteTemplate gUnknown_0855D1DC = +static const struct SpriteTemplate sRotatingPokeballSpriteTemplate = { .tileTag = 4096, .paletteTag = 4096, @@ -670,7 +648,7 @@ static const struct SpriteTemplate gUnknown_0855D1DC = .callback = sub_80BE780, }; -static const struct SpriteTemplate gUnknown_0855D1F4 = +static const struct SpriteTemplate sSeenOwnTextSpriteTemplate = { .tileTag = 4096, .paletteTag = 4096, @@ -725,13 +703,13 @@ static const struct SpriteTemplate gUnknown_0855D254 = .callback = sub_80BE834, }; -static const struct CompressedSpriteSheet gSpriteSheets_0855D26C[] = +static const struct CompressedSpriteSheet sInterfaceSpriteSheet[] = { {gPokedexMenu2_Gfx, 0x2000, 4096}, {0} }; -static const struct SpritePalette gSpritePalettes_0855D26C[] = +static const struct SpritePalette sInterfaceSpritePalette[] = { {gPokedexText_Pal, 4096}, {0} @@ -780,7 +758,7 @@ static const struct BgTemplate gBgTemplates_0855D298[] = } }; -static const struct WindowTemplate sWindowTemplates_0855D2A8[] = +static const struct WindowTemplate sPokemonList_WindowTemplate[] = { { .bg = 2, @@ -794,7 +772,7 @@ static const struct WindowTemplate sWindowTemplates_0855D2A8[] = DUMMY_WIN_TEMPLATE }; -static const u8 gUnknown_0855D2B8[] = _("{NO}000"); +static const u8 sText_No000[] = _("{NO}000"); static const u8 gUnknown_0855D2BE[] = INCBIN_U8("graphics/pokedex/caught_ball.4bpp"); static const u8 sText_TenDashes[] = _("----------"); @@ -845,7 +823,7 @@ static const struct BgTemplate gUnknown_0856E630[] = } }; -static const struct WindowTemplate gUnknown_0856E640[] = +static const struct WindowTemplate gUnknown_0856E640[] = { { .bg = 2, @@ -908,7 +886,7 @@ static const struct BgTemplate gUnknown_0856E668[] = }, }; -static const struct WindowTemplate gUnknown_0856E670[] = +static const struct WindowTemplate gUnknown_0856E670[] = { { .bg = 2, @@ -1082,90 +1060,109 @@ static const u8 gUnknown_0856EDF0[][4] = {0xFF, 0xFF, 4, 0xFF}, }; -static const struct UnknownStruct2 gUnknown_0856EE0C[] = +static const struct PokedexOption gDexModeOptions[] = { - {gUnknown_085E89A4, gUnknown_085E88DF}, - {gUnknown_085E89BB, gUnknown_085E88E9}, + {gText_DexHoennDescription, gText_DexHoennTitle}, + {gText_DexNatDescription, gText_DexNatTitle}, {NULL, NULL}, }; -static const struct UnknownStruct2 gUnknown_0856EE24[] = +static const struct PokedexOption gDexSortOptions[] = { - {gUnknown_085E89D4, gUnknown_085E88F6}, - {gUnknown_085E8A02, gUnknown_085E8905}, - {gUnknown_085E8A37, gUnknown_085E8911}, - {gUnknown_085E8A73, gUnknown_085E891F}, - {gUnknown_085E8AAF, gUnknown_085E892D}, - {gUnknown_085E8AEA, gUnknown_085E893A}, + {gText_DexSortNumericalDescription, gText_DexSortNumericalTitle}, + {gText_DexSortAtoZDescription, gText_DexSortAtoZTitle}, + {gText_DexSortHeaviestDescription, gText_DexSortHeaviestTitle}, + {gText_DexSortLightestDescription, gText_DexSortLightestTitle}, + {gText_DexSortTallestDescription, gText_DexSortTallestTitle}, + {gText_DexSortSmallestDescription, gText_DexSortSmallestTitle}, {NULL, NULL}, }; -static const struct UnknownStruct2 gUnknown_0856EE5C[] = -{ - {gUnknown_085E8B25, gUnknown_085E8B26}, - {gUnknown_085E8B25, gUnknown_085E8948}, - {gUnknown_085E8B25, gUnknown_085E894C}, - {gUnknown_085E8B25, gUnknown_085E8950}, - {gUnknown_085E8B25, gUnknown_085E8954}, - {gUnknown_085E8B25, gUnknown_085E8958}, - {gUnknown_085E8B25, gUnknown_085E895C}, - {gUnknown_085E8B25, gUnknown_085E8960}, - {gUnknown_085E8B25, gUnknown_085E8964}, - {gUnknown_085E8B25, gUnknown_085E8968}, +static const struct PokedexOption gDexSearchAlphaOptions[] = +{ + {gText_DexEmptyString, gText_DexSearchDontSpecify}, + {gText_DexEmptyString, gText_DexSearchAlphaABC}, + {gText_DexEmptyString, gText_DexSearchAlphaDEF}, + {gText_DexEmptyString, gText_DexSearchAlphaGHI}, + {gText_DexEmptyString, gText_DexSearchAlphaJKL}, + {gText_DexEmptyString, gText_DexSearchAlphaMNO}, + {gText_DexEmptyString, gText_DexSearchAlphaPQR}, + {gText_DexEmptyString, gText_DexSearchAlphaSTU}, + {gText_DexEmptyString, gText_DexSearchAlphaVWX}, + {gText_DexEmptyString, gText_DexSearchAlphaYZ}, {NULL, NULL}, }; -static const struct UnknownStruct2 gUnknown_0856EEB4[] = -{ - {gUnknown_085E8B25, gUnknown_085E8B26}, - {gUnknown_085E8B25, gUnknown_085E896B}, - {gUnknown_085E8B25, gUnknown_085E896F}, - {gUnknown_085E8B25, gUnknown_085E8974}, - {gUnknown_085E8B25, gUnknown_085E897B}, - {gUnknown_085E8B25, gUnknown_085E8981}, - {gUnknown_085E8B25, gUnknown_085E8987}, - {gUnknown_085E8B25, gUnknown_085E898D}, - {gUnknown_085E8B25, gUnknown_085E8994}, - {gUnknown_085E8B25, gUnknown_085E8999}, - {gUnknown_085E8B25, gUnknown_085E899F}, +static const struct PokedexOption gDexSearchColorOptions[] = +{ + {gText_DexEmptyString, gText_DexSearchDontSpecify}, + {gText_DexEmptyString, gText_DexSearchColorRed}, + {gText_DexEmptyString, gText_DexSearchColorBlue}, + {gText_DexEmptyString, gText_DexSearchColorYellow}, + {gText_DexEmptyString, gText_DexSearchColorGreen}, + {gText_DexEmptyString, gText_DexSearchColorBlack}, + {gText_DexEmptyString, gText_DexSearchColorBrown}, + {gText_DexEmptyString, gText_DexSearchColorPurple}, + {gText_DexEmptyString, gText_DexSearchColorGray}, + {gText_DexEmptyString, gText_DexSearchColorWhite}, + {gText_DexEmptyString, gText_DexSearchColorPink}, {NULL, NULL}, }; -static const struct UnknownStruct2 gUnknown_0856EF14[] = -{ - {gUnknown_085E8B25, gUnknown_085E8B35}, - {gUnknown_085E8B25, gTypeNames[TYPE_NORMAL]}, - {gUnknown_085E8B25, gTypeNames[TYPE_FIGHTING]}, - {gUnknown_085E8B25, gTypeNames[TYPE_FLYING]}, - {gUnknown_085E8B25, gTypeNames[TYPE_POISON]}, - {gUnknown_085E8B25, gTypeNames[TYPE_GROUND]}, - {gUnknown_085E8B25, gTypeNames[TYPE_ROCK]}, - {gUnknown_085E8B25, gTypeNames[TYPE_BUG]}, - {gUnknown_085E8B25, gTypeNames[TYPE_GHOST]}, - {gUnknown_085E8B25, gTypeNames[TYPE_STEEL]}, - {gUnknown_085E8B25, gTypeNames[TYPE_FIRE]}, - {gUnknown_085E8B25, gTypeNames[TYPE_WATER]}, - {gUnknown_085E8B25, gTypeNames[TYPE_GRASS]}, - {gUnknown_085E8B25, gTypeNames[TYPE_ELECTRIC]}, - {gUnknown_085E8B25, gTypeNames[TYPE_PSYCHIC]}, - {gUnknown_085E8B25, gTypeNames[TYPE_ICE]}, - {gUnknown_085E8B25, gTypeNames[TYPE_DRAGON]}, - {gUnknown_085E8B25, gTypeNames[TYPE_DARK]}, +static const struct PokedexOption gDexSearchTypeOptions[] = +{ + {gText_DexEmptyString, gText_DexSearchTypeNone}, + {gText_DexEmptyString, gTypeNames[TYPE_NORMAL]}, + {gText_DexEmptyString, gTypeNames[TYPE_FIGHTING]}, + {gText_DexEmptyString, gTypeNames[TYPE_FLYING]}, + {gText_DexEmptyString, gTypeNames[TYPE_POISON]}, + {gText_DexEmptyString, gTypeNames[TYPE_GROUND]}, + {gText_DexEmptyString, gTypeNames[TYPE_ROCK]}, + {gText_DexEmptyString, gTypeNames[TYPE_BUG]}, + {gText_DexEmptyString, gTypeNames[TYPE_GHOST]}, + {gText_DexEmptyString, gTypeNames[TYPE_STEEL]}, + {gText_DexEmptyString, gTypeNames[TYPE_FIRE]}, + {gText_DexEmptyString, gTypeNames[TYPE_WATER]}, + {gText_DexEmptyString, gTypeNames[TYPE_GRASS]}, + {gText_DexEmptyString, gTypeNames[TYPE_ELECTRIC]}, + {gText_DexEmptyString, gTypeNames[TYPE_PSYCHIC]}, + {gText_DexEmptyString, gTypeNames[TYPE_ICE]}, + {gText_DexEmptyString, gTypeNames[TYPE_DRAGON]}, + {gText_DexEmptyString, gTypeNames[TYPE_DARK]}, {NULL, NULL}, }; static const u8 gUnknown_0856EFAC[] = {0x00, 0x01}; static const u8 gUnknown_0856EFAE[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; -static const u8 gUnknown_0856EFB4[] = {0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17}; +static const u8 gDexSearchTypeIds[] = { + TYPE_NONE, + TYPE_NORMAL, + TYPE_FIGHTING, + TYPE_FLYING, + TYPE_POISON, + TYPE_GROUND, + TYPE_ROCK, + TYPE_BUG, + TYPE_GHOST, + TYPE_STEEL, + TYPE_FIRE, + TYPE_WATER, + TYPE_GRASS, + TYPE_ELECTRIC, + TYPE_PSYCHIC, + TYPE_ICE, + TYPE_DRAGON, + TYPE_DARK, +}; static const struct UnknownStruct1 gUnknown_0856EFC8[] = { - {gUnknown_0856EE5C, 6, 7, 10}, - {gUnknown_0856EEB4, 8, 9, 11}, - {gUnknown_0856EF14, 10,11, 18}, - {gUnknown_0856EF14, 12, 13, 18}, - {gUnknown_0856EE24, 4, 5, 6}, - {gUnknown_0856EE0C, 2, 3, 2}, + {gDexSearchAlphaOptions, 6, 7, 10}, + {gDexSearchColorOptions, 8, 9, 11}, + {gDexSearchTypeOptions, 10, 11, NUMBER_OF_MON_TYPES}, + {gDexSearchTypeOptions, 12, 13, NUMBER_OF_MON_TYPES}, + {gDexSortOptions, 4, 5, 6}, + {gDexModeOptions, 2, 3, 2}, }; static const struct BgTemplate gUnknown_0856EFF8[] = @@ -1208,7 +1205,7 @@ static const struct BgTemplate gUnknown_0856EFF8[] = } }; -static const struct WindowTemplate gUnknown_0856F008[] = +static const struct WindowTemplate gUnknown_0856F008[] = { { .bg = 2, @@ -1231,7 +1228,7 @@ void ResetPokedex(void) gUnknown_02039B50 = 0; gUnknown_02039B52 = 64; gUnknown_030060B0 = 0; - gSaveBlock2Ptr->pokedex.unknown1 = 0; + gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN; gSaveBlock2Ptr->pokedex.order = 0; gSaveBlock2Ptr->pokedex.nationalMagic = 0; gSaveBlock2Ptr->pokedex.unknown2 = 0; @@ -1261,15 +1258,15 @@ void sub_80BB370(void) TransferPlttBuffer(); } -void sub_80BB384(struct PokedexView *pokedexView) +static void ResetPokedexView(struct PokedexView *pokedexView) { u16 i; for (i = 0; i < NATIONAL_DEX_COUNT; i++) { - pokedexView->unk0[i].dexNum |= 0xFFFF; - pokedexView->unk0[i].seen = 0; - pokedexView->unk0[i].owned = 0; + pokedexView->pokedexList[i].dexNum |= 0xFFFF; + pokedexView->pokedexList[i].seen = 0; + pokedexView->pokedexList[i].owned = 0; } pokedexView->unk608 = 0; pokedexView->unk60A_1 = 0; @@ -1281,14 +1278,14 @@ void sub_80BB384(struct PokedexView *pokedexView) pokedexView->unk614 = 0; pokedexView->dexOrder = 0; pokedexView->unk618 = 0; - pokedexView->unk61A = 0; - pokedexView->unk61C = 0; - for (i = 0; i <= 3; i++) + pokedexView->seenCount = 0; + pokedexView->ownCount = 0; + for (i = 0; i < 4; i++) pokedexView->unk61E[i] |= 0xFFFF; pokedexView->unk628 = 0; pokedexView->unk62A = 0; pokedexView->unk62C = 0; - pokedexView->unk62D = 0; + pokedexView->initialVOffset = 0; pokedexView->unk62E = 0; pokedexView->unk62F = 0; pokedexView->unk630 = 0; @@ -1312,7 +1309,7 @@ void sub_80BB384(struct PokedexView *pokedexView) pokedexView->unk65C[i] = 0; } -void sub_80BB534(void) +void CB2_Pokedex(void) { u8 *addr; u32 size; @@ -1339,34 +1336,34 @@ void sub_80BB534(void) gMain.state++; break; case 2: - gUnknown_02039B4C = AllocZeroed(sizeof(struct PokedexView)); - sub_80BB384(gUnknown_02039B4C); + sPokedexView = AllocZeroed(sizeof(struct PokedexView)); + ResetPokedexView(sPokedexView); CreateTask(sub_80BB78C, 0); - gUnknown_02039B4C->dexMode = gSaveBlock2Ptr->pokedex.unknown1; + sPokedexView->dexMode = gSaveBlock2Ptr->pokedex.mode; if (!IsNationalPokedexEnabled()) - gUnknown_02039B4C->dexMode = DEX_MODE_HOENN; - gUnknown_02039B4C->dexOrder = gSaveBlock2Ptr->pokedex.order; - gUnknown_02039B4C->selectedPokemon = gUnknown_02039B50; - gUnknown_02039B4C->unk62C = gUnknown_02039B52; - gUnknown_02039B4C->selectedScreen = 0; + sPokedexView->dexMode = DEX_MODE_HOENN; + sPokedexView->dexOrder = gSaveBlock2Ptr->pokedex.order; + sPokedexView->selectedPokemon = gUnknown_02039B50; + sPokedexView->unk62C = gUnknown_02039B52; + sPokedexView->selectedScreen = 0; if (!IsNationalPokedexEnabled()) { - gUnknown_02039B4C->unk61A = GetHoennPokedexCount(0); - gUnknown_02039B4C->unk61C = GetHoennPokedexCount(1); + sPokedexView->seenCount = GetHoennPokedexCount(0); + sPokedexView->ownCount = GetHoennPokedexCount(1); } else { - gUnknown_02039B4C->unk61A = GetNationalPokedexCount(0); - gUnknown_02039B4C->unk61C = GetNationalPokedexCount(1); + sPokedexView->seenCount = GetNationalPokedexCount(0); + sPokedexView->ownCount = GetNationalPokedexCount(1); } - gUnknown_02039B4C->unk62D = 8; + sPokedexView->initialVOffset = 8; gMain.state++; break; case 3: EnableInterrupts(1); SetVBlankCallback(sub_80BB370); SetMainCallback2(sub_80BB774); - sub_80BC8D4(gUnknown_02039B4C->dexMode, gUnknown_02039B4C->dexOrder); + sub_80BC8D4(sPokedexView->dexMode, sPokedexView->dexOrder); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80); break; } @@ -1382,26 +1379,26 @@ void sub_80BB774(void) void sub_80BB78C(u8 taskId) { - gUnknown_02039B4C->unk64C_1 = FALSE; + sPokedexView->unk64C_1 = FALSE; if (sub_80BC514(0)) gTasks[taskId].func = sub_80BB7D4; } void sub_80BB7D4(u8 taskId) { - SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_02039B4C->menuY); + SetGpuReg(REG_OFFSET_BG0VOFS, sPokedexView->menuY); - if (gUnknown_02039B4C->menuY) + if (sPokedexView->menuY) { - gUnknown_02039B4C->menuY -= 8; + sPokedexView->menuY -= 8; } else { - if ((gMain.newKeys & A_BUTTON) && gUnknown_02039B4C->unk0[gUnknown_02039B4C->selectedPokemon].seen) + if ((gMain.newKeys & A_BUTTON) && sPokedexView->pokedexList[sPokedexView->selectedPokemon].seen) { sub_80BD8D0(); - BeginNormalPaletteFade(~(1 << (gSprites[gUnknown_02039B4C->selectedMonSpriteId].oam.paletteNum + 16)), 0, 0, 0x10, RGB_BLACK); - gSprites[gUnknown_02039B4C->selectedMonSpriteId].callback = sub_80BE470; + BeginNormalPaletteFade(~(1 << (gSprites[sPokedexView->selectedMonSpriteId].oam.paletteNum + 16)), 0, 0, 0x10, RGB_BLACK); + gSprites[sPokedexView->selectedMonSpriteId].callback = sub_80BE470; gTasks[taskId].func = sub_80BBBF4; PlaySE(SE_PIN); sub_80BC890(); @@ -1409,9 +1406,9 @@ void sub_80BB7D4(u8 taskId) else if (gMain.newKeys & START_BUTTON) { //Open menu - gUnknown_02039B4C->menuY = 0; - gUnknown_02039B4C->menuIsOpen = 1; - gUnknown_02039B4C->menuCursorPos = 0; + sPokedexView->menuY = 0; + sPokedexView->menuIsOpen = 1; + sPokedexView->menuCursorPos = 0; gTasks[taskId].func = sub_80BBA78; PlaySE(SE_SELECT); } @@ -1420,11 +1417,11 @@ void sub_80BB7D4(u8 taskId) PlaySE(SE_SELECT); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].data[0] = sub_80C1258(); - gUnknown_02039B4C->unk64E = 0; - gUnknown_02039B4C->unk62A = gUnknown_02039B4C->unk62C; - gUnknown_02039B4C->unk610 = gUnknown_02039B4C->selectedPokemon; - gUnknown_02039B4C->unk614 = gUnknown_02039B4C->dexMode; - gUnknown_02039B4C->unk618 = gUnknown_02039B4C->dexOrder; + sPokedexView->unk64E = 0; + sPokedexView->unk62A = sPokedexView->unk62C; + sPokedexView->unk610 = sPokedexView->selectedPokemon; + sPokedexView->unk614 = sPokedexView->dexMode; + sPokedexView->unk618 = sPokedexView->dexOrder; gTasks[taskId].func = sub_80BBD1C; PlaySE(SE_PC_LOGIN); sub_80BC890(); @@ -1438,8 +1435,8 @@ void sub_80BB7D4(u8 taskId) else { //Handle D-pad - gUnknown_02039B4C->selectedPokemon = sub_80BD69C(gUnknown_02039B4C->selectedPokemon, 0xE); - if (gUnknown_02039B4C->unk62E) + sPokedexView->selectedPokemon = sub_80BD69C(sPokedexView->selectedPokemon, 0xE); + if (sPokedexView->unk62E) gTasks[taskId].func = sub_80BBA28; } } @@ -1447,41 +1444,41 @@ void sub_80BB7D4(u8 taskId) void sub_80BBA28(u8 taskId) { - if (sub_80BD404(gUnknown_02039B4C->unk62F, gUnknown_02039B4C->unk634, gUnknown_02039B4C->unk636)) + if (sub_80BD404(sPokedexView->unk62F, sPokedexView->unk634, sPokedexView->unk636)) gTasks[taskId].func = sub_80BB7D4; } void sub_80BBA78(u8 taskId) { - SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_02039B4C->menuY); + SetGpuReg(REG_OFFSET_BG0VOFS, sPokedexView->menuY); //If menu is not open, slide it up, on screen - if (gUnknown_02039B4C->menuY != 80) + if (sPokedexView->menuY != 80) { - gUnknown_02039B4C->menuY += 8; + sPokedexView->menuY += 8; } else { if (gMain.newKeys & A_BUTTON) { - switch (gUnknown_02039B4C->menuCursorPos) + switch (sPokedexView->menuCursorPos) { case 0: //BACK TO LIST default: gMain.newKeys |= START_BUTTON; //Exit menu break; case 1: //LIST TOP - gUnknown_02039B4C->selectedPokemon = 0; - gUnknown_02039B4C->unk62C = 0x40; + sPokedexView->selectedPokemon = 0; + sPokedexView->unk62C = 0x40; sub_80BDA40(); - sub_80BD2B4(gUnknown_02039B4C->selectedPokemon, 0xE); + CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; //Exit menu break; case 2: //LIST BOTTOM - gUnknown_02039B4C->selectedPokemon = gUnknown_02039B4C->pokemonListCount - 1; - gUnknown_02039B4C->unk62C = gUnknown_02039B4C->pokemonListCount * 16 + 0x30; + sPokedexView->selectedPokemon = sPokedexView->pokemonListCount - 1; + sPokedexView->unk62C = sPokedexView->pokemonListCount * 16 + 0x30; sub_80BDA40(); - sub_80BD2B4(gUnknown_02039B4C->selectedPokemon, 0xE); + CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; //Exit menu break; case 3: //CLOSE POKEDEX @@ -1495,18 +1492,18 @@ void sub_80BBA78(u8 taskId) //Exit menu when Start or B is pressed if (gMain.newKeys & (START_BUTTON | B_BUTTON)) { - gUnknown_02039B4C->menuIsOpen = 0; + sPokedexView->menuIsOpen = 0; gTasks[taskId].func = sub_80BB7D4; PlaySE(SE_SELECT); } - else if ((gMain.newAndRepeatedKeys & DPAD_UP) && gUnknown_02039B4C->menuCursorPos != 0) + else if ((gMain.newAndRepeatedKeys & DPAD_UP) && sPokedexView->menuCursorPos != 0) { - gUnknown_02039B4C->menuCursorPos--; + sPokedexView->menuCursorPos--; PlaySE(SE_SELECT); } - else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && gUnknown_02039B4C->menuCursorPos <= 2) + else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && sPokedexView->menuCursorPos <= 2) { - gUnknown_02039B4C->menuCursorPos++; + sPokedexView->menuCursorPos++; PlaySE(SE_SELECT); } } @@ -1514,10 +1511,10 @@ void sub_80BBA78(u8 taskId) void sub_80BBBF4(u8 taskId) { - if (gSprites[gUnknown_02039B4C->selectedMonSpriteId].pos1.x == 48 && gSprites[gUnknown_02039B4C->selectedMonSpriteId].pos1.y == 56) + if (gSprites[sPokedexView->selectedMonSpriteId].pos1.x == 48 && gSprites[sPokedexView->selectedMonSpriteId].pos1.y == 56) { - gUnknown_02039B4C->unk64B = gUnknown_02039B4C->unk64A; - gTasks[taskId].data[0] = sub_80BE91C(&gUnknown_02039B4C->unk0[gUnknown_02039B4C->selectedPokemon], gUnknown_02039B4C->selectedMonSpriteId); + sPokedexView->unk64B = sPokedexView->unk64A; + gTasks[taskId].data[0] = sub_80BE91C(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], sPokedexView->selectedMonSpriteId); gTasks[taskId].func = sub_80BBC74; } } @@ -1526,13 +1523,13 @@ void sub_80BBC74(u8 taskId) { if (gTasks[gTasks[taskId].data[0]].isActive) { - if (gUnknown_02039B4C->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && sub_80BD930()) - sub_80BE9F8(&gUnknown_02039B4C->unk0[gUnknown_02039B4C->selectedPokemon], gTasks[taskId].data[0]); + if (sPokedexView->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && sub_80BD930()) + sub_80BE9F8(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], gTasks[taskId].data[0]); } else { - gUnknown_02039B50 = gUnknown_02039B4C->selectedPokemon; - gUnknown_02039B52 = gUnknown_02039B4C->unk62C; + gUnknown_02039B50 = sPokedexView->selectedPokemon; + gUnknown_02039B52 = sPokedexView->unk62C; gTasks[taskId].func = sub_80BB78C; } } @@ -1542,20 +1539,20 @@ void sub_80BBD1C(u8 taskId) if (!gTasks[gTasks[taskId].data[0]].isActive) { sub_80BDA40(); - if (gUnknown_02039B4C->unk64E != 0) + if (sPokedexView->unk64E != 0) { - gUnknown_02039B4C->selectedPokemon = 0; - gUnknown_02039B4C->unk62C = 0x40; + sPokedexView->selectedPokemon = 0; + sPokedexView->unk62C = 0x40; gTasks[taskId].func = sub_80BBE70; } else { - gUnknown_02039B4C->unk62C = gUnknown_02039B4C->unk62A; - gUnknown_02039B4C->selectedPokemon = gUnknown_02039B4C->unk610; - gUnknown_02039B4C->dexMode = gUnknown_02039B4C->unk614; + sPokedexView->unk62C = sPokedexView->unk62A; + sPokedexView->selectedPokemon = sPokedexView->unk610; + sPokedexView->dexMode = sPokedexView->unk614; if (!IsNationalPokedexEnabled()) - gUnknown_02039B4C->dexMode = DEX_MODE_HOENN; - gUnknown_02039B4C->dexOrder = gUnknown_02039B4C->unk618; + sPokedexView->dexMode = DEX_MODE_HOENN; + sPokedexView->dexOrder = sPokedexView->unk618; gTasks[taskId].func = sub_80BB78C; } } @@ -1565,43 +1562,43 @@ void sub_80BBDE8(u8 taskId) { if (!gPaletteFade.active) { - gSaveBlock2Ptr->pokedex.unknown1 = gUnknown_02039B4C->dexMode; + gSaveBlock2Ptr->pokedex.mode = sPokedexView->dexMode; if (!IsNationalPokedexEnabled()) - gSaveBlock2Ptr->pokedex.unknown1 = DEX_MODE_HOENN; - gSaveBlock2Ptr->pokedex.order = gUnknown_02039B4C->dexOrder; + gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN; + gSaveBlock2Ptr->pokedex.order = sPokedexView->dexOrder; sub_80BDA40(); sub_80BC890(); DestroyTask(taskId); SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); - Free(gUnknown_02039B4C); + Free(sPokedexView); } } void sub_80BBE70(u8 taskId) { - gUnknown_02039B4C->unk64C_1 = TRUE; + sPokedexView->unk64C_1 = TRUE; if (sub_80BC514(3)) gTasks[taskId].func = sub_80BBEB8; } void sub_80BBEB8(u8 taskId) { - SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_02039B4C->menuY); + SetGpuReg(REG_OFFSET_BG0VOFS, sPokedexView->menuY); - if (gUnknown_02039B4C->menuY) + if (sPokedexView->menuY) { - gUnknown_02039B4C->menuY -= 8; + sPokedexView->menuY -= 8; } else { - if ((gMain.newKeys & A_BUTTON) && gUnknown_02039B4C->unk0[gUnknown_02039B4C->selectedPokemon].seen) + if ((gMain.newKeys & A_BUTTON) && sPokedexView->pokedexList[sPokedexView->selectedPokemon].seen) { u32 a; sub_80BD8D0(); - a = (1 << (gSprites[gUnknown_02039B4C->selectedMonSpriteId].oam.paletteNum + 16)); - gSprites[gUnknown_02039B4C->selectedMonSpriteId].callback = sub_80BE470; + a = (1 << (gSprites[sPokedexView->selectedMonSpriteId].oam.paletteNum + 16)); + gSprites[sPokedexView->selectedMonSpriteId].callback = sub_80BE470; BeginNormalPaletteFade(~a, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = sub_80BC2D4; PlaySE(SE_PIN); @@ -1609,17 +1606,17 @@ void sub_80BBEB8(u8 taskId) } else if (gMain.newKeys & START_BUTTON) { - gUnknown_02039B4C->menuY = 0; - gUnknown_02039B4C->menuIsOpen = 1; - gUnknown_02039B4C->menuCursorPos = 0; - gTasks[taskId].func = sub_80BC0F8; + sPokedexView->menuY = 0; + sPokedexView->menuIsOpen = 1; + sPokedexView->menuCursorPos = 0; + gTasks[taskId].func = HandleButtonPress_StartMenu; PlaySE(SE_SELECT); } else if (gMain.newKeys & SELECT_BUTTON) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].data[0] = sub_80C1258(); - gUnknown_02039B4C->unk64E = 0; + sPokedexView->unk64E = 0; gTasks[taskId].func = sub_80BBD1C; PlaySE(SE_PC_LOGIN); sub_80BC890(); @@ -1633,8 +1630,8 @@ void sub_80BBEB8(u8 taskId) else { //Handle D-pad - gUnknown_02039B4C->selectedPokemon = sub_80BD69C(gUnknown_02039B4C->selectedPokemon, 0xE); - if (gUnknown_02039B4C->unk62E) + sPokedexView->selectedPokemon = sub_80BD69C(sPokedexView->selectedPokemon, 0xE); + if (sPokedexView->unk62E) gTasks[taskId].func = sub_80BC0A8; } } @@ -1642,40 +1639,40 @@ void sub_80BBEB8(u8 taskId) void sub_80BC0A8(u8 taskId) { - if (sub_80BD404(gUnknown_02039B4C->unk62F, gUnknown_02039B4C->unk634, gUnknown_02039B4C->unk636)) + if (sub_80BD404(sPokedexView->unk62F, sPokedexView->unk634, sPokedexView->unk636)) gTasks[taskId].func = sub_80BBEB8; } -void sub_80BC0F8(u8 taskId) +static void HandleButtonPress_StartMenu(u8 taskId) { - SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_02039B4C->menuY); + SetGpuReg(REG_OFFSET_BG0VOFS, sPokedexView->menuY); - if (gUnknown_02039B4C->menuY != 96) + if (sPokedexView->menuY != 96) { - gUnknown_02039B4C->menuY += 8; + sPokedexView->menuY += 8; } else { if (gMain.newKeys & A_BUTTON) { - switch (gUnknown_02039B4C->menuCursorPos) + switch (sPokedexView->menuCursorPos) { case 0: //BACK TO LIST default: gMain.newKeys |= START_BUTTON; break; case 1: //LIST TOP - gUnknown_02039B4C->selectedPokemon = 0; - gUnknown_02039B4C->unk62C = 0x40; + sPokedexView->selectedPokemon = 0; + sPokedexView->unk62C = 0x40; sub_80BDA40(); - sub_80BD2B4(gUnknown_02039B4C->selectedPokemon, 0xE); + CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; break; case 2: //LIST BOTTOM - gUnknown_02039B4C->selectedPokemon = gUnknown_02039B4C->pokemonListCount - 1; - gUnknown_02039B4C->unk62C = gUnknown_02039B4C->pokemonListCount * 16 + 0x30; + sPokedexView->selectedPokemon = sPokedexView->pokemonListCount - 1; + sPokedexView->unk62C = sPokedexView->pokemonListCount * 16 + 0x30; sub_80BDA40(); - sub_80BD2B4(gUnknown_02039B4C->selectedPokemon, 0xE); + CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; break; case 3: //BACK TO POKEDEX @@ -1694,18 +1691,18 @@ void sub_80BC0F8(u8 taskId) //Exit menu when Start or B is pressed if (gMain.newKeys & (START_BUTTON | B_BUTTON)) { - gUnknown_02039B4C->menuIsOpen = 0; + sPokedexView->menuIsOpen = 0; gTasks[taskId].func = sub_80BBEB8; PlaySE(SE_SELECT); } - else if ((gMain.newAndRepeatedKeys & DPAD_UP) && gUnknown_02039B4C->menuCursorPos) + else if ((gMain.newAndRepeatedKeys & DPAD_UP) && sPokedexView->menuCursorPos) { - gUnknown_02039B4C->menuCursorPos--; + sPokedexView->menuCursorPos--; PlaySE(SE_SELECT); } - else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && gUnknown_02039B4C->menuCursorPos <= 3) + else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && sPokedexView->menuCursorPos <= 3) { - gUnknown_02039B4C->menuCursorPos++; + sPokedexView->menuCursorPos++; PlaySE(SE_SELECT); } } @@ -1713,11 +1710,11 @@ void sub_80BC0F8(u8 taskId) void sub_80BC2D4(u8 taskId) { - if (gSprites[gUnknown_02039B4C->selectedMonSpriteId].pos1.x == 48 && gSprites[gUnknown_02039B4C->selectedMonSpriteId].pos1.y == 56) + if (gSprites[sPokedexView->selectedMonSpriteId].pos1.x == 48 && gSprites[sPokedexView->selectedMonSpriteId].pos1.y == 56) { - gUnknown_02039B4C->unk64B = gUnknown_02039B4C->unk64A; - gTasks[taskId].data[0] = sub_80BE91C(&gUnknown_02039B4C->unk0[gUnknown_02039B4C->selectedPokemon], gUnknown_02039B4C->selectedMonSpriteId); - gUnknown_02039B4C->selectedMonSpriteId = -1; + sPokedexView->unk64B = sPokedexView->unk64A; + gTasks[taskId].data[0] = sub_80BE91C(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], sPokedexView->selectedMonSpriteId); + sPokedexView->selectedMonSpriteId = -1; gTasks[taskId].func = sub_80BC360; } } @@ -1726,8 +1723,8 @@ void sub_80BC360(u8 taskId) { if (gTasks[gTasks[taskId].data[0]].isActive) { - if (gUnknown_02039B4C->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && sub_80BD930()) - sub_80BE9F8(&gUnknown_02039B4C->unk0[gUnknown_02039B4C->selectedPokemon], gTasks[taskId].data[0]); + if (sPokedexView->unk64A == 1 && !sub_80BE9C4(gTasks[taskId].data[0]) && sub_80BD930()) + sub_80BE9F8(&sPokedexView->pokedexList[sPokedexView->selectedPokemon], gTasks[taskId].data[0]); } else { @@ -1739,12 +1736,12 @@ void sub_80BC3DC(u8 taskId) { if (!gPaletteFade.active) { - gUnknown_02039B4C->unk62C = gUnknown_02039B4C->unk62A; - gUnknown_02039B4C->selectedPokemon = gUnknown_02039B4C->unk610; - gUnknown_02039B4C->dexMode = gUnknown_02039B4C->unk614; + sPokedexView->unk62C = sPokedexView->unk62A; + sPokedexView->selectedPokemon = sPokedexView->unk610; + sPokedexView->dexMode = sPokedexView->unk614; if (!IsNationalPokedexEnabled()) - gUnknown_02039B4C->dexMode = DEX_MODE_HOENN; - gUnknown_02039B4C->dexOrder = gUnknown_02039B4C->unk618; + sPokedexView->dexMode = DEX_MODE_HOENN; + sPokedexView->dexOrder = sPokedexView->unk618; gTasks[taskId].func = sub_80BB78C; sub_80BDA40(); sub_80BC890(); @@ -1755,12 +1752,12 @@ void sub_80BC47C(u8 taskId) { if (!gPaletteFade.active) { - gUnknown_02039B4C->unk62C = gUnknown_02039B4C->unk62A; - gUnknown_02039B4C->selectedPokemon = gUnknown_02039B4C->unk610; - gUnknown_02039B4C->dexMode = gUnknown_02039B4C->unk614; + sPokedexView->unk62C = sPokedexView->unk62A; + sPokedexView->selectedPokemon = sPokedexView->unk610; + sPokedexView->dexMode = sPokedexView->unk614; if (!IsNationalPokedexEnabled()) - gUnknown_02039B4C->dexMode = DEX_MODE_HOENN; - gUnknown_02039B4C->dexOrder = gUnknown_02039B4C->unk618; + sPokedexView->dexMode = DEX_MODE_HOENN; + sPokedexView->dexOrder = sPokedexView->unk618; gTasks[taskId].func = sub_80BBDE8; } } @@ -1774,9 +1771,9 @@ bool8 sub_80BC514(u8 a) if (gPaletteFade.active) return 0; SetVBlankCallback(NULL); - gUnknown_02039B4C->unk64A = a; + sPokedexView->unk64A = a; sub_80C09B0(0); - SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D); + SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gBgTemplates_0855D298, 4); SetBgTilemapBuffer(3, AllocZeroed(0x800)); @@ -1784,19 +1781,19 @@ bool8 sub_80BC514(u8 a) SetBgTilemapBuffer(1, AllocZeroed(0x800)); SetBgTilemapBuffer(0, AllocZeroed(0x800)); DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); - CopyToBgTilemapBuffer(1, gUnknown_08DC2C5C, 0, 0); - CopyToBgTilemapBuffer(3, gUnknown_08DC2DAC, 0, 0); + CopyToBgTilemapBuffer(1, gPokedexTilemap_Main, 0, 0); + CopyToBgTilemapBuffer(3, gPokedexTilemap_MainUnderlay, 0, 0); if (a == 0) - CopyToBgTilemapBuffer(0, gUnknown_08DC2A08, 0, 0x280); + CopyToBgTilemapBuffer(0, gPokedexTilemap_StartMenu1, 0, 0x280); else - CopyToBgTilemapBuffer(0, gUnknown_08DC2B1C, 0, 0x280); + CopyToBgTilemapBuffer(0, gPokedexTilemap_StartMenu2, 0, 0x280); ResetPaletteFade(); if (a == 0) - gUnknown_02039B4C->unk64C_1 = FALSE; + sPokedexView->unk64C_1 = FALSE; else - gUnknown_02039B4C->unk64C_1 = TRUE; - sub_80BC844(gUnknown_02039B4C->unk64C_1); - InitWindows(sWindowTemplates_0855D2A8); + sPokedexView->unk64C_1 = TRUE; + LoadPokedexBgPalette(sPokedexView->unk64C_1); + InitWindows(sPokemonList_WindowTemplate); DeactivateAllTextPrinters(); PutWindowTilemap(0); CopyWindowToVram(0, 3); @@ -1806,9 +1803,9 @@ bool8 sub_80BC514(u8 a) ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LoadCompressedObjectPic(&gSpriteSheets_0855D26C[0]); - LoadSpritePalettes(gSpritePalettes_0855D26C); - sub_80BDB7C(a); + LoadCompressedObjectPic(&sInterfaceSpriteSheet[0]); + LoadSpritePalettes(sInterfaceSpritePalette); + CreateInterfaceSprites(a); gMain.state++; break; case 2: @@ -1816,10 +1813,10 @@ bool8 sub_80BC514(u8 a) break; case 3: if (a == 0) - sub_80BC8D4(gUnknown_02039B4C->dexMode, gUnknown_02039B4C->dexOrder); - sub_80BD2B4(gUnknown_02039B4C->selectedPokemon, 0xE); - gUnknown_02039B4C->menuIsOpen = 0; - gUnknown_02039B4C->menuY = 0; + sub_80BC8D4(sPokedexView->dexMode, sPokedexView->dexOrder); + CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); + sPokedexView->menuIsOpen = 0; + sPokedexView->menuY = 0; CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); @@ -1859,7 +1856,7 @@ bool8 sub_80BC514(u8 a) return FALSE; } -void sub_80BC844(u8 a) +static void LoadPokedexBgPalette(u8 a) { if (a == 1) LoadPalette(gPokedexHoennBg_Pal + 1, 1, 0xBE); @@ -1892,27 +1889,30 @@ void sub_80BC890(void) void sub_80BC8D4(u8 dexMode, u8 sortMode) { u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever. +#define temp_dexCount vars[0] +#define temp_isHoennDex vars[1] +#define temp_dexNum vars[2] s16 i; - gUnknown_02039B4C->pokemonListCount = 0; + sPokedexView->pokemonListCount = 0; switch (dexMode) { default: case DEX_MODE_HOENN: - vars[0] = HOENN_DEX_COUNT; - vars[1] = 1; + temp_dexCount = HOENN_DEX_COUNT; + temp_isHoennDex = TRUE; break; case DEX_MODE_NATIONAL: if (IsNationalPokedexEnabled()) { - vars[0] = NATIONAL_DEX_COUNT; - vars[1] = 0; + temp_dexCount = NATIONAL_DEX_COUNT; + temp_isHoennDex = FALSE; } else { - vars[0] = HOENN_DEX_COUNT; - vars[1] = 1; + temp_dexCount = HOENN_DEX_COUNT; + temp_isHoennDex = TRUE; } break; } @@ -1920,16 +1920,16 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) switch (sortMode) { case 0: - if (vars[1]) + if (temp_isHoennDex) { - for (i = 0; i < vars[0]; i++) + for (i = 0; i < temp_dexCount; i++) { - vars[2] = HoennToNationalOrder(i + 1); - gUnknown_02039B4C->unk0[i].dexNum = vars[2]; - gUnknown_02039B4C->unk0[i].seen = GetSetPokedexFlag(vars[2], 0); - gUnknown_02039B4C->unk0[i].owned = GetSetPokedexFlag(vars[2], 1); - if (gUnknown_02039B4C->unk0[i].seen) - gUnknown_02039B4C->pokemonListCount = i + 1; + temp_dexNum = HoennToNationalOrder(i + 1); + sPokedexView->pokedexList[i].dexNum = temp_dexNum; + sPokedexView->pokedexList[i].seen = GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN); + sPokedexView->pokedexList[i].owned = GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT); + if (sPokedexView->pokedexList[i].seen) + sPokedexView->pokemonListCount = i + 1; } } else @@ -1938,19 +1938,19 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) s16 r5; r10 = r5 = i = 0; - for (i = 0; i < vars[0]; i++) + for (i = 0; i < temp_dexCount; i++) { - vars[2] = i + 1; - if (GetSetPokedexFlag(vars[2], 0)) + temp_dexNum = i + 1; + if (GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN)) r10 = 1; if (r10) { asm(""); //Needed to match for some reason - gUnknown_02039B4C->unk0[r5].dexNum = vars[2]; - gUnknown_02039B4C->unk0[r5].seen = GetSetPokedexFlag(vars[2], 0); - gUnknown_02039B4C->unk0[r5].owned = GetSetPokedexFlag(vars[2], 1); - if (gUnknown_02039B4C->unk0[r5].seen) - gUnknown_02039B4C->pokemonListCount = r5 + 1; + sPokedexView->pokedexList[r5].dexNum = temp_dexNum; + sPokedexView->pokedexList[r5].seen = GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN); + sPokedexView->pokedexList[r5].owned = GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT); + if (sPokedexView->pokedexList[r5].seen) + sPokedexView->pokemonListCount = r5 + 1; r5++; } } @@ -1959,84 +1959,84 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) case 1: for (i = 0; i < POKEMON_SLOTS_NUMBER - 1; i++) { - vars[2] = gPokedexOrder_Alphabetical[i]; + temp_dexNum = gPokedexOrder_Alphabetical[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 0)) + if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN)) { - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].dexNum = vars[2]; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].seen = 1; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].owned = GetSetPokedexFlag(vars[2], 1); - gUnknown_02039B4C->pokemonListCount++; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT); + sPokedexView->pokemonListCount++; } } break; case 2: for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--) { - vars[2] = gPokedexOrder_Weight[i]; + temp_dexNum = gPokedexOrder_Weight[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1)) + if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT)) { - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].dexNum = vars[2]; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].seen = 1; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].owned = 1; - gUnknown_02039B4C->pokemonListCount++; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE; + sPokedexView->pokemonListCount++; } } break; case 3: for (i = 0; i < NATIONAL_DEX_COUNT; i++) { - vars[2] = gPokedexOrder_Weight[i]; + temp_dexNum = gPokedexOrder_Weight[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1)) + if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT)) { - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].dexNum = vars[2]; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].seen = 1; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].owned = 1; - gUnknown_02039B4C->pokemonListCount++; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE; + sPokedexView->pokemonListCount++; } } break; case 4: - for (i = NATIONAL_DEX_COUNT - 1; i >=0; i--) + for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--) { - vars[2] = gPokedexOrder_Height[i]; + temp_dexNum = gPokedexOrder_Height[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1)) + if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT)) { - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].dexNum = vars[2]; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].seen = 1; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].owned = 1; - gUnknown_02039B4C->pokemonListCount++; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE; + sPokedexView->pokemonListCount++; } } break; case 5: for (i = 0; i < NATIONAL_DEX_COUNT; i++) { - vars[2] = gPokedexOrder_Height[i]; + temp_dexNum = gPokedexOrder_Height[i]; - if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1)) + if (NationalToHoennOrder(temp_dexNum) <= temp_dexCount && GetSetPokedexFlag(temp_dexNum, FLAG_GET_CAUGHT)) { - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].dexNum = vars[2]; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].seen = 1; - gUnknown_02039B4C->unk0[gUnknown_02039B4C->pokemonListCount].owned = 1; - gUnknown_02039B4C->pokemonListCount++; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE; + sPokedexView->pokedexList[sPokedexView->pokemonListCount].owned = TRUE; + sPokedexView->pokemonListCount++; } } break; } - for (i = gUnknown_02039B4C->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) + for (i = sPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) { - gUnknown_02039B4C->unk0[i].dexNum |= 0xFFFF; - gUnknown_02039B4C->unk0[i].seen = 0; - gUnknown_02039B4C->unk0[i].owned = 0; + sPokedexView->pokedexList[i].dexNum |= 0xFFFF; + sPokedexView->pokedexList[i].seen = FALSE; + sPokedexView->pokedexList[i].owned = FALSE; } } -void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) +static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) { u8 color[3]; @@ -2046,86 +2046,86 @@ void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str); } -void sub_80BCE84(u8 a, u16 b, u16 c) +static void CreateMonListEntry(u8 direction, u16 b, u16 c) { s16 _b; u16 i; u16 r2; - switch (a) + switch (direction) { - case 0: + case 0: // Initial default: _b = b - 5; for (i = 0; i <= 10; i++) { - if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gUnknown_02039B4C->unk0[_b].dexNum == 0xFFFF) + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[_b].dexNum == 0xFFFF) { sub_80BD28C(0x11, i * 2, c); } else { sub_80BD28C(0x11, i * 2, c); - if (gUnknown_02039B4C->unk0[_b].seen) + if (sPokedexView->pokedexList[_b].seen) { - sub_80BD154(_b, 0x12, i * 2, c); - sub_80BD1F4(gUnknown_02039B4C->unk0[_b].owned, 0x11, i * 2, c); - sub_80BD23C(gUnknown_02039B4C->unk0[_b].dexNum, 0x16, i * 2); + CreateMonDexNum(_b, 0x12, i * 2, c); + CreateCaughtBall(sPokedexView->pokedexList[_b].owned, 0x11, i * 2, c); + CreateMonName(sPokedexView->pokedexList[_b].dexNum, 0x16, i * 2); } else { - sub_80BD154(_b, 0x12, i * 2, c); - sub_80BD1F4(0, 0x11, i * 2, c); - sub_80BD23C(0, 0x16, i * 2); + CreateMonDexNum(_b, 0x12, i * 2, c); + CreateCaughtBall(0, 0x11, i * 2, c); + CreateMonName(0, 0x16, i * 2); } } _b++; } break; - case 1: + case 1: // Up _b = b - 5; - if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gUnknown_02039B4C->unk0[_b].dexNum == 0xFFFF) + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[_b].dexNum == 0xFFFF) { - sub_80BD28C(0x11, gUnknown_02039B4C->unk630 * 2, c); + sub_80BD28C(0x11, sPokedexView->unk630 * 2, c); } else { - sub_80BD28C(0x11, gUnknown_02039B4C->unk630 * 2, c); - if (gUnknown_02039B4C->unk0[_b].seen) + sub_80BD28C(0x11, sPokedexView->unk630 * 2, c); + if (sPokedexView->pokedexList[_b].seen) { - sub_80BD154(_b, 0x12, gUnknown_02039B4C->unk630 * 2, c); - sub_80BD1F4(gUnknown_02039B4C->unk0[_b].owned, 0x11, gUnknown_02039B4C->unk630 * 2, c); - sub_80BD23C(gUnknown_02039B4C->unk0[_b].dexNum, 0x16, gUnknown_02039B4C->unk630 * 2); + CreateMonDexNum(_b, 0x12, sPokedexView->unk630 * 2, c); + CreateCaughtBall(sPokedexView->pokedexList[_b].owned, 0x11, sPokedexView->unk630 * 2, c); + CreateMonName(sPokedexView->pokedexList[_b].dexNum, 0x16, sPokedexView->unk630 * 2); } else { - sub_80BD154(_b, 0x12, gUnknown_02039B4C->unk630 * 2, c); - sub_80BD1F4(0, 0x11, gUnknown_02039B4C->unk630 * 2, c); - sub_80BD23C(0, 0x16, gUnknown_02039B4C->unk630 * 2); + CreateMonDexNum(_b, 0x12, sPokedexView->unk630 * 2, c); + CreateCaughtBall(0, 0x11, sPokedexView->unk630 * 2, c); + CreateMonName(0, 0x16, sPokedexView->unk630 * 2); } } break; - case 2: + case 2: // Down _b = b + 5; - r2 = gUnknown_02039B4C->unk630 + 10; + r2 = sPokedexView->unk630 + 10; if (r2 > 15) r2 -= 16; - if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gUnknown_02039B4C->unk0[_b].dexNum == 0xFFFF) + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[_b].dexNum == 0xFFFF) sub_80BD28C(0x11, r2 * 2, c); else { sub_80BD28C(0x11, r2 * 2, c); - if (gUnknown_02039B4C->unk0[_b].seen) + if (sPokedexView->pokedexList[_b].seen) { - sub_80BD154(_b, 0x12, r2 * 2, c); - sub_80BD1F4(gUnknown_02039B4C->unk0[_b].owned, 0x11, r2 * 2, c); - sub_80BD23C(gUnknown_02039B4C->unk0[_b].dexNum, 0x16, r2 * 2); + CreateMonDexNum(_b, 0x12, r2 * 2, c); + CreateCaughtBall(sPokedexView->pokedexList[_b].owned, 0x11, r2 * 2, c); + CreateMonName(sPokedexView->pokedexList[_b].dexNum, 0x16, r2 * 2); } else { - sub_80BD154(_b, 0x12, r2 * 2, c); - sub_80BD1F4(0, 0x11, r2 * 2, c); - sub_80BD23C(0, 0x16, r2 * 2); + CreateMonDexNum(_b, 0x12, r2 * 2, c); + CreateCaughtBall(0, 0x11, r2 * 2, c); + CreateMonName(0, 0x16, r2 * 2); } } break; @@ -2133,22 +2133,22 @@ void sub_80BCE84(u8 a, u16 b, u16 c) CopyWindowToVram(0, 2); } -void sub_80BD154(u16 a, u8 left, u8 top, u16 unused) +static void CreateMonDexNum(u16 a, u8 left, u8 top, u16 unused) { u8 text[6]; u16 r6; - memcpy(text, gUnknown_0855D2B8, 6); - r6 = gUnknown_02039B4C->unk0[a].dexNum; - if (gUnknown_02039B4C->dexMode == DEX_MODE_HOENN) + memcpy(text, sText_No000, 6); + r6 = sPokedexView->pokedexList[a].dexNum; + if (sPokedexView->dexMode == DEX_MODE_HOENN) r6 = NationalToHoennOrder(r6); text[2] = CHAR_0 + r6 / 100; text[3] = CHAR_0 + (r6 % 100) / 10; text[4] = CHAR_0 + (r6 % 100) % 10; - sub_80BCE2C(0, 7, text, left, top); + PrintMonDexNumAndName(0, 7, text, left, top); } -void sub_80BD1F4(u16 a, u8 x, u8 y, u16 unused) +static void CreateCaughtBall(u16 a, u8 x, u8 y, u16 unused) { if (a) BlitBitmapToWindow(0, gUnknown_0855D2BE, x * 8, y * 8, 8, 16); @@ -2156,7 +2156,7 @@ void sub_80BD1F4(u16 a, u8 x, u8 y, u16 unused) FillWindowPixelRect(0, 0, x * 8, y * 8, 8, 16); } -u8 sub_80BD23C(u16 num, u8 left, u8 top) +static u8 CreateMonName(u16 num, u8 left, u8 top) { const u8* str; @@ -2165,7 +2165,7 @@ u8 sub_80BD23C(u16 num, u8 left, u8 top) str = gSpeciesNames[num]; else str = sText_TenDashes; - sub_80BCE2C(0, 7, str, left, top); + PrintMonDexNumAndName(0, 7, str, left, top); return StringLength(str); } @@ -2174,7 +2174,7 @@ void sub_80BD28C(u8 x, u8 y, u16 unused) FillWindowPixelRect(0, 0, x * 8, y * 8, 0x60, 16); } -void sub_80BD2B4(u16 a, u16 b) +static void CreateInitialPokemonSprites(u16 selectedMon, u16 b) { u8 i; u16 unk; @@ -2183,10 +2183,10 @@ void sub_80BD2B4(u16 a, u16 b) gPaletteFade.bufferTransferDisabled = TRUE; for (i = 0; i < 4; i++) - gUnknown_02039B4C->unk61E[i] = 0xFFFF; - gUnknown_02039B4C->selectedMonSpriteId = 0xFFFF; + sPokedexView->unk61E[i] = 0xFFFF; + sPokedexView->selectedMonSpriteId = 0xFFFF; - unk = sub_80BDA8C(a - 1); + unk = GetPokemonSpriteToDisplay(selectedMon - 1); if (unk != 0xFFFF) { spriteId = sub_80BDACC(unk, 0x60, 0x50); @@ -2194,7 +2194,7 @@ void sub_80BD2B4(u16 a, u16 b) gSprites[spriteId].data[5] = -32; } - unk = sub_80BDA8C(a); + unk = GetPokemonSpriteToDisplay(selectedMon); if (unk != 0xFFFF) { spriteId = sub_80BDACC(unk, 0x60, 0x50); @@ -2202,7 +2202,7 @@ void sub_80BD2B4(u16 a, u16 b) gSprites[spriteId].data[5] = 0; } - unk = sub_80BDA8C(a + 1); + unk = GetPokemonSpriteToDisplay(selectedMon + 1); if (unk != 0xFFFF) { spriteId = sub_80BDACC(unk, 0x60, 0x50); @@ -2210,11 +2210,11 @@ void sub_80BD2B4(u16 a, u16 b) gSprites[spriteId].data[5] = 32; } - sub_80BCE84(0, a, b); - SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D); + CreateMonListEntry(0, selectedMon, b); + SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset); - gUnknown_02039B4C->unk630 = 0; - gUnknown_02039B4C->unk632 = 0; + sPokedexView->unk630 = 0; + sPokedexView->unk632 = 0; gPaletteFade.bufferTransferDisabled = FALSE; } @@ -2224,79 +2224,79 @@ bool8 sub_80BD404(u8 a, u8 b, u8 c) u16 i; u8 foo; - if (gUnknown_02039B4C->unk62E) + if (sPokedexView->unk62E) { - gUnknown_02039B4C->unk62E--; + sPokedexView->unk62E--; switch (a) { case 1: for (i = 0; i < 4; i++) { - if (gUnknown_02039B4C->unk61E[i] != 0xFFFF) - gSprites[gUnknown_02039B4C->unk61E[i]].data[5] += b; + if (sPokedexView->unk61E[i] != 0xFFFF) + gSprites[sPokedexView->unk61E[i]].data[5] += b; } - foo = 16 * (c - gUnknown_02039B4C->unk62E) / c; - SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D + gUnknown_02039B4C->unk632 * 16 - foo); - gUnknown_02039B4C->unk62C -= gUnknown_02039B4C->unk628; + foo = 16 * (c - sPokedexView->unk62E) / c; + SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk632 * 16 - foo); + sPokedexView->unk62C -= sPokedexView->unk628; break; case 2: for (i = 0; i < 4; i++) { - if (gUnknown_02039B4C->unk61E[i] != 0xFFFF) - gSprites[gUnknown_02039B4C->unk61E[i]].data[5] -= b; + if (sPokedexView->unk61E[i] != 0xFFFF) + gSprites[sPokedexView->unk61E[i]].data[5] -= b; } - foo = 16 * (c - gUnknown_02039B4C->unk62E) / c; - SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D + gUnknown_02039B4C->unk632 * 16 + foo); - gUnknown_02039B4C->unk62C += gUnknown_02039B4C->unk628; + foo = 16 * (c - sPokedexView->unk62E) / c; + SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk632 * 16 + foo); + sPokedexView->unk62C += sPokedexView->unk628; break; } return FALSE; } else { - SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D + gUnknown_02039B4C->unk630 * 16); + SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk630 * 16); return TRUE; } } -void sub_80BD5A8(u8 a, u16 b) +static void CreateNewPokemonSprite(u8 direction, u16 selectedMon) { u16 unk; u8 spriteId; - gUnknown_02039B4C->unk632 = gUnknown_02039B4C->unk630; - switch (a) + sPokedexView->unk632 = sPokedexView->unk630; + switch (direction) { - case 1: - unk = sub_80BDA8C(b - 1); + case 1: // up + unk = GetPokemonSpriteToDisplay(selectedMon - 1); if (unk != 0xFFFF) { spriteId = sub_80BDACC(unk, 0x60, 0x50); gSprites[spriteId].callback = sub_80BE4E0; gSprites[spriteId].data[5] = -64; } - if (gUnknown_02039B4C->unk630 > 0) - gUnknown_02039B4C->unk630--; + if (sPokedexView->unk630 > 0) + sPokedexView->unk630--; else - gUnknown_02039B4C->unk630 = 15; + sPokedexView->unk630 = 15; break; - case 2: - unk = sub_80BDA8C(b + 1); + case 2: // down + unk = GetPokemonSpriteToDisplay(selectedMon + 1); if (unk != 0xFFFF) { spriteId = sub_80BDACC(unk, 0x60, 0x50); gSprites[spriteId].callback = sub_80BE4E0; gSprites[spriteId].data[5] = 0x40; } - if (gUnknown_02039B4C->unk630 <= 0xE) - gUnknown_02039B4C->unk630++; + if (sPokedexView->unk630 <= 0xE) + sPokedexView->unk630++; else - gUnknown_02039B4C->unk630 = 0; + sPokedexView->unk630 = 0; break; } } -u16 sub_80BD69C(u16 a, u16 b) +u16 sub_80BD69C(u16 selectedMon, u16 b) { u8 r3; u8 r5; @@ -2304,61 +2304,61 @@ u16 sub_80BD69C(u16 a, u16 b) u16 r6; u8 r10 = 0; - if ((gMain.heldKeys & DPAD_UP) && (a > 0)) + if ((gMain.heldKeys & DPAD_UP) && (selectedMon > 0)) { r10 = 1; - a = sub_80C0E0C(1, a, 0, gUnknown_02039B4C->pokemonListCount - 1); - sub_80BD5A8(1, a); - sub_80BCE84(1, a, b); + selectedMon = sub_80C0E0C(1, selectedMon, 0, sPokedexView->pokemonListCount - 1); + CreateNewPokemonSprite(1, selectedMon); + CreateMonListEntry(1, selectedMon, b); PlaySE(SE_Z_SCROLL); } - else if ((gMain.heldKeys & DPAD_DOWN) && (a < gUnknown_02039B4C->pokemonListCount - 1)) + else if ((gMain.heldKeys & DPAD_DOWN) && (selectedMon < sPokedexView->pokemonListCount - 1)) { r10 = 2; - a = sub_80C0E0C(0, a, 0, gUnknown_02039B4C->pokemonListCount - 1); - sub_80BD5A8(2, a); - sub_80BCE84(2, a, b); + selectedMon = sub_80C0E0C(0, selectedMon, 0, sPokedexView->pokemonListCount - 1); + CreateNewPokemonSprite(2, selectedMon); + CreateMonListEntry(2, selectedMon, b); PlaySE(SE_Z_SCROLL); } - else if ((gMain.newKeys & DPAD_LEFT) && (a > 0)) + else if ((gMain.newKeys & DPAD_LEFT) && (selectedMon > 0)) { - r6 = a; + r6 = selectedMon; for (i = 0; i < 7; i++) - a = sub_80C0E0C(1, a, 0, gUnknown_02039B4C->pokemonListCount - 1); - gUnknown_02039B4C->unk62C += 16 * (a - r6); + selectedMon = sub_80C0E0C(1, selectedMon, 0, sPokedexView->pokemonListCount - 1); + sPokedexView->unk62C += 16 * (selectedMon - r6); sub_80BDA40(); - sub_80BD2B4(a, 0xE); + CreateInitialPokemonSprites(selectedMon, 0xE); PlaySE(SE_Z_PAGE); } - else if ((gMain.newKeys & DPAD_RIGHT) && (a < gUnknown_02039B4C->pokemonListCount - 1)) + else if ((gMain.newKeys & DPAD_RIGHT) && (selectedMon < sPokedexView->pokemonListCount - 1)) { - r6 = a; + r6 = selectedMon; for (i = 0; i < 7; i++) - a = sub_80C0E0C(0, a, 0, gUnknown_02039B4C->pokemonListCount - 1); - gUnknown_02039B4C->unk62C += (a - r6) * 16; + selectedMon = sub_80C0E0C(0, selectedMon, 0, sPokedexView->pokemonListCount - 1); + sPokedexView->unk62C += (selectedMon - r6) * 16; sub_80BDA40(); - sub_80BD2B4(a, 0xE); + CreateInitialPokemonSprites(selectedMon, 0xE); PlaySE(SE_Z_PAGE); } if (r10 == 0) { - gUnknown_02039B4C->unk638 = 0; - return a; + sPokedexView->unk638 = 0; + return selectedMon; } - r5 = gUnknown_0855D28C[gUnknown_02039B4C->unk638 / 4]; - r3 = gUnknown_0855D291[gUnknown_02039B4C->unk638 / 4]; - gUnknown_02039B4C->unk62E = r3; - gUnknown_02039B4C->unk636 = r3; - gUnknown_02039B4C->unk634 = r5; - gUnknown_02039B4C->unk62F = r10; - gUnknown_02039B4C->unk628 = r5 / 2; - sub_80BD404(gUnknown_02039B4C->unk62F, gUnknown_02039B4C->unk634, gUnknown_02039B4C->unk636); - if (gUnknown_02039B4C->unk638 <= 0xB) - gUnknown_02039B4C->unk638++; - return a; + r5 = gUnknown_0855D28C[sPokedexView->unk638 / 4]; + r3 = gUnknown_0855D291[sPokedexView->unk638 / 4]; + sPokedexView->unk62E = r3; + sPokedexView->unk636 = r3; + sPokedexView->unk634 = r5; + sPokedexView->unk62F = r10; + sPokedexView->unk628 = r5 / 2; + sub_80BD404(sPokedexView->unk62F, sPokedexView->unk634, sPokedexView->unk636); + if (sPokedexView->unk638 <= 0xB) + sPokedexView->unk638++; + return selectedMon; } void sub_80BD8D0(void) @@ -2367,61 +2367,61 @@ void sub_80BD8D0(void) for (i = 0; i < 4; i++) { - u16 spriteId = gUnknown_02039B4C->unk61E[i]; + u16 spriteId = sPokedexView->unk61E[i]; if (gSprites[spriteId].pos2.x == 0 && gSprites[spriteId].pos2.y == 0 && spriteId != 0xFFFF) - gUnknown_02039B4C->selectedMonSpriteId = spriteId; + sPokedexView->selectedMonSpriteId = spriteId; } } u8 sub_80BD930(void) { u16 r2; - u16 r4 = gUnknown_02039B4C->selectedPokemon; + u16 r4 = sPokedexView->selectedPokemon; if ((gMain.newKeys & DPAD_UP) && r4) { r2 = r4; while (r2 != 0) { - r2 = sub_80C0E0C(1, r2, 0, gUnknown_02039B4C->pokemonListCount - 1); + r2 = sub_80C0E0C(1, r2, 0, sPokedexView->pokemonListCount - 1); - if (gUnknown_02039B4C->unk0[r2].seen) + if (sPokedexView->pokedexList[r2].seen) { r4 = r2; break; } } - if (gUnknown_02039B4C->selectedPokemon == r4) + if (sPokedexView->selectedPokemon == r4) return FALSE; else { - gUnknown_02039B4C->selectedPokemon = r4; - gUnknown_02039B4C->unk62C -= 16; + sPokedexView->selectedPokemon = r4; + sPokedexView->unk62C -= 16; return TRUE; } } - else if ((gMain.newKeys & DPAD_DOWN) && r4 < gUnknown_02039B4C->pokemonListCount - 1) + else if ((gMain.newKeys & DPAD_DOWN) && r4 < sPokedexView->pokemonListCount - 1) { r2 = r4; - while (r2 < gUnknown_02039B4C->pokemonListCount - 1) + while (r2 < sPokedexView->pokemonListCount - 1) { - r2 = sub_80C0E0C(0, r2, 0, gUnknown_02039B4C->pokemonListCount - 1); + r2 = sub_80C0E0C(0, r2, 0, sPokedexView->pokemonListCount - 1); - if (gUnknown_02039B4C->unk0[r2].seen) + if (sPokedexView->pokedexList[r2].seen) { r4 = r2; break; } } - if (gUnknown_02039B4C->selectedPokemon == r4) + if (sPokedexView->selectedPokemon == r4) return FALSE; else { - gUnknown_02039B4C->selectedPokemon = r4; - gUnknown_02039B4C->unk62C += 16; + sPokedexView->selectedPokemon = r4; + sPokedexView->unk62C += 16; return TRUE; } } @@ -2434,21 +2434,21 @@ u8 sub_80BDA40(void) for (i = 0; i < 4; i++) { - if (gUnknown_02039B4C->unk61E[i] != 0xFFFF) + if (sPokedexView->unk61E[i] != 0xFFFF) { - FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[i]); - gUnknown_02039B4C->unk61E[i] |= 0xFFFF; + FreeAndDestroyMonPicSprite(sPokedexView->unk61E[i]); + sPokedexView->unk61E[i] |= 0xFFFF; } } return FALSE; } -u16 sub_80BDA8C(u16 a1) +u16 GetPokemonSpriteToDisplay(u16 species) { - if (a1 >= NATIONAL_DEX_COUNT || gUnknown_02039B4C->unk0[a1].dexNum == 0xFFFF) + if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF) return 0xFFFF; - else if (gUnknown_02039B4C->unk0[a1].seen) - return gUnknown_02039B4C->unk0[a1].dexNum; + else if (sPokedexView->pokedexList[species].seen) + return sPokedexView->pokedexList[species].dexNum; else return 0; } @@ -2459,54 +2459,55 @@ u32 sub_80BDACC(u16 num, s16 x, s16 y) for (i = 0; i < 4; i++) { - if (gUnknown_02039B4C->unk61E[i] == 0xFFFF) + if (sPokedexView->unk61E[i] == 0xFFFF) { - u8 spriteId = sub_80C0E9C(num, x, y, i); + u8 spriteId = CreateMonSpriteFromNationalDexNumber(num, x, y, i); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.priority = 3; gSprites[spriteId].data[0] = 0; gSprites[spriteId].data[1] = i; gSprites[spriteId].data[2] = NationalPokedexNumToSpecies(num); - gUnknown_02039B4C->unk61E[i] = spriteId; + sPokedexView->unk61E[i] = spriteId; return spriteId; } } return 0xFFFF; } -void sub_80BDB7C(u8 a) +static void CreateInterfaceSprites(u8 a) { u8 spriteId; u16 r5; - - spriteId = CreateSprite(&gUnknown_0855D1AC, 184, 4, 0); +// Up arrow + spriteId = CreateSprite(&sArrowSpriteTemplate, 184, 4, 0); gSprites[spriteId].data[1] = 0; - - spriteId = CreateSprite(&gUnknown_0855D1AC, 184, 156, 0); +// Down arrow + spriteId = CreateSprite(&sArrowSpriteTemplate, 184, 156, 0); gSprites[spriteId].data[1] = 1; gSprites[spriteId].vFlip = TRUE; - CreateSprite(&gUnknown_0855D194, 230, 20, 0); - CreateSprite(&gUnknown_0855D1C4, 16, 120, 0); - - spriteId = CreateSprite(&gUnknown_0855D1C4, 48, 120, 0); + CreateSprite(&sScrollBarSpriteTemplate, 230, 20, 0); +// Start button + CreateSprite(&sInterfaceTextSpriteTemplate, 16, 120, 0); +// Menu text + spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 48, 120, 0); StartSpriteAnim(&gSprites[spriteId], 3); - - spriteId = CreateSprite(&gUnknown_0855D1C4, 16, 144, 0); +// Select button + spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 16, 144, 0); StartSpriteAnim(&gSprites[spriteId], 2); gSprites[spriteId].data[2] = 0x80; - - spriteId = CreateSprite(&gUnknown_0855D1C4, 48, 144, 0); +// Search text + spriteId = CreateSprite(&sInterfaceTextSpriteTemplate, 48, 144, 0); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&gUnknown_0855D1DC, 0, 80, 2); + spriteId = CreateSprite(&sRotatingPokeballSpriteTemplate, 0, 80, 2); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 30; gSprites[spriteId].data[0] = 0x1E; gSprites[spriteId].data[1] = 0; - spriteId = CreateSprite(&gUnknown_0855D1DC, 0, 80, 2); + spriteId = CreateSprite(&sRotatingPokeballSpriteTemplate, 0, 80, 2); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 31; gSprites[spriteId].data[0] = 0x1F; @@ -2518,58 +2519,59 @@ void sub_80BDB7C(u8 a) if (!IsNationalPokedexEnabled()) { - CreateSprite(&gUnknown_0855D1F4, 32, 40, 1); - - spriteId = CreateSprite(&gUnknown_0855D1F4, 32, 72, 1); +// Seen text + CreateSprite(&sSeenOwnTextSpriteTemplate, 32, 40, 1); +// Own text + spriteId = CreateSprite(&sSeenOwnTextSpriteTemplate, 32, 72, 1); StartSpriteAnim(&gSprites[spriteId], 1); _a = 0; - +// Seen value - 100s spriteId = CreateSprite(&gUnknown_0855D224, 24, 48, 1); - r5 = gUnknown_02039B4C->unk61A / 100; + r5 = sPokedexView->seenCount / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; else gSprites[spriteId].invisible = TRUE; - +// Seen value - 10s spriteId = CreateSprite(&gUnknown_0855D224, 32, 48, 1); - r5 = (gUnknown_02039B4C->unk61A % 100) / 10; + r5 = (sPokedexView->seenCount % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else gSprites[spriteId].invisible = TRUE; - +// Seen value - 1s spriteId = CreateSprite(&gUnknown_0855D224, 40, 48, 1); - r5 = (gUnknown_02039B4C->unk61A % 100) % 10; + r5 = (sPokedexView->seenCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); _a = 0; - +// Owned value - 100s spriteId = CreateSprite(&gUnknown_0855D224, 24, 80, 1); - r5 = gUnknown_02039B4C->unk61C / 100; + r5 = sPokedexView->ownCount / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; else gSprites[spriteId].invisible = TRUE; - +// Owned value - 10s spriteId = CreateSprite(&gUnknown_0855D224, 32, 80, 1); - r5 = (gUnknown_02039B4C->unk61C % 100) / 10; + r5 = (sPokedexView->ownCount % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else gSprites[spriteId].invisible = TRUE; - +// Owned value -1s spriteId = CreateSprite(&gUnknown_0855D224, 40, 80, 1); - r5 = (gUnknown_02039B4C->unk61C % 100) % 10; + r5 = (sPokedexView->ownCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); } else { u16 r6; - CreateSprite(&gUnknown_0855D1F4, 32, 40, 1); + CreateSprite(&sSeenOwnTextSpriteTemplate, 32, 40, 1); - spriteId = CreateSprite(&gUnknown_0855D1F4, 32, 76, 1); + spriteId = CreateSprite(&sSeenOwnTextSpriteTemplate, 32, 76, 1); StartSpriteAnim(&gSprites[spriteId], 1); CreateSprite(&gUnknown_0855D20C, 17, 45, 1); @@ -2607,7 +2609,7 @@ void sub_80BDB7C(u8 a) _a = 0; spriteId = CreateSprite(&gUnknown_0855D23C, 40, 55, 1); - r5 = gUnknown_02039B4C->unk61A / 100; + r5 = sPokedexView->seenCount / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; @@ -2615,14 +2617,14 @@ void sub_80BDB7C(u8 a) gSprites[spriteId].invisible = TRUE; spriteId = CreateSprite(&gUnknown_0855D23C, 48, 55, 1); - r5 = (gUnknown_02039B4C->unk61A % 100) / 10; + r5 = (sPokedexView->seenCount % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else gSprites[spriteId].invisible = TRUE; spriteId = CreateSprite(&gUnknown_0855D23C, 56, 55, 1); - r5 = (gUnknown_02039B4C->unk61A % 100) % 10; + r5 = (sPokedexView->seenCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); r6 = GetHoennPokedexCount(1); @@ -2650,7 +2652,7 @@ void sub_80BDB7C(u8 a) _a = 0; spriteId = CreateSprite(&gUnknown_0855D23C, 40, 91, 1); - r5 = gUnknown_02039B4C->unk61C / 100; + r5 = sPokedexView->ownCount / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; @@ -2658,14 +2660,14 @@ void sub_80BDB7C(u8 a) gSprites[spriteId].invisible = TRUE; spriteId = CreateSprite(&gUnknown_0855D23C, 48, 91, 1); - r5 = (gUnknown_02039B4C->unk61C % 100) / 10; + r5 = (sPokedexView->ownCount % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else gSprites[spriteId].invisible = TRUE; spriteId = CreateSprite(&gUnknown_0855D23C, 56, 91, 1); - r5 = (gUnknown_02039B4C->unk61C % 100) % 10; + r5 = (sPokedexView->ownCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); } spriteId = CreateSprite(&gUnknown_0855D254, 136, 96, 1); @@ -2684,7 +2686,7 @@ void nullsub_38(struct Sprite *sprite) void sub_80BE44C(struct Sprite *sprite) { - if (gUnknown_02039B4C->unk64A != 0) + if (sPokedexView->unk64A != 0) DestroySprite(sprite); } @@ -2717,10 +2719,10 @@ void sub_80BE4E0(struct Sprite *sprite) { u8 data1 = sprite->data[1]; - if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3) + if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3) { - FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]); - gUnknown_02039B4C->unk61E[data1] = 0xFFFF; + FreeAndDestroyMonPicSprite(sPokedexView->unk61E[data1]); + sPokedexView->unk61E[data1] = 0xFFFF; } else { @@ -2745,23 +2747,23 @@ void sub_80BE4E0(struct Sprite *sprite) if ((sprite->data[5] <= -64 || sprite->data[5] >= 64) && sprite->data[0] != 0) { - FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]); - gUnknown_02039B4C->unk61E[data1] = 0xFFFF; + FreeAndDestroyMonPicSprite(sPokedexView->unk61E[data1]); + sPokedexView->unk61E[data1] = 0xFFFF; } } } -void sub_80BE604(struct Sprite *sprite) +static void SpriteCB_Scrollbar(struct Sprite *sprite) { - if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3) + if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3) DestroySprite(sprite); else - sprite->pos2.y = gUnknown_02039B4C->selectedPokemon * 120 / (gUnknown_02039B4C->pokemonListCount - 1); + sprite->pos2.y = sPokedexView->selectedPokemon * 120 / (sPokedexView->pokemonListCount - 1); } void sub_80BE658(struct Sprite *sprite) { - if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3) + if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3) { DestroySprite(sprite); } @@ -2771,7 +2773,7 @@ void sub_80BE658(struct Sprite *sprite) if (sprite->data[1] != 0) { - if (gUnknown_02039B4C->selectedPokemon == gUnknown_02039B4C->pokemonListCount - 1) + if (sPokedexView->selectedPokemon == sPokedexView->pokemonListCount - 1) sprite->invisible = TRUE; else sprite->invisible = FALSE; @@ -2779,7 +2781,7 @@ void sub_80BE658(struct Sprite *sprite) } else { - if (gUnknown_02039B4C->selectedPokemon == 0) + if (sPokedexView->selectedPokemon == 0) sprite->invisible = TRUE; else sprite->invisible = FALSE; @@ -2787,7 +2789,7 @@ void sub_80BE658(struct Sprite *sprite) } sprite->pos2.y = gSineTable[r0] / 64; sprite->data[2] = sprite->data[2] + 8; - if (gUnknown_02039B4C->menuIsOpen == 0 && gUnknown_02039B4C->menuY == 0 && sprite->invisible == 0) + if (sPokedexView->menuIsOpen == 0 && sPokedexView->menuY == 0 && sprite->invisible == 0) sprite->invisible = FALSE; else sprite->invisible = TRUE; @@ -2796,13 +2798,13 @@ void sub_80BE658(struct Sprite *sprite) void sub_80BE758(struct Sprite *sprite) { - if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3) + if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3) DestroySprite(sprite); } void sub_80BE780(struct Sprite *sprite) { - if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3) + if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3) { DestroySprite(sprite); } @@ -2812,12 +2814,12 @@ void sub_80BE780(struct Sprite *sprite) s16 r3; s16 r0; - val = gUnknown_02039B4C->unk62C + sprite->data[1]; + val = sPokedexView->unk62C + sprite->data[1]; r3 = gSineTable[val]; r0 = gSineTable[val + 0x40]; SetOamMatrix(sprite->data[0], r0, r3, -r3, r0); - val = gUnknown_02039B4C->unk62C + (sprite->data[1] + 0x40); + val = sPokedexView->unk62C + (sprite->data[1] + 0x40); r3 = gSineTable[val]; r0 = gSineTable[val + 0x40]; sprite->pos2.x = r0 * 40 / 256; @@ -2827,18 +2829,18 @@ void sub_80BE780(struct Sprite *sprite) void sub_80BE834(struct Sprite *sprite) { - if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3) + if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3) { DestroySprite(sprite); } else { - u16 r1 = gUnknown_02039B4C->unk64A == 0 ? 80 : 96; + u16 r1 = sPokedexView->unk64A == 0 ? 80 : 96; - if (gUnknown_02039B4C->menuIsOpen != 0 && gUnknown_02039B4C->menuY == r1) + if (sPokedexView->menuIsOpen != 0 && sPokedexView->menuY == r1) { sprite->invisible = FALSE; - sprite->pos2.y = gUnknown_02039B4C->menuCursorPos * 16; + sprite->pos2.y = sPokedexView->menuCursorPos * 16; sprite->pos2.x = gSineTable[(u8)sprite->data[2]] / 64; sprite->data[2] += 8; } @@ -2863,7 +2865,7 @@ u8 sub_80BE91C(struct PokedexListItem* item, u8 b) { u8 taskId; - gUnknown_02039B54 = item; + sPokedexListItem = item; taskId = CreateTask(sub_80BEA24, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 1; @@ -2893,7 +2895,7 @@ bool8 sub_80BE9C4(u8 taskId) u8 sub_80BE9F8(struct PokedexListItem *item, u8 b) { - gUnknown_02039B54 = item; + sPokedexListItem = item; gTasks[b].data[0] = 1; gTasks[b].data[1] = 0; gTasks[b].data[2] = 0; @@ -2911,7 +2913,7 @@ void sub_80BEA24(u8 taskId) { u16 r2; - gUnknown_02039B4C->unk64A = 1; + sPokedexView->unk64A = 1; gUnknown_030060B4 = gMain.vblankCallback; SetVBlankCallback(NULL); r2 = 0; @@ -2925,26 +2927,26 @@ void sub_80BEA24(u8 taskId) break; case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); - CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0); + CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); PutWindowTilemap(1); - sub_80C0D30(1, gUnknown_02039B54->dexNum); + sub_80C0D30(1, sPokedexListItem->dexNum); CopyWindowToVram(1, 2); gMain.state++; break; case 2: sub_80BFCDC(0xD); - sub_80BFD0C(gUnknown_02039B4C->selectedScreen, 0xD); - sub_80BC844(gUnknown_02039B4C->unk64C_1); + sub_80BFD0C(sPokedexView->selectedScreen, 0xD); + LoadPokedexBgPalette(sPokedexView->unk64C_1); gMain.state++; break; case 3: gMain.state++; break; case 4: - sub_80C020C(gUnknown_02039B54->dexNum, gUnknown_02039B4C->dexMode == 0 ? 0 : 1, gUnknown_02039B54->owned, 0); - if (!gUnknown_02039B54->owned) + sub_80C020C(sPokedexListItem->dexNum, sPokedexView->dexMode == 0 ? 0 : 1, sPokedexListItem->owned, 0); + if (!sPokedexListItem->owned) LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E); CopyWindowToVram(0, 3); CopyBgTilemapBufferToVram(1); @@ -2955,7 +2957,7 @@ void sub_80BEA24(u8 taskId) case 5: if (gTasks[taskId].data[1] == 0) { - gTasks[taskId].data[4] = (u16)sub_80C0E9C(gUnknown_02039B54->dexNum, 0x30, 0x38, 0); + gTasks[taskId].data[4] = (u16)CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 48, 56, 0); gSprites[gTasks[taskId].data[4]].oam.priority = 0; } gMain.state++; @@ -2991,7 +2993,7 @@ void sub_80BEA24(u8 taskId) if (gTasks[taskId].data[3] == 0) { StopCryAndClearCrySongs(); - PlayCry2(NationalPokedexNumToSpecies(gUnknown_02039B54->dexNum), 0, 0x7D, 0xA); + PlayCry2(NationalPokedexNumToSpecies(sPokedexListItem->dexNum), 0, 0x7D, 0xA); } else { @@ -3050,29 +3052,29 @@ void sub_80BEDF4(u8 taskId) } if (gMain.newKeys & A_BUTTON) { - switch (gUnknown_02039B4C->selectedScreen) + switch (sPokedexView->selectedScreen) { case AREA_SCREEN: BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB_BLACK); - gUnknown_02039B4C->unk64E = 1; + sPokedexView->unk64E = 1; gTasks[taskId].func = sub_80BEFD0; PlaySE(SE_PIN); break; case CRY_SCREEN: BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); - gUnknown_02039B4C->unk64E = 2; + sPokedexView->unk64E = 2; gTasks[taskId].func = sub_80BEFD0; PlaySE(SE_PIN); break; case SIZE_SCREEN: - if (!gUnknown_02039B54->owned) + if (!sPokedexListItem->owned) { PlaySE(SE_HAZURE); } else { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); - gUnknown_02039B4C->unk64E = 3; + sPokedexView->unk64E = 3; gTasks[taskId].func = sub_80BEFD0; PlaySE(SE_PIN); } @@ -3087,19 +3089,19 @@ void sub_80BEDF4(u8 taskId) } if (((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) - && gUnknown_02039B4C->selectedScreen > 0) + && sPokedexView->selectedScreen > 0) { - gUnknown_02039B4C->selectedScreen--; - sub_80BFD0C(gUnknown_02039B4C->selectedScreen, 0xD); + sPokedexView->selectedScreen--; + sub_80BFD0C(sPokedexView->selectedScreen, 0xD); PlaySE(SE_Z_PAGE); return; } if (((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) - && gUnknown_02039B4C->selectedScreen < 3) + && sPokedexView->selectedScreen < 3) { - gUnknown_02039B4C->selectedScreen++; - sub_80BFD0C(gUnknown_02039B4C->selectedScreen, 0xD); + sPokedexView->selectedScreen++; + sub_80BFD0C(sPokedexView->selectedScreen, 0xD); PlaySE(SE_Z_PAGE); return; } @@ -3110,7 +3112,7 @@ void sub_80BEFD0(u8 taskId) if (!gPaletteFade.active) { FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); - switch (gUnknown_02039B4C->unk64E) + switch (sPokedexView->unk64E) { case 1: default: @@ -3153,25 +3155,25 @@ void sub_80BF0AC(u8 taskId) default: if (!gPaletteFade.active) { - gUnknown_02039B4C->unk64A = 5; + sPokedexView->unk64A = 5; gUnknown_030060B4 = gMain.vblankCallback; SetVBlankCallback(NULL); sub_80C09B0(0x200); - gUnknown_02039B4C->selectedScreen = AREA_SCREEN; + sPokedexView->selectedScreen = AREA_SCREEN; gMain.state = 1; } break; case 1: sub_80BFCF4(0xD); sub_80BFD7C(0, 0xD); - sub_80BC844(gUnknown_02039B4C->unk64C_1); + LoadPokedexBgPalette(sPokedexView->unk64C_1); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256); gMain.state++; break; case 2: - sub_813D3D8(NationalPokedexNumToSpecies(gUnknown_02039B54->dexNum), &gUnknown_02039B4C->unk64E); + ShowPokedexAreaScreen(NationalPokedexNumToSpecies(sPokedexListItem->dexNum), &sPokedexView->unk64E); SetVBlankCallback(gUnknown_030060B4); - gUnknown_02039B4C->unk64E = 0; + sPokedexView->unk64E = 0; gMain.state = 0; gTasks[taskId].func = sub_80BF1B4; break; @@ -3180,7 +3182,7 @@ void sub_80BF0AC(u8 taskId) void sub_80BF1B4(u8 taskId) { - if (gUnknown_02039B4C->unk64E != 0) + if (sPokedexView->unk64E != 0) gTasks[taskId].func = sub_80BF1EC; } @@ -3188,7 +3190,7 @@ void sub_80BF1EC(u8 taskId) { if (!gPaletteFade.active) { - switch (gUnknown_02039B4C->unk64E) + switch (sPokedexView->unk64E) { case 1: default: @@ -3210,17 +3212,17 @@ void sub_80BF250(u8 taskId) if (!gPaletteFade.active) { m4aMPlayStop(&gMPlayInfo_BGM); - gUnknown_02039B4C->unk64A = 6; + sPokedexView->unk64A = 6; gUnknown_030060B4 = gMain.vblankCallback; SetVBlankCallback(NULL); sub_80C09B0(0x200); - gUnknown_02039B4C->selectedScreen = CRY_SCREEN; + sPokedexView->selectedScreen = CRY_SCREEN; gMain.state = 1; } break; case 1: DecompressAndLoadBgGfxUsingHeap(3, &gPokedexMenu_Gfx, 0x2000, 0, 0); - CopyToBgTilemapBuffer(3, &gUnknown_08DC3198, 0, 0); + CopyToBgTilemapBuffer(3, &gPokedexTilemap_CryScreen, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); PutWindowTilemap(3); @@ -3230,7 +3232,7 @@ void sub_80BF250(u8 taskId) case 2: sub_80BFCF4(0xD); sub_80BFD7C(1, 0xD); - sub_80BC844(gUnknown_02039B4C->unk64C_1); + LoadPokedexBgPalette(sPokedexView->unk64C_1); gMain.state++; break; case 3: @@ -3239,13 +3241,13 @@ void sub_80BF250(u8 taskId) break; case 4: sub_80BE8DC(gText_CryOf, 0x52, 33); - sub_80C0B44(0, gUnknown_02039B54->dexNum, 0x52, 49); + sub_80C0B44(0, sPokedexListItem->dexNum, 0x52, 49); gMain.state++; break; case 5: - gTasks[taskId].data[4] = sub_80C0E9C(gUnknown_02039B54->dexNum, 48, 56, 0); + gTasks[taskId].data[4] = CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 48, 56, 0); gSprites[gTasks[taskId].data[4]].oam.priority = 0; - gUnknown_030061EC = 0; + gDexCryScreenState = 0; gMain.state++; break; case 6: @@ -3260,7 +3262,7 @@ void sub_80BF250(u8 taskId) if (sub_8145354(&sp4, 2) != 0) { gMain.state++; - gUnknown_030061EC = 0; + gDexCryScreenState = 0; } } break; @@ -3298,7 +3300,7 @@ void sub_80BF250(u8 taskId) gMain.state++; break; case 10: - gUnknown_02039B4C->unk64E = 0; + sPokedexView->unk64E = 0; gMain.state = 0; gTasks[taskId].func = sub_80BF5CC; break; @@ -3317,7 +3319,7 @@ void sub_80BF5CC(u8 taskId) if (gMain.newKeys & A_BUTTON) { sub_80BF7FC(1); - sub_8145534(NationalPokedexNumToSpecies(gUnknown_02039B54->dexNum)); + sub_8145534(NationalPokedexNumToSpecies(sPokedexListItem->dexNum)); return; } else if (!gPaletteFade.active) @@ -3326,7 +3328,7 @@ void sub_80BF5CC(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); m4aMPlayContinue(&gMPlayInfo_BGM); - gUnknown_02039B4C->unk64E = 1; + sPokedexView->unk64E = 1; gTasks[taskId].func = sub_80BF790; PlaySE(SE_PC_OFF); return; @@ -3336,7 +3338,7 @@ void sub_80BF5CC(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); m4aMPlayContinue(&gMPlayInfo_BGM); - gUnknown_02039B4C->unk64E = 2; + sPokedexView->unk64E = 2; gTasks[taskId].func = sub_80BF790; PlaySE(SE_Z_PAGE); return; @@ -3344,7 +3346,7 @@ void sub_80BF5CC(u8 taskId) if ((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { - if (!gUnknown_02039B54->owned) + if (!sPokedexListItem->owned) { PlaySE(SE_HAZURE); } @@ -3352,7 +3354,7 @@ void sub_80BF5CC(u8 taskId) { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); m4aMPlayContinue(&gMPlayInfo_BGM); - gUnknown_02039B4C->unk64E = 3; + sPokedexView->unk64E = 3; gTasks[taskId].func = sub_80BF790; PlaySE(SE_Z_PAGE); } @@ -3367,7 +3369,7 @@ void sub_80BF790(u8 taskId) { sub_8145914(); FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); - switch (gUnknown_02039B4C->unk64E) + switch (sPokedexView->unk64E) { default: case 1: @@ -3404,17 +3406,17 @@ void sub_80BF82C(u8 taskId) case 0: if (!gPaletteFade.active) { - gUnknown_02039B4C->unk64A = 7; + sPokedexView->unk64A = 7; gUnknown_030060B4 = gMain.vblankCallback; SetVBlankCallback(NULL); sub_80C09B0(0x200); - gUnknown_02039B4C->selectedScreen = SIZE_SCREEN; + sPokedexView->selectedScreen = SIZE_SCREEN; gMain.state = 1; } break; case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); - CopyToBgTilemapBuffer(3, gUnknown_08DC2E6C, 0, 0); + CopyToBgTilemapBuffer(3, gPokedexTilemap_SizeScreen, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); gMain.state++; @@ -3422,7 +3424,7 @@ void sub_80BF82C(u8 taskId) case 2: sub_80BFCF4(0xD); sub_80BFD7C(2, 0xD); - sub_80BC844(gUnknown_02039B4C->unk64C_1); + LoadPokedexBgPalette(sPokedexView->unk64C_1); gMain.state++; break; case 3: @@ -3444,19 +3446,19 @@ void sub_80BF82C(u8 taskId) gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 1; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_02039B54->dexNum].trainerOffset; - SetOamMatrix(1, gPokedexEntries[gUnknown_02039B54->dexNum].trainerScale, 0, 0, gPokedexEntries[gUnknown_02039B54->dexNum].trainerScale); + gSprites[spriteId].pos2.y = gPokedexEntries[sPokedexListItem->dexNum].trainerOffset; + SetOamMatrix(1, gPokedexEntries[sPokedexListItem->dexNum].trainerScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].trainerScale); LoadPalette(gUnknown_0856E610, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); gTasks[taskId].data[5] = spriteId; gMain.state++; break; case 6: - spriteId = sub_80C0E9C(gUnknown_02039B54->dexNum, 88, 56, 1); + spriteId = CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 88, 56, 1); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 2; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_02039B54->dexNum].pokemonOffset; - SetOamMatrix(2, gPokedexEntries[gUnknown_02039B54->dexNum].pokemonScale, 0, 0, gPokedexEntries[gUnknown_02039B54->dexNum].pokemonScale); + gSprites[spriteId].pos2.y = gPokedexEntries[sPokedexListItem->dexNum].pokemonOffset; + SetOamMatrix(2, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale); LoadPalette(gUnknown_0856E610, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); gTasks[taskId].data[4] = spriteId; CopyWindowToVram(0, 3); @@ -3484,7 +3486,7 @@ void sub_80BF82C(u8 taskId) case 9: if (!gPaletteFade.active) { - gUnknown_02039B4C->unk64E = 0; + sPokedexView->unk64E = 0; gMain.state = 0; gTasks[taskId].func = sub_80BFBB0; } @@ -3497,7 +3499,7 @@ void sub_80BFBB0(u8 taskId) if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); - gUnknown_02039B4C->unk64E = 1; + sPokedexView->unk64E = 1; gTasks[taskId].func = sub_80BFC78; PlaySE(SE_PC_OFF); } @@ -3505,7 +3507,7 @@ void sub_80BFBB0(u8 taskId) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 0x10, RGB_BLACK); - gUnknown_02039B4C->unk64E = 2; + sPokedexView->unk64E = 2; gTasks[taskId].func = sub_80BFC78; PlaySE(SE_Z_PAGE); } @@ -3517,7 +3519,7 @@ void sub_80BFC78(u8 taskId) { FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]); FreeAndDestroyTrainerPicSprite(gTasks[taskId].data[5]); - switch (gUnknown_02039B4C->unk64E) + switch (sPokedexView->unk64E) { default: case 1: @@ -3532,12 +3534,12 @@ void sub_80BFC78(u8 taskId) void sub_80BFCDC(u16 a) { - CopyToBgTilemapBuffer(1, gUnknown_08DC2F5C, 0, 0); + CopyToBgTilemapBuffer(1, gPokedexTilemap_ScreenSelectBar1, 0, 0); } void sub_80BFCF4(u16 a) { - CopyToBgTilemapBuffer(1, gUnknown_08DC2FEC, 0, 0); + CopyToBgTilemapBuffer(1, gPokedexTilemap_ScreenSelectBar2, 0, 0); } #ifdef NONMATCHING @@ -3569,61 +3571,61 @@ void sub_80BFD0C(u8 a, u16 unused) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r0, 0x1\n\ - bl GetBgTilemapBuffer\n\ - adds r7, r0, 0\n\ - movs r1, 0\n\ + mov r7, r8\n\ + push {r7}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + movs r0, 0x1\n\ + bl GetBgTilemapBuffer\n\ + adds r7, r0, 0\n\ + movs r1, 0\n\ _080BFD22:\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - movs r3, 0x80\n\ - lsls r3, 7\n\ - cmp r1, r8\n\ - bne _080BFD38\n\ - movs r3, 0x80\n\ - lsls r3, 6\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + movs r3, 0x80\n\ + lsls r3, 7\n\ + cmp r1, r8\n\ + bne _080BFD38\n\ + movs r3, 0x80\n\ + lsls r3, 6\n\ _080BFD38:\n\ - movs r2, 0\n\ - adds r6, r1, 0x1\n\ - ldr r4, =0x00000fff\n\ + movs r2, 0\n\ + adds r6, r1, 0x1\n\ + ldr r4, =0x00000fff\n\ _080BFD3E:\n\ - adds r1, r5, r2\n\ - lsls r1, 1\n\ - adds r1, r7\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r1, 0x40\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x6\n\ - bls _080BFD3E\n\ - lsls r0, r6, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x3\n\ - bls _080BFD22\n\ - movs r0, 0x1\n\ - bl CopyBgTilemapBufferToVram\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ + adds r1, r5, r2\n\ + lsls r1, 1\n\ + adds r1, r7\n\ + ldrh r0, [r1]\n\ + ands r0, r4\n\ + orrs r0, r3\n\ + strh r0, [r1]\n\ + adds r1, 0x40\n\ + ldrh r0, [r1]\n\ + ands r0, r4\n\ + orrs r0, r3\n\ + strh r0, [r1]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + cmp r2, 0x6\n\ + bls _080BFD3E\n\ + lsls r0, r6, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x3\n\ + bls _080BFD22\n\ + movs r0, 0x1\n\ + bl CopyBgTilemapBufferToVram\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ .syntax divided\n"); } #endif @@ -3659,66 +3661,66 @@ void sub_80BFD7C(u8 a, u16 b) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - movs r0, 0x1\n\ - bl GetBgTilemapBuffer\n\ - adds r7, r0, 0\n\ - movs r1, 0\n\ + mov r7, r8\n\ + push {r7}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + movs r0, 0x1\n\ + bl GetBgTilemapBuffer\n\ + adds r7, r0, 0\n\ + movs r1, 0\n\ _080BFD92:\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - cmp r1, r8\n\ - beq _080BFDA4\n\ - cmp r1, 0x3\n\ - bne _080BFDAA\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + cmp r1, r8\n\ + beq _080BFDA4\n\ + cmp r1, 0x3\n\ + bne _080BFDAA\n\ _080BFDA4:\n\ - movs r3, 0x80\n\ - lsls r3, 6\n\ - b _080BFDAE\n\ + movs r3, 0x80\n\ + lsls r3, 6\n\ + b _080BFDAE\n\ _080BFDAA:\n\ - movs r3, 0x80\n\ - lsls r3, 7\n\ + movs r3, 0x80\n\ + lsls r3, 7\n\ _080BFDAE:\n\ - movs r2, 0\n\ - adds r5, r1, 0x1\n\ - ldr r4, =0x00000fff\n\ + movs r2, 0\n\ + adds r5, r1, 0x1\n\ + ldr r4, =0x00000fff\n\ _080BFDB4:\n\ - adds r1, r6, r2\n\ - lsls r1, 1\n\ - adds r1, r7\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r1, 0x40\n\ - ldrh r0, [r1]\n\ - ands r0, r4\n\ - orrs r0, r3\n\ - strh r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0x6\n\ - bls _080BFDB4\n\ - lsls r0, r5, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x3\n\ - bls _080BFD92\n\ - movs r0, 0x1\n\ - bl CopyBgTilemapBufferToVram\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ + adds r1, r6, r2\n\ + lsls r1, 1\n\ + adds r1, r7\n\ + ldrh r0, [r1]\n\ + ands r0, r4\n\ + orrs r0, r3\n\ + strh r0, [r1]\n\ + adds r1, 0x40\n\ + ldrh r0, [r1]\n\ + ands r0, r4\n\ + orrs r0, r3\n\ + strh r0, [r1]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + cmp r2, 0x6\n\ + bls _080BFDB4\n\ + lsls r0, r5, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x3\n\ + bls _080BFD92\n\ + movs r0, 0x1\n\ + bl CopyBgTilemapBufferToVram\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ .syntax divided\n"); } #endif @@ -3761,14 +3763,14 @@ void sub_80BFE38(u8 taskId) break; case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); - CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0); + CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); PutWindowTilemap(1); sub_80C0D30(1, gTasks[taskId].data[1]); CopyWindowToVram(1, 2); ResetPaletteFade(); - sub_80BC844(0); + LoadPokedexBgPalette(0); gTasks[taskId].data[0]++; break; case 2: @@ -3782,7 +3784,7 @@ void sub_80BFE38(u8 taskId) gTasks[taskId].data[0]++; break; case 4: - spriteId = sub_80C0E9C(dexNum, 0x30, 0x38, 0); + spriteId = CreateMonSpriteFromNationalDexNumber(dexNum, 48, 56, 0); gSprites[spriteId].oam.priority = 0; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(gUnknown_030060B4); @@ -4023,216 +4025,216 @@ void sub_80C0460(u16 weight, u8 left, u8 top) { 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, 0x14\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r10, r1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x10]\n\ - ldr r5, =0x000186a0\n\ - muls r0, r5\n\ - ldr r1, =0x000011b8\n\ - bl __divsi3\n\ - adds r7, r0, 0\n\ - movs r1, 0xA\n\ - bl __umodsi3\n\ - cmp r0, 0x4\n\ - bls _080C0494\n\ - adds r7, 0xA\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r10, r1\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + str r2, [sp, 0x10]\n\ + ldr r5, =0x000186a0\n\ + muls r0, r5\n\ + ldr r1, =0x000011b8\n\ + bl __divsi3\n\ + adds r7, r0, 0\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + cmp r0, 0x4\n\ + bls _080C0494\n\ + adds r7, 0xA\n\ _080C0494:\n\ - movs r0, 0\n\ - mov r8, r0\n\ - mov r4, sp\n\ - adds r0, r7, 0\n\ - adds r1, r5, 0\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xA1\n\ - bne _080C04C0\n\ - movs r6, 0x1\n\ - mov r1, sp\n\ - movs r0, 0x77\n\ - strb r0, [r1]\n\ - b _080C04C6\n\ - .pool\n\ + movs r0, 0\n\ + mov r8, r0\n\ + mov r4, sp\n\ + adds r0, r7, 0\n\ + adds r1, r5, 0\n\ + bl __udivsi3\n\ + adds r0, 0xA1\n\ + strb r0, [r4]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xA1\n\ + bne _080C04C0\n\ + movs r6, 0x1\n\ + mov r1, sp\n\ + movs r0, 0x77\n\ + strb r0, [r1]\n\ + b _080C04C6\n\ + .pool\n\ _080C04C0:\n\ - movs r1, 0x1\n\ - mov r8, r1\n\ - movs r6, 0x1\n\ + movs r1, 0x1\n\ + mov r8, r1\n\ + movs r6, 0x1\n\ _080C04C6:\n\ - ldr r1, =0x000186a0\n\ - adds r0, r7, 0\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - mov r4, sp\n\ - adds r4, 0x1\n\ - ldr r1, =0x00002710\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xA1\n\ - bne _080C0504\n\ - mov r2, r8\n\ - cmp r2, 0\n\ - bne _080C0504\n\ - adds r1, r6, 0\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - add r1, sp\n\ - movs r0, 0x77\n\ - strb r0, [r1]\n\ - b _080C050E\n\ - .pool\n\ + ldr r1, =0x000186a0\n\ + adds r0, r7, 0\n\ + bl __umodsi3\n\ + adds r7, r0, 0\n\ + mov r4, sp\n\ + adds r4, 0x1\n\ + ldr r1, =0x00002710\n\ + bl __udivsi3\n\ + adds r0, 0xA1\n\ + strb r0, [r4]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xA1\n\ + bne _080C0504\n\ + mov r2, r8\n\ + cmp r2, 0\n\ + bne _080C0504\n\ + adds r1, r6, 0\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + add r1, sp\n\ + movs r0, 0x77\n\ + strb r0, [r1]\n\ + b _080C050E\n\ + .pool\n\ _080C0504:\n\ - movs r3, 0x1\n\ - mov r8, r3\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ + movs r3, 0x1\n\ + mov r8, r3\n\ + adds r0, r6, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ _080C050E:\n\ - ldr r1, =0x00002710\n\ - adds r0, r7, 0\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - mov r0, sp\n\ - adds r4, r0, r6\n\ - movs r1, 0xFA\n\ - lsls r1, 2\n\ - adds r0, r7, 0\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xA1\n\ - bne _080C054C\n\ - mov r1, r8\n\ - cmp r1, 0\n\ - bne _080C054C\n\ - adds r1, r6, 0\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - add r1, sp\n\ - movs r0, 0x77\n\ - strb r0, [r1]\n\ - b _080C0552\n\ - .pool\n\ + ldr r1, =0x00002710\n\ + adds r0, r7, 0\n\ + bl __umodsi3\n\ + adds r7, r0, 0\n\ + mov r0, sp\n\ + adds r4, r0, r6\n\ + movs r1, 0xFA\n\ + lsls r1, 2\n\ + adds r0, r7, 0\n\ + bl __udivsi3\n\ + adds r0, 0xA1\n\ + strb r0, [r4]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xA1\n\ + bne _080C054C\n\ + mov r1, r8\n\ + cmp r1, 0\n\ + bne _080C054C\n\ + adds r1, r6, 0\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + add r1, sp\n\ + movs r0, 0x77\n\ + strb r0, [r1]\n\ + b _080C0552\n\ + .pool\n\ _080C054C:\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ + adds r0, r6, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ _080C0552:\n\ - movs r1, 0xFA\n\ - lsls r1, 2\n\ - adds r0, r7, 0\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - adds r1, r6, 0\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r5, r6, 0\n\ - mov r2, sp\n\ - adds r4, r2, r1\n\ - adds r0, r7, 0\n\ - movs r1, 0x64\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - movs r3, 0\n\ - mov r9, r3\n\ - strb r0, [r4]\n\ - adds r0, r7, 0\n\ - movs r1, 0x64\n\ - bl __umodsi3\n\ - adds r7, r0, 0\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r1, r6, 0\n\ - mov r2, sp\n\ - adds r0, r2, r5\n\ - movs r3, 0xAD\n\ - mov r8, r3\n\ - mov r2, r8\n\ - strb r2, [r0]\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r5, r6, 0\n\ - mov r3, sp\n\ - adds r4, r3, r1\n\ - adds r0, r7, 0\n\ - movs r1, 0xA\n\ - bl __udivsi3\n\ - adds r0, 0xA1\n\ - strb r0, [r4]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r1, r6, 0\n\ - mov r2, sp\n\ - adds r0, r2, r5\n\ - mov r3, r9\n\ - strb r3, [r0]\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r2, r6, 0\n\ - add r1, sp\n\ - movs r0, 0xE0\n\ - strb r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r3, r6, 0\n\ - mov r0, sp\n\ - adds r1, r0, r2\n\ - movs r0, 0xD6\n\ - strb r0, [r1]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r2, r6, 0\n\ - mov r0, sp\n\ - adds r1, r0, r3\n\ - movs r0, 0xE7\n\ - strb r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r3, sp\n\ - adds r1, r3, r2\n\ - mov r2, r8\n\ - strb r2, [r1]\n\ - adds r1, r3, r0\n\ - movs r0, 0xFF\n\ - strb r0, [r1]\n\ - mov r0, sp\n\ - mov r1, r10\n\ - ldr r2, [sp, 0x10]\n\ - bl sub_80BE8DC\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ + movs r1, 0xFA\n\ + lsls r1, 2\n\ + adds r0, r7, 0\n\ + bl __umodsi3\n\ + adds r7, r0, 0\n\ + adds r1, r6, 0\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r5, r6, 0\n\ + mov r2, sp\n\ + adds r4, r2, r1\n\ + adds r0, r7, 0\n\ + movs r1, 0x64\n\ + bl __udivsi3\n\ + adds r0, 0xA1\n\ + movs r3, 0\n\ + mov r9, r3\n\ + strb r0, [r4]\n\ + adds r0, r7, 0\n\ + movs r1, 0x64\n\ + bl __umodsi3\n\ + adds r7, r0, 0\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r1, r6, 0\n\ + mov r2, sp\n\ + adds r0, r2, r5\n\ + movs r3, 0xAD\n\ + mov r8, r3\n\ + mov r2, r8\n\ + strb r2, [r0]\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r5, r6, 0\n\ + mov r3, sp\n\ + adds r4, r3, r1\n\ + adds r0, r7, 0\n\ + movs r1, 0xA\n\ + bl __udivsi3\n\ + adds r0, 0xA1\n\ + strb r0, [r4]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r1, r6, 0\n\ + mov r2, sp\n\ + adds r0, r2, r5\n\ + mov r3, r9\n\ + strb r3, [r0]\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r2, r6, 0\n\ + add r1, sp\n\ + movs r0, 0xE0\n\ + strb r0, [r1]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r3, r6, 0\n\ + mov r0, sp\n\ + adds r1, r0, r2\n\ + movs r0, 0xD6\n\ + strb r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r2, r6, 0\n\ + mov r0, sp\n\ + adds r1, r0, r3\n\ + movs r0, 0xE7\n\ + strb r0, [r1]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r3, sp\n\ + adds r1, r3, r2\n\ + mov r2, r8\n\ + strb r2, [r1]\n\ + adds r1, r3, r0\n\ + movs r0, 0xFF\n\ + strb r0, [r1]\n\ + mov r0, sp\n\ + mov r1, r10\n\ + ldr r2, [sp, 0x10]\n\ + bl sub_80BE8DC\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } #endif @@ -4340,7 +4342,7 @@ u16 GetHoennPokedexCount(u8 caseID) u16 count = 0; u16 i; - for (i = 0; i < 202; i++) + for (i = 0; i < HOENN_DEX_COUNT; i++) { switch (caseID) { @@ -4409,17 +4411,17 @@ u16 sub_80C0944(void) for (i = 0; i < 150; i++) { - if (GetSetPokedexFlag(i + 1, 1) == 0) + if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return 0; } for (i = 151; i < 248; i++) { - if (GetSetPokedexFlag(i + 1, 1) == 0) + if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return 0; } for (i = 251; i < 384; i++) { - if (GetSetPokedexFlag(i + 1, 1) == 0) + if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return 0; } return 1; @@ -4635,10 +4637,10 @@ u32 sub_80C0E68(u16 a) } } -u16 sub_80C0E9C(u16 num, s16 x, s16 y, u16 paletteSlot) +u16 CreateMonSpriteFromNationalDexNumber(u16 nationalNum, s16 x, s16 y, u16 paletteSlot) { - num = NationalPokedexNumToSpecies(num); - return CreateMonPicSprite_HandleDeoxys(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF); + nationalNum = NationalPokedexNumToSpecies(nationalNum); + return CreateMonPicSprite_HandleDeoxys(nationalNum, 8, sub_80C0E68(nationalNum), TRUE, x, y, paletteSlot, 0xFFFF); } u16 sub_80C0EF8(u16 species, s16 x, s16 y, s8 paletteSlot) @@ -4657,71 +4659,71 @@ int sub_80C0F30(u8 dexMode, u8 sortMode, u8 abcGroup, u8 bodyColor, u8 type1, u8 for (i = 0, resultsCount = 0; i < NATIONAL_DEX_COUNT; i++) { - if (gUnknown_02039B4C->unk0[i].seen) + if (sPokedexView->pokedexList[i].seen) { - gUnknown_02039B4C->unk0[resultsCount] = gUnknown_02039B4C->unk0[i]; + sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; resultsCount++; } } - gUnknown_02039B4C->pokemonListCount = resultsCount; + sPokedexView->pokemonListCount = resultsCount; // Search by name if (abcGroup != 0xFF) { - for (i = 0, resultsCount = 0; i < gUnknown_02039B4C->pokemonListCount; i++) + for (i = 0, resultsCount = 0; i < sPokedexView->pokemonListCount; i++) { u8 r3; - species = NationalPokedexNumToSpecies(gUnknown_02039B4C->unk0[i].dexNum); + species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); r3 = gSpeciesNames[species][0]; if ((r3 >= gUnknown_0856ED08[abcGroup][0] && r3 < gUnknown_0856ED08[abcGroup][0] + gUnknown_0856ED08[abcGroup][1]) || (r3 >= gUnknown_0856ED08[abcGroup][2] && r3 < gUnknown_0856ED08[abcGroup][2] + gUnknown_0856ED08[abcGroup][3])) { - gUnknown_02039B4C->unk0[resultsCount] = gUnknown_02039B4C->unk0[i]; + sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; resultsCount++; } } - gUnknown_02039B4C->pokemonListCount = resultsCount; + sPokedexView->pokemonListCount = resultsCount; } // Search by body color if (bodyColor != 0xFF) { - for (i = 0, resultsCount = 0; i < gUnknown_02039B4C->pokemonListCount; i++) + for (i = 0, resultsCount = 0; i < sPokedexView->pokemonListCount; i++) { - species = NationalPokedexNumToSpecies(gUnknown_02039B4C->unk0[i].dexNum); + species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); if (bodyColor == gBaseStats[species].bodyColor) { - gUnknown_02039B4C->unk0[resultsCount] = gUnknown_02039B4C->unk0[i]; + sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; resultsCount++; } } - gUnknown_02039B4C->pokemonListCount = resultsCount; + sPokedexView->pokemonListCount = resultsCount; } // Search by type - if (type1 != 0xFF || type2 != 0xFF) + if (type1 != TYPE_NONE || type2 != TYPE_NONE) { - if (type1 == 0xFF) + if (type1 == TYPE_NONE) { type1 = type2; - type2 = 0xFF; + type2 = TYPE_NONE; } - if (type2 == 0xFF) + if (type2 == TYPE_NONE) { - for (i = 0, resultsCount = 0; i < gUnknown_02039B4C->pokemonListCount; i++) + for (i = 0, resultsCount = 0; i < sPokedexView->pokemonListCount; i++) { - if (gUnknown_02039B4C->unk0[i].owned) + if (sPokedexView->pokedexList[i].owned) { - species = NationalPokedexNumToSpecies(gUnknown_02039B4C->unk0[i].dexNum); + species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); types[0] = gBaseStats[species].type1; types[1] = gBaseStats[species].type2; if (types[0] == type1 || types[1] == type1) { - gUnknown_02039B4C->unk0[resultsCount] = gUnknown_02039B4C->unk0[i]; + sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; resultsCount++; } } @@ -4729,33 +4731,32 @@ int sub_80C0F30(u8 dexMode, u8 sortMode, u8 abcGroup, u8 bodyColor, u8 type1, u8 } else { - for (i = 0, resultsCount = 0; i < gUnknown_02039B4C->pokemonListCount; i++) + for (i = 0, resultsCount = 0; i < sPokedexView->pokemonListCount; i++) { - if (gUnknown_02039B4C->unk0[i].owned) + if (sPokedexView->pokedexList[i].owned) { - species = NationalPokedexNumToSpecies(gUnknown_02039B4C->unk0[i].dexNum); + species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); types[0] = gBaseStats[species].type1; types[1] = gBaseStats[species].type2; if ((types[0] == type1 && types[1] == type2) || (types[0] == type2 && types[1] == type1)) { - gUnknown_02039B4C->unk0[resultsCount] = gUnknown_02039B4C->unk0[i]; + sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; resultsCount++; } } } } - gUnknown_02039B4C->pokemonListCount = resultsCount; + sPokedexView->pokemonListCount = resultsCount; } - if (gUnknown_02039B4C->pokemonListCount != 0) + if (sPokedexView->pokemonListCount != 0) { - for (i = gUnknown_02039B4C->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) + for (i = sPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) { - gUnknown_02039B4C->unk0[i].dexNum = 0xFFFF; - gUnknown_02039B4C->unk0[i].seen = FALSE; - gUnknown_02039B4C->unk0[i].owned = FALSE; - + sPokedexView->pokedexList[i].dexNum = 0xFFFF; + sPokedexView->pokedexList[i].seen = FALSE; + sPokedexView->pokedexList[i].owned = FALSE; } } @@ -4792,7 +4793,7 @@ void sub_80C12E0(u8 taskId) case 0: if (!gPaletteFade.active) { - gUnknown_02039B4C->unk64A = 2; + sPokedexView->unk64A = 2; sub_80C09B0(0); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_0856EFF8, 4); @@ -4814,8 +4815,8 @@ void sub_80C12E0(u8 taskId) } break; case 1: - LoadCompressedObjectPic(gSpriteSheets_0855D26C); - LoadSpritePalettes(gSpritePalettes_0855D26C); + LoadCompressedObjectPic(sInterfaceSpriteSheet); + LoadSpritePalettes(sInterfaceSpritePalette); sub_80C2594(taskId); for (i = 0; i < 16; i++) gTasks[taskId].data[i] = 0; @@ -4970,15 +4971,15 @@ void sub_80C170C(u8 taskId) if (gTasks[taskId].data[0] != 0) { gUnknown_02039B52 = 0x40; - gUnknown_02039B4C->unk62A = 0x40; + sPokedexView->unk62A = 0x40; gUnknown_02039B50 = 0; - gUnknown_02039B4C->unk610 = 0; - gSaveBlock2Ptr->pokedex.unknown1 = sub_80C2318(taskId, 5); + sPokedexView->unk610 = 0; + gSaveBlock2Ptr->pokedex.mode = sub_80C2318(taskId, 5); if (!IsNationalPokedexEnabled()) - gSaveBlock2Ptr->pokedex.unknown1 = 0; - gUnknown_02039B4C->unk614 = gSaveBlock2Ptr->pokedex.unknown1; + gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN; + sPokedexView->unk614 = gSaveBlock2Ptr->pokedex.mode; gSaveBlock2Ptr->pokedex.order = sub_80C2318(taskId, 4); - gUnknown_02039B4C->unk618 = gSaveBlock2Ptr->pokedex.order; + sPokedexView->unk618 = gSaveBlock2Ptr->pokedex.order; PlaySE(SE_PC_OFF); gTasks[taskId].func = sub_80C1D38; } @@ -5049,7 +5050,7 @@ void sub_80C1A4C(u8 taskId) { if (!IsSEPlaying()) { - if (gUnknown_02039B4C->pokemonListCount != 0) + if (sPokedexView->pokemonListCount != 0) { PlaySE(SE_SEIKAI); sub_80C2618(gText_SearchCompleted); @@ -5068,11 +5069,11 @@ void sub_80C1AB8(u8 taskId) { if (gMain.newKeys & A_BUTTON) { - if (gUnknown_02039B4C->pokemonListCount != 0) + if (sPokedexView->pokemonListCount != 0) { - gUnknown_02039B4C->unk64E = 1; - gUnknown_02039B4C->dexMode = sub_80C2318(taskId, 5); - gUnknown_02039B4C->dexOrder = sub_80C2318(taskId, 4); + sPokedexView->unk64E = 1; + sPokedexView->dexMode = sub_80C2318(taskId, 5); + sPokedexView->dexOrder = sub_80C2318(taskId, 4); gTasks[taskId].func = sub_80C1D38; PlaySE(SE_PC_OFF); } @@ -5106,14 +5107,14 @@ void sub_80C1B64(u8 taskId) void sub_80C1BCC(u8 taskId) { u8 r1; - const struct UnknownStruct2 *r8; + const struct PokedexOption *r8; u16 *p1; u16 *p2; u16 r2; bool8 r3; r1 = gTasks[taskId].data[1]; - r8 = gUnknown_0856EFC8[r1].unk0; + r8 = gUnknown_0856EFC8[r1].pokedexList; p1 = &gTasks[taskId].data[gUnknown_0856EFC8[r1].unk4]; p2 = &gTasks[taskId].data[gUnknown_0856EFC8[r1].unk5]; r2 = gUnknown_0856EFC8[r1].unk6 - 1; @@ -5159,7 +5160,7 @@ void sub_80C1BCC(u8 taskId) if (r3) { PlaySE(SE_SELECT); - sub_80C2618(r8[*p1 + *p2].text1); + sub_80C2618(r8[*p1 + *p2].description); CopyWindowToVram(0, 2); } return; @@ -5183,7 +5184,7 @@ void sub_80C1BCC(u8 taskId) if (r3) { PlaySE(SE_SELECT); - sub_80C2618(r8[*p1 + *p2].text1); + sub_80C2618(r8[*p1 + *p2].description); CopyWindowToVram(0, 2); } return; @@ -5226,54 +5227,54 @@ void sub_80C1D98(u8 a, u8 b, u8 c, u8 d) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - adds r4, r3, 0\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r8, r1\n\ - lsls r2, 24\n\ - lsrs r5, r2, 24\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - movs r0, 0x3\n\ - bl GetBgTilemapBuffer\n\ - adds r2, r0, 0\n\ - movs r3, 0\n\ - cmp r3, r4\n\ - bcs _080C1DEC\n\ - lsls r0, r5, 6\n\ - adds r7, r0, r2\n\ - ldr r5, =0x00000fff\n\ - lsls r2, r6, 12\n\ + mov r7, r8\n\ + push {r7}\n\ + adds r4, r3, 0\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r8, r1\n\ + lsls r2, 24\n\ + lsrs r5, r2, 24\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + movs r0, 0x3\n\ + bl GetBgTilemapBuffer\n\ + adds r2, r0, 0\n\ + movs r3, 0\n\ + cmp r3, r4\n\ + bcs _080C1DEC\n\ + lsls r0, r5, 6\n\ + adds r7, r0, r2\n\ + ldr r5, =0x00000fff\n\ + lsls r2, r6, 12\n\ _080C1DC8:\n\ - mov r0, r8\n\ - adds r1, r0, r3\n\ - lsls r1, 1\n\ - adds r1, r7\n\ - ldrh r0, [r1]\n\ - ands r0, r5\n\ - orrs r0, r2\n\ - strh r0, [r1]\n\ - adds r1, 0x40\n\ - ldrh r0, [r1]\n\ - ands r0, r5\n\ - orrs r0, r2\n\ - strh r0, [r1]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, r4\n\ - bcc _080C1DC8\n\ + mov r0, r8\n\ + adds r1, r0, r3\n\ + lsls r1, 1\n\ + adds r1, r7\n\ + ldrh r0, [r1]\n\ + ands r0, r5\n\ + orrs r0, r2\n\ + strh r0, [r1]\n\ + adds r1, 0x40\n\ + ldrh r0, [r1]\n\ + ands r0, r5\n\ + orrs r0, r2\n\ + strh r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, r4\n\ + bcc _080C1DC8\n\ _080C1DEC:\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ .syntax divided\n"); } #endif @@ -5402,24 +5403,24 @@ void sub_80C20F8(u8 taskId) sub_80C12B0(0x28, 0x10, 0x60, 0x50); var = gTasks[taskId].data[6] + gTasks[taskId].data[7]; - sub_80C1270(gUnknown_0856EE5C[var].text2, 0x2D, 0x11); + sub_80C1270(gDexSearchAlphaOptions[var].title, 0x2D, 0x11); var = gTasks[taskId].data[8] + gTasks[taskId].data[9]; - sub_80C1270(gUnknown_0856EEB4[var].text2, 0x2D, 0x21); + sub_80C1270(gDexSearchColorOptions[var].title, 0x2D, 0x21); var = gTasks[taskId].data[10] + gTasks[taskId].data[11]; - sub_80C1270(gUnknown_0856EF14[var].text2, 0x2D, 0x31); + sub_80C1270(gDexSearchTypeOptions[var].title, 0x2D, 0x31); var = gTasks[taskId].data[12] + gTasks[taskId].data[13]; - sub_80C1270(gUnknown_0856EF14[var].text2, 0x5D, 0x31); + sub_80C1270(gDexSearchTypeOptions[var].title, 0x5D, 0x31); var = gTasks[taskId].data[4] + gTasks[taskId].data[5]; - sub_80C1270(gUnknown_0856EE24[var].text2, 0x2D, 0x41); + sub_80C1270(gDexSortOptions[var].title, 0x2D, 0x41); if (IsNationalPokedexEnabled()) { var = gTasks[taskId].data[2] + gTasks[taskId].data[3]; - sub_80C1270(gUnknown_0856EE0C[var].text2, 0x2D, 0x51); + sub_80C1270(gDexModeOptions[var].title, 0x2D, 0x51); } } @@ -5458,45 +5459,45 @@ void sub_80C21D4(u8 a) void sub_80C2294(u8 taskId) { - const struct UnknownStruct2 *r6 = gUnknown_0856EFC8[gTasks[taskId].data[1]].unk0; + const struct PokedexOption *r6 = gUnknown_0856EFC8[gTasks[taskId].data[1]].pokedexList; const u16 *r8 = &gTasks[taskId].data[gUnknown_0856EFC8[gTasks[taskId].data[1]].unk4]; const u16 *r7 = &gTasks[taskId].data[gUnknown_0856EFC8[gTasks[taskId].data[1]].unk5]; u16 i; u16 j; sub_80C267C(); - for (i = 0, j = *r7; i < 6 && r6[j].text2 != NULL; i++, j++) - sub_80C2668(i, r6[j].text2); - sub_80C2618(r6[*r8 + *r7].text1); + for (i = 0, j = *r7; i < 6 && r6[j].title != NULL; i++, j++) + sub_80C2668(i, r6[j].title); + sub_80C2618(r6[*r8 + *r7].description); } u8 sub_80C2318(u8 taskId, u8 b) { const u16 *ptr1 = &gTasks[taskId].data[gUnknown_0856EFC8[b].unk4]; const u16 *ptr2 = &gTasks[taskId].data[gUnknown_0856EFC8[b].unk5]; - u16 r2 = *ptr1 + *ptr2; + u16 type = *ptr1 + *ptr2; switch (b) { default: return 0; case 5: - return gUnknown_0856EFAC[r2]; + return gUnknown_0856EFAC[type]; case 4: - return gUnknown_0856EFAE[r2]; + return gUnknown_0856EFAE[type]; case 0: - if (r2 == 0) + if (type == 0) return 0xFF; else - return r2; + return type; case 1: - if (r2 == 0) + if (type == 0) return 0xFF; else - return r2 - 1; + return type - 1; case 2: case 3: - return gUnknown_0856EFB4[r2]; + return gDexSearchTypeIds[type]; } } @@ -5504,7 +5505,7 @@ void sub_80C23B8(u8 taskId) { u16 r3; - switch (gUnknown_02039B4C->unk614) + switch (sPokedexView->unk614) { default: case 0: @@ -5516,7 +5517,7 @@ void sub_80C23B8(u8 taskId) } gTasks[taskId].data[2] = r3; - switch (gUnknown_02039B4C->unk618) + switch (sPokedexView->unk618) { default: case 0: @@ -5599,12 +5600,12 @@ void sub_80C2594(u8 taskId) { u8 spriteId; - spriteId = CreateSprite(&gUnknown_0855D1AC, 184, 4, 0); + spriteId = CreateSprite(&sArrowSpriteTemplate, 184, 4, 0); gSprites[spriteId].data[0] = taskId; gSprites[spriteId].data[1] = 0; gSprites[spriteId].callback = sub_80C24E0; - spriteId = CreateSprite(&gUnknown_0855D1AC, 184, 108, 0); + spriteId = CreateSprite(&sArrowSpriteTemplate, 184, 108, 0); gSprites[spriteId].data[0] = taskId; gSprites[spriteId].data[1] = 1; gSprites[spriteId].vFlip = TRUE; diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c new file mode 100755 index 000000000..30a127c71 --- /dev/null +++ b/src/pokedex_area_screen.c @@ -0,0 +1,720 @@ +#include "global.h" +#include "bg.h" +#include "event_data.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "main.h" +#include "alloc.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "pokedex_area_screen.h" +#include "region_map.h" +#include "roamer.h" +#include "sound.h" +#include "string_util.h" +#include "trig.h" +#include "unk_pokedex_area_screen_helper.h" +#include "wild_encounter.h" +#include "constants/maps.h" +#include "constants/region_map_sections.h" +#include "constants/rgb.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/vars.h" + +struct PokeDexAreaScreenMapIdentity +{ + u8 mapGroup; + u8 mapNum; + u16 regionMapSectionId; +}; + +struct PokeDexAreaScreen +{ + /*0x000*/ void (*callback)(void); // unused + /*0x004*/ MainCallback prev; // unused + /*0x008*/ MainCallback next; // unused + /*0x00C*/ u16 state; // unused + /*0x00E*/ u16 species; + /*0x010*/ struct PokeDexAreaScreenMapIdentity overworldAreasWithMons[0x40]; + /*0x110*/ u16 numOverworldAreas; + /*0x112*/ u16 numSpecialAreas; + /*0x114*/ u16 drawAreaGlowState; + /*0x116*/ u16 areaGlowTilemap[0x280]; + /*0x616*/ u16 areaShadeOrMarkerFrameCounter; + /*0x618*/ u16 areaShadeFrameCounter; + /*0x61A*/ u16 areaShadeBldArgLo; + /*0x61C*/ u16 areaShadeBldArgHi; + /*0x61E*/ u8 whichMarkersFlashing; + /*0x61F*/ u8 specialMarkerCycleCounter; + /*0x620*/ u16 specialAreaRegionMapSectionIds[0x20]; + /*0x660*/ struct Sprite *areaMarkerSprites[0x20]; + /*0x6E0*/ u16 numAreaMarkerSprites; + /*0x6E2*/ u16 unk6E2; + /*0x6E4*/ u16 unk6E4; + /*0x6E8*/ u8 *errno; + /*0x6EC*/ struct RegionMap regionMap; + /*0xF70*/ u8 charBuffer[0x40]; + /*0xFB0*/ struct Sprite * areaUnknownSprites[3]; + /*0xFBC*/ u8 areaUnknownGraphicsBuffer[0x600]; +}; + +static EWRAM_DATA struct PokeDexAreaScreen *sPokedexAreaScreen = NULL; + +static void FindMapsWithMon(u16); +static void BuildAreaGlowTilemap(void); +static void SetAreaHasMon(u16, u16); +static void SetSpecialMapHasMon(u16, u16); +static u16 GetRegionMapSectionId(u8, u8); +static bool8 MapHasMon(const struct WildPokemonHeader *, u16); +static bool8 MonListHasMon(const struct WildPokemonInfo *, u16, u16); +static void DoAreaGlow(void); +static void Task_PokedexAreaScreen_0(u8); +static void CreateAreaMarkerSprites(void); +static void LoadAreaUnknownGraphics(void); +static void CreateAreaUnknownSprites(void); +static void Task_PokedexAreaScreen_1(u8); +static void sub_813D6B4(void); +static void DestroyAreaMarkerSprites(void); + +static const u32 sAreaGlow_Pal[] = INCBIN_U32("graphics/pokedex/area_glow.gbapal"); +static const u32 sAreaGlow_Gfx[] = INCBIN_U32("graphics/pokedex/area_glow.4bpp.lz"); + +static const u16 sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT }; + +static const u16 sMovingRegionMapSections[3] = { MAPSEC_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE, MAPSEC_TERRA_CAVE }; + +static const u16 sFeebasData[][3] = { + {SPECIES_FEEBAS, MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119)}, + {NUM_SPECIES} +}; + +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}, + {MAPSEC_MIRAGE_TOWER, FLAG_LANDMARK_MIRAGE_TOWER}, + {MAPSEC_DESERT_UNDERPASS, FLAG_LANDMARK_DESERT_UNDERPASS}, + {MAPSEC_ARTISAN_CAVE, FLAG_0x8DF}, + {MAPSEC_NONE} +}; + +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, +}; + +static const struct UnkStruct_1C4D70 sUnknown_085B4018 = { + .bg = 3, + .unk2 = 0, + .unk10 = 0, + .unk12 = 2, +}; + +static const u8 sAreaMarkerTiles[]; +static const struct SpriteSheet sAreaMarkerSpriteSheet = { + sAreaMarkerTiles, 0x80, 2 +}; + +static const u16 sAreaMarkerPalette[]; +static const struct SpritePalette sAreaMarkerSpritePalette = { + sAreaMarkerPalette, 2 +}; + +static const struct OamData sAreaMarkerOamData = { + .size = 1, + .priority = 1 +}; + +static const struct SpriteTemplate sAreaMarkerSpriteTemplate = { + 2, + 2, + &sAreaMarkerOamData, + gDummySpriteAnimTable, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +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 = { + gPokedexAreaScreenAreaUnknown_Pal, 3 +}; + +static const struct OamData sAreaUnknownOamData = { + .size = 2, + .priority = 1 +}; + +static const struct SpriteTemplate sAreaUnknownSpriteTemplate = { + 3, + 3, + &sAreaUnknownOamData, + gDummySpriteAnimTable, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +static void ResetDrawAreaGlowState(void) +{ + sPokedexAreaScreen->drawAreaGlowState = 0; +} + +static bool8 DrawAreaGlow(void) +{ + switch (sPokedexAreaScreen->drawAreaGlowState) + { + case 0: + FindMapsWithMon(sPokedexAreaScreen->species); + break; + case 1: + BuildAreaGlowTilemap(); + break; + case 2: + decompress_and_copy_tile_data_to_vram(2, sAreaGlow_Gfx, 0, 0, 0); + LoadBgTilemap(2, sPokedexAreaScreen->areaGlowTilemap, 0x500, 0); + break; + case 3: + if (!free_temp_tile_data_buffers_if_possible()) + { + CpuCopy32(sAreaGlow_Pal, gPlttBufferUnfaded + 0xA0, 0x20); + sPokedexAreaScreen->drawAreaGlowState++; + } + return TRUE; + case 4: + ChangeBgY(2, -0x800, 0); + break; + default: + return FALSE; + } + + sPokedexAreaScreen->drawAreaGlowState++; + return TRUE; +} + +static void FindMapsWithMon(u16 species) +{ + u16 i; + struct Roamer *roamer; + + sPokedexAreaScreen->unk6E2 = 0; + sPokedexAreaScreen->unk6E4 = VarGet(VAR_ALTERING_CAVE_WILD_SET); + if (sPokedexAreaScreen->unk6E4 > 8) + sPokedexAreaScreen->unk6E4 = 0; + + roamer = &gSaveBlock1Ptr->roamer; + if (species != roamer->species) + { + sPokedexAreaScreen->numOverworldAreas = 0; + sPokedexAreaScreen->numSpecialAreas = 0; + for (i = 0; i < ARRAY_COUNT(sSpeciesHiddenFromAreaScreen); i++) + { + if (sSpeciesHiddenFromAreaScreen[i] == species) + return; + } + + for (i = 0; sFeebasData[i][0] != NUM_SPECIES; i++) + { + if (species == sFeebasData[i][0]) + { + switch (sFeebasData[i][1]) + { + case MAP_GROUP(PETALBURG_CITY): + SetAreaHasMon(sFeebasData[i][1], sFeebasData[i][2]); + break; + case MAP_GROUP(METEOR_FALLS_1F_1R): + case MAP_GROUP(SAFARI_ZONE_NORTHWEST): + SetSpecialMapHasMon(sFeebasData[i][1], sFeebasData[i][2]); + break; + } + } + } + + for (i = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++) + { + if (MapHasMon(gWildMonHeaders + i, species)) + { + switch (gWildMonHeaders[i].mapGroup) + { + case MAP_GROUP(PETALBURG_CITY): + SetAreaHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); + break; + case MAP_GROUP(METEOR_FALLS_1F_1R): + case MAP_GROUP(SAFARI_ZONE_NORTHWEST): + SetSpecialMapHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); + break; + } + } + } + } + else + { + sPokedexAreaScreen->numSpecialAreas = 0; + if (roamer->active) + { + GetRoamerLocation(&sPokedexAreaScreen->overworldAreasWithMons[0].mapGroup, &sPokedexAreaScreen->overworldAreasWithMons[0].mapNum); + sPokedexAreaScreen->overworldAreasWithMons[0].regionMapSectionId = Overworld_GetMapHeaderByGroupAndId(sPokedexAreaScreen->overworldAreasWithMons[0].mapGroup, sPokedexAreaScreen->overworldAreasWithMons[0].mapNum)->regionMapSectionId; + sPokedexAreaScreen->numOverworldAreas = 1; + } + else + { + sPokedexAreaScreen->numOverworldAreas = 0; + } + } +} + +static void SetAreaHasMon(u16 mapGroup, u16 mapNum) +{ + if (sPokedexAreaScreen->numOverworldAreas < 0x40) + { + sPokedexAreaScreen->overworldAreasWithMons[sPokedexAreaScreen->numOverworldAreas].mapGroup = mapGroup; + sPokedexAreaScreen->overworldAreasWithMons[sPokedexAreaScreen->numOverworldAreas].mapNum = mapNum; + sPokedexAreaScreen->overworldAreasWithMons[sPokedexAreaScreen->numOverworldAreas].regionMapSectionId = CorrectSpecialMapSecId(Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId); + sPokedexAreaScreen->numOverworldAreas++; + } +} + +static void SetSpecialMapHasMon(u16 mapGroup, u16 mapNum) +{ + int i; + + if (sPokedexAreaScreen->numSpecialAreas < 0x20) + { + u16 regionMapSectionId = GetRegionMapSectionId(mapGroup, mapNum); + if (regionMapSectionId < MAPSEC_NONE) + { + for (i = 0; i < ARRAY_COUNT(sMovingRegionMapSections); i++) + { + if (regionMapSectionId == sMovingRegionMapSections[i]) + return; + } + + for (i = 0; sLandmarkData[i][0] != MAPSEC_NONE; i++) + { + if (regionMapSectionId == sLandmarkData[i][0] && !FlagGet(sLandmarkData[i][1])) + return; + } + + for (i = 0; i < sPokedexAreaScreen->numSpecialAreas; i++) + { + if (sPokedexAreaScreen->specialAreaRegionMapSectionIds[i] == regionMapSectionId) + break; + } + + if (i == sPokedexAreaScreen->numSpecialAreas) + { + sPokedexAreaScreen->specialAreaRegionMapSectionIds[i] = regionMapSectionId; + sPokedexAreaScreen->numSpecialAreas++; + } + } + } +} + +static u16 GetRegionMapSectionId(u8 mapGroup, u8 mapNum) +{ + return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId; +} + +static bool8 MapHasMon(const struct WildPokemonHeader *info, u16 species) +{ + if (GetRegionMapSectionId(info->mapGroup, info->mapNum) == MAPSEC_ALTERING_CAVE_2) + { + sPokedexAreaScreen->unk6E2++; + if (sPokedexAreaScreen->unk6E2 != sPokedexAreaScreen->unk6E4 + 1) + return FALSE; + } + + if (MonListHasMon(info->landMonsInfo, species, 12)) + return TRUE; + if (MonListHasMon(info->waterMonsInfo, species, 5)) + return TRUE; + if (MonListHasMon(info->fishingMonsInfo, species, 12)) + return TRUE; + if (MonListHasMon(info->rockSmashMonsInfo, species, 5)) + return TRUE; + return FALSE; +} + +static bool8 MonListHasMon(const struct WildPokemonInfo *info, u16 species, u16 size) +{ + u16 i; + if (info != NULL) + { + for (i = 0; i < size; i++) + { + if (info->wildPokemon[i].species == species) + return TRUE; + } + } + return FALSE; +} + +static void BuildAreaGlowTilemap(void) +{ + u16 i, y, x, j; + u16 val; + + for (i = 0; i < 0x280; i++) + sPokedexAreaScreen->areaGlowTilemap[i] = 0; + + for (i = 0; i < sPokedexAreaScreen->numOverworldAreas; i++) + { + j = 0; + for (y = 0; y < 20; y++) + { + for (x = 0; x < 32; x++) + { + if (GetRegionMapSectionIdAt(x, y) == sPokedexAreaScreen->overworldAreasWithMons[i].regionMapSectionId) + sPokedexAreaScreen->areaGlowTilemap[j] = 0xFFFF; + + j++; + } + } + } + + j = 0; + for (y = 0; y < 20; y++) + { + for (x = 0; x < 32; x++) + { + if (sPokedexAreaScreen->areaGlowTilemap[j] == 0xFFFF) + { + 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; + } + + j++; + } + } + + for (i = 0; i < 0x280; i++) + { + if (sPokedexAreaScreen->areaGlowTilemap[i] == 0xFFFF) + { + 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; + + sPokedexAreaScreen->areaGlowTilemap[i] = sAreaGlowTilemapMapping[sPokedexAreaScreen->areaGlowTilemap[i]]; + sPokedexAreaScreen->areaGlowTilemap[i] |= 0xA000; + } + } +} + +static void StartAreaGlow(void) +{ + if (sPokedexAreaScreen->numSpecialAreas && sPokedexAreaScreen->numOverworldAreas == 0) + sPokedexAreaScreen->whichMarkersFlashing = 1; + else + sPokedexAreaScreen->whichMarkersFlashing = 0; + + sPokedexAreaScreen->areaShadeOrMarkerFrameCounter = 0; + sPokedexAreaScreen->areaShadeFrameCounter = 0; + sPokedexAreaScreen->areaShadeBldArgLo = 0; + sPokedexAreaScreen->areaShadeBldArgHi = 0x40; + sPokedexAreaScreen->specialMarkerCycleCounter = 1; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); + DoAreaGlow(); +} + +static void DoAreaGlow(void) +{ + u16 x, y; + u16 i; + + if (sPokedexAreaScreen->whichMarkersFlashing == 0) + { + if (sPokedexAreaScreen->areaShadeOrMarkerFrameCounter == 0) + { + sPokedexAreaScreen->areaShadeFrameCounter++; + if (sPokedexAreaScreen->areaShadeFrameCounter & 1) + sPokedexAreaScreen->areaShadeBldArgLo = (sPokedexAreaScreen->areaShadeBldArgLo + 4) & 0x7f; + else + sPokedexAreaScreen->areaShadeBldArgHi = (sPokedexAreaScreen->areaShadeBldArgHi + 4) & 0x7f; + + x = gSineTable[sPokedexAreaScreen->areaShadeBldArgLo] >> 4; + y = gSineTable[sPokedexAreaScreen->areaShadeBldArgHi] >> 4; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(x, y)); + sPokedexAreaScreen->areaShadeOrMarkerFrameCounter = 0; + if (sPokedexAreaScreen->areaShadeFrameCounter == 0x40) + { + sPokedexAreaScreen->areaShadeFrameCounter = 0; + if (sPokedexAreaScreen->numSpecialAreas != 0) + sPokedexAreaScreen->whichMarkersFlashing = 1; + } + } + else + sPokedexAreaScreen->areaShadeOrMarkerFrameCounter--; + } + else + { + sPokedexAreaScreen->areaShadeOrMarkerFrameCounter++; + if (sPokedexAreaScreen->areaShadeOrMarkerFrameCounter > 12) + { + sPokedexAreaScreen->areaShadeOrMarkerFrameCounter = 0; + sPokedexAreaScreen->specialMarkerCycleCounter++; + for (i = 0; i < sPokedexAreaScreen->numSpecialAreas; i++) + sPokedexAreaScreen->areaMarkerSprites[i]->invisible = sPokedexAreaScreen->specialMarkerCycleCounter & 1; + + if (sPokedexAreaScreen->specialMarkerCycleCounter > 4) + { + sPokedexAreaScreen->specialMarkerCycleCounter = 1; + if (sPokedexAreaScreen->numOverworldAreas != 0) + sPokedexAreaScreen->whichMarkersFlashing = 0; + } + } + } +} + +void ShowPokedexAreaScreen(u16 species, u8 *errno) +{ + u8 taskId; + + sPokedexAreaScreen = AllocZeroed(sizeof(*sPokedexAreaScreen)); + sPokedexAreaScreen->species = species; + sPokedexAreaScreen->errno = errno; + errno[0] = 0; + taskId = CreateTask(Task_PokedexAreaScreen_0, 0); + gTasks[taskId].data[0] = 0; +} + +static void Task_PokedexAreaScreen_0(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + ResetSpriteData(); + FreeAllSpritePalettes(); + HideBg(3); + HideBg(2); + HideBg(0); + break; + case 1: + SetBgAttribute(3, BG_CTRL_ATTR_VISIBLE, 3); + sub_81C4D70(&sUnknown_085B4018); + StringFill(sPokedexAreaScreen->charBuffer, CHAR_SPACE, 16); + break; + case 2: + if (sub_81C4E90() == TRUE) + return; + sub_81C4ED0(-8); + break; + case 3: + ResetDrawAreaGlowState(); + break; + case 4: + if (DrawAreaGlow()) + return; + break; + case 5: + sub_8122D88(&sPokedexAreaScreen->regionMap); + CreateRegionMapPlayerIcon(1, 1); + PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(0, -8); + break; + case 6: + CreateAreaMarkerSprites(); + break; + case 7: + LoadAreaUnknownGraphics(); + break; + case 8: + CreateAreaUnknownSprites(); + break; + case 9: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 16, 0, RGB(0, 0, 0)); + break; + case 10: + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_ALL); + StartAreaGlow(); + ShowBg(2); + ShowBg(3); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON); + break; + case 11: + gTasks[taskId].func = Task_PokedexAreaScreen_1; + gTasks[taskId].data[0] = 0; + return; + } + + gTasks[taskId].data[0]++; +} + +static void Task_PokedexAreaScreen_1(u8 taskId) +{ + DoAreaGlow(); + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + // fall through + case 0: + if (gPaletteFade.active) + return; + break; + case 1: + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[1] = 1; + PlaySE(SE_PC_OFF); + } + else if (gMain.newKeys & DPAD_RIGHT || (gMain.newKeys & R_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) + { + gTasks[taskId].data[1] = 2; + PlaySE(SE_Z_PAGE); + } + else + return; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFEB, 0, 0, 16, RGB(0, 0, 0)); + break; + case 3: + if (gPaletteFade.active) + return; + DestroyAreaMarkerSprites(); + sPokedexAreaScreen->errno[0] = gTasks[taskId].data[1]; + sub_813D6B4(); + DestroyTask(taskId); + sub_81C4EB4(); + FREE_AND_SET_NULL(sPokedexAreaScreen); + return; + } + + gTasks[taskId].data[0]++; +} + +static void sub_813D6B4(void) +{ + SetBgAttribute(3, BG_CTRL_ATTR_VISIBLE, 0); + SetBgAttribute(3, BG_CTRL_ATTR_SCREENSIZE, 0); +} + +static void CreateAreaMarkerSprites(void) +{ + u8 spriteId; + static IWRAM_DATA s16 x; + static IWRAM_DATA s16 y; + static IWRAM_DATA s16 i; + static IWRAM_DATA s16 mapSecId; + static IWRAM_DATA s16 numSprites; + + LoadSpriteSheet(&sAreaMarkerSpriteSheet); + LoadSpritePalette(&sAreaMarkerSpritePalette); + numSprites = 0; + for (i = 0; i < sPokedexAreaScreen->numSpecialAreas; i++) + { + mapSecId = sPokedexAreaScreen->specialAreaRegionMapSectionIds[i]; + x = 8 * (gRegionMapEntries[mapSecId].x + 1) + 4; + y = 8 * (gRegionMapEntries[mapSecId].y) + 28; + x += 4 * (gRegionMapEntries[mapSecId].width - 1); + y += 4 * (gRegionMapEntries[mapSecId].height - 1); + spriteId = CreateSprite(&sAreaMarkerSpriteTemplate, x, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].invisible = TRUE; + sPokedexAreaScreen->areaMarkerSprites[numSprites++] = &gSprites[spriteId]; + } + } + + sPokedexAreaScreen->numAreaMarkerSprites = numSprites; +} + +static void DestroyAreaMarkerSprites(void) +{ + u16 i; + FreeSpriteTilesByTag(2); + FreeSpritePaletteByTag(2); + for (i = 0; i < sPokedexAreaScreen->numAreaMarkerSprites; i++) + DestroySprite(sPokedexAreaScreen->areaMarkerSprites[i]); + + FreeSpriteTilesByTag(3); + FreeSpritePaletteByTag(3); + for (i = 0; i < 3; i++) + { + if (sPokedexAreaScreen->areaUnknownSprites[i]) + DestroySprite(sPokedexAreaScreen->areaUnknownSprites[i]); + } +} + +static void LoadAreaUnknownGraphics(void) +{ + struct SpriteSheet spriteSheet = { + .data = sPokedexAreaScreen->areaUnknownGraphicsBuffer, + .size = 0x600, + .tag = 3, + }; + LZ77UnCompWram(gPokedexAreaScreenAreaUnknown_Gfx, sPokedexAreaScreen->areaUnknownGraphicsBuffer); + LoadSpriteSheet(&spriteSheet); + LoadSpritePalette(&sAreaUnknownSpritePalette); +} + +static void CreateAreaUnknownSprites(void) +{ + u16 i; + u8 spriteId; + + if (sPokedexAreaScreen->numOverworldAreas || sPokedexAreaScreen->numSpecialAreas) + { + for (i = 0; i < 3; i++) + sPokedexAreaScreen->areaUnknownSprites[i] = NULL; + } + else + { + for (i = 0; i < 3; i++) + { + spriteId = CreateSprite(&sAreaUnknownSpriteTemplate, i * 32 + 0xa0, 0x8c, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.tileNum += i * 16; + sPokedexAreaScreen->areaUnknownSprites[i] = gSprites + spriteId; + } + else + { + sPokedexAreaScreen->areaUnknownSprites[i] = NULL; + } + } + } +} diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c new file mode 100755 index 000000000..4a9227b99 --- /dev/null +++ b/src/pokedex_cry_screen.c @@ -0,0 +1,511 @@ +#include "global.h" +#include "bg.h" +#include "m4a.h" +#include "main.h" +#include "alloc.h" +#include "palette.h" +#include "pokedex_cry_screen.h" +#include "sound.h" +#include "trig.h" +#include "window.h" + +struct PokedexCryVolumeMeter { + s8 unk0; + s8 unk1; + u8 unk2; + u16 needleSpriteId; +}; + +struct PokedexCryScreen +{ + u8 unk0[16]; + u8 unk10; + u8 unk11; + u8 unk12; + u16 unk14; + u8 unk16; + u16 species; + u8 unk1A; + u8 unk1B; +}; + +static void sub_8145588(u16); +static void sub_81455A8(void); +static void sub_814560C(void); +static void sub_8145648(u8); +static void sub_81456A8(u8, u8); +static void sub_8145814(u8); +static void sub_8145824(u8, s16, u8); +static void sub_814596C(struct Sprite *); +static void sub_8145B24(s8); + +extern u8 gDexCryScreenState; +static EWRAM_DATA struct PokedexCryScreen *sDexCryScreen = NULL; +static EWRAM_DATA u8 *sCryWaveformWindowTiledata = NULL; +static EWRAM_DATA struct PokedexCryVolumeMeter *sCryVolumeMeter = NULL; + +const u16 CryMeterNeedlePalette[] = INCBIN_U16("graphics/pokedex/cry_meter_needle.gbapal"); +const u8 CryMeterNeedleTiles[] = INCBIN_U8("graphics/pokedex/cry_meter_needle.4bpp"); + +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] = { + { + 0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C, + 0x0400, 0x0404, 0x0408, 0x040C, 0x0410, 0x0414, 0x0418, 0x041C, + 0x0800, 0x0804, 0x0808, 0x080C, 0x0810, 0x0814, 0x0818, 0x081C, + 0x0C00, 0x0C04, 0x0C08, 0x0C0C, 0x0C10, 0x0C14, 0x0C18, 0x0C1C, + 0x1000, 0x1004, 0x1008, 0x100C, 0x1010, 0x1014, 0x1018, 0x101C, + 0x1400, 0x1404, 0x1408, 0x140C, 0x1410, 0x1414, 0x1418, 0x141C, + 0x1800, 0x1804, 0x1808, 0x180C, 0x1810, 0x1814, 0x1818, 0x181C, + 0x1C00, 0x1C04, 0x1C08, 0x1C0C, 0x1C10, 0x1C14, 0x1C18, 0x1C1C, + 0x2000, 0x2004, 0x2008, 0x200C, 0x2010, 0x2014, 0x2018, 0x201C + }, { + 0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C, + 0x0400, 0x0404, 0x0408, 0x040C, 0x0410, 0x0414, 0x0418, 0x041C, + 0x0800, 0x0804, 0x0808, 0x080C, 0x0810, 0x0814, 0x0818, 0x081C, + 0x0C00, 0x0C04, 0x0C08, 0x0C0C, 0x0C10, 0x0C14, 0x0C18, 0x0C1C, + 0x1000, 0x1004, 0x1008, 0x100C, 0x1010, 0x1014, 0x1018, 0x101C, + 0x1400, 0x1404, 0x1408, 0x140C, 0x1410, 0x1414, 0x1418, 0x141C, + 0x1800, 0x1804, 0x1808, 0x180C, 0x1810, 0x1814, 0x1818, 0x181C, + 0x1C00, 0x1C04, 0x1C08, 0x1C0C, 0x1C10, 0x1C14, 0x1C18, 0x1C1C, + 0x2000, 0x2004, 0x2008, 0x200C, 0x2010, 0x2014, 0x2018, 0x201C + }, { + 0x0001, 0x0005, 0x0009, 0x000D, 0x0011, 0x0015, 0x0019, 0x001D, + 0x0401, 0x0405, 0x0409, 0x040D, 0x0411, 0x0415, 0x0419, 0x041D, + 0x0801, 0x0805, 0x0809, 0x080D, 0x0811, 0x0815, 0x0819, 0x081D, + 0x0C01, 0x0C05, 0x0C09, 0x0C0D, 0x0C11, 0x0C15, 0x0C19, 0x0C1D, + 0x1001, 0x1005, 0x1009, 0x100D, 0x1011, 0x1015, 0x1019, 0x101D, + 0x1401, 0x1405, 0x1409, 0x140D, 0x1411, 0x1415, 0x1419, 0x141D, + 0x1801, 0x1805, 0x1809, 0x180D, 0x1811, 0x1815, 0x1819, 0x181D, + 0x1C01, 0x1C05, 0x1C09, 0x1C0D, 0x1C11, 0x1C15, 0x1C19, 0x1C1D, + 0x2001, 0x2005, 0x2009, 0x200D, 0x2011, 0x2015, 0x2019, 0x201D + }, { + 0x0001, 0x0005, 0x0009, 0x000D, 0x0011, 0x0015, 0x0019, 0x001D, + 0x0401, 0x0405, 0x0409, 0x040D, 0x0411, 0x0415, 0x0419, 0x041D, + 0x0801, 0x0805, 0x0809, 0x080D, 0x0811, 0x0815, 0x0819, 0x081D, + 0x0C01, 0x0C05, 0x0C09, 0x0C0D, 0x0C11, 0x0C15, 0x0C19, 0x0C1D, + 0x1001, 0x1005, 0x1009, 0x100D, 0x1011, 0x1015, 0x1019, 0x101D, + 0x1401, 0x1405, 0x1409, 0x140D, 0x1411, 0x1415, 0x1419, 0x141D, + 0x1801, 0x1805, 0x1809, 0x180D, 0x1811, 0x1815, 0x1819, 0x181D, + 0x1C01, 0x1C05, 0x1C09, 0x1C0D, 0x1C11, 0x1C15, 0x1C19, 0x1C1D, + 0x2001, 0x2005, 0x2009, 0x200D, 0x2011, 0x2015, 0x2019, 0x201D + }, { + 0x0002, 0x0006, 0x000A, 0x000E, 0x0012, 0x0016, 0x001A, 0x001E, + 0x0402, 0x0406, 0x040A, 0x040E, 0x0412, 0x0416, 0x041A, 0x041E, + 0x0802, 0x0806, 0x080A, 0x080E, 0x0812, 0x0816, 0x081A, 0x081E, + 0x0C02, 0x0C06, 0x0C0A, 0x0C0E, 0x0C12, 0x0C16, 0x0C1A, 0x0C1E, + 0x1002, 0x1006, 0x100A, 0x100E, 0x1012, 0x1016, 0x101A, 0x101E, + 0x1402, 0x1406, 0x140A, 0x140E, 0x1412, 0x1416, 0x141A, 0x141E, + 0x1802, 0x1806, 0x180A, 0x180E, 0x1812, 0x1816, 0x181A, 0x181E, + 0x1C02, 0x1C06, 0x1C0A, 0x1C0E, 0x1C12, 0x1C16, 0x1C1A, 0x1C1E, + 0x2002, 0x2006, 0x200A, 0x200E, 0x2012, 0x2016, 0x201A, 0x201E + }, { + 0x0002, 0x0006, 0x000A, 0x000E, 0x0012, 0x0016, 0x001A, 0x001E, + 0x0402, 0x0406, 0x040A, 0x040E, 0x0412, 0x0416, 0x041A, 0x041E, + 0x0802, 0x0806, 0x080A, 0x080E, 0x0812, 0x0816, 0x081A, 0x081E, + 0x0C02, 0x0C06, 0x0C0A, 0x0C0E, 0x0C12, 0x0C16, 0x0C1A, 0x0C1E, + 0x1002, 0x1006, 0x100A, 0x100E, 0x1012, 0x1016, 0x101A, 0x101E, + 0x1402, 0x1406, 0x140A, 0x140E, 0x1412, 0x1416, 0x141A, 0x141E, + 0x1802, 0x1806, 0x180A, 0x180E, 0x1812, 0x1816, 0x181A, 0x181E, + 0x1C02, 0x1C06, 0x1C0A, 0x1C0E, 0x1C12, 0x1C16, 0x1C1A, 0x1C1E, + 0x2002, 0x2006, 0x200A, 0x200E, 0x2012, 0x2016, 0x201A, 0x201E + }, { + 0x0003, 0x0007, 0x000B, 0x000F, 0x0013, 0x0017, 0x001B, 0x001F, + 0x0403, 0x0407, 0x040B, 0x040F, 0x0413, 0x0417, 0x041B, 0x041F, + 0x0803, 0x0807, 0x080B, 0x080F, 0x0813, 0x0817, 0x081B, 0x081F, + 0x0C03, 0x0C07, 0x0C0B, 0x0C0F, 0x0C13, 0x0C17, 0x0C1B, 0x0C1F, + 0x1003, 0x1007, 0x100B, 0x100F, 0x1013, 0x1017, 0x101B, 0x101F, + 0x1403, 0x1407, 0x140B, 0x140F, 0x1413, 0x1417, 0x141B, 0x141F, + 0x1803, 0x1807, 0x180B, 0x180F, 0x1813, 0x1817, 0x181B, 0x181F, + 0x1C03, 0x1C07, 0x1C0B, 0x1C0F, 0x1C13, 0x1C17, 0x1C1B, 0x1C1F, + 0x2003, 0x2007, 0x200B, 0x200F, 0x2013, 0x2017, 0x201B, 0x201F + }, { + 0x0003, 0x0007, 0x000B, 0x000F, 0x0013, 0x0017, 0x001B, 0x001F, + 0x0403, 0x0407, 0x040B, 0x040F, 0x0413, 0x0417, 0x041B, 0x041F, + 0x0803, 0x0807, 0x080B, 0x080F, 0x0813, 0x0817, 0x081B, 0x081F, + 0x0C03, 0x0C07, 0x0C0B, 0x0C0F, 0x0C13, 0x0C17, 0x0C1B, 0x0C1F, + 0x1003, 0x1007, 0x100B, 0x100F, 0x1013, 0x1017, 0x101B, 0x101F, + 0x1403, 0x1407, 0x140B, 0x140F, 0x1413, 0x1417, 0x141B, 0x141F, + 0x1803, 0x1807, 0x180B, 0x180F, 0x1813, 0x1817, 0x181B, 0x181F, + 0x1C03, 0x1C07, 0x1C0B, 0x1C0F, 0x1C13, 0x1C17, 0x1C1B, 0x1C1F, + 0x2003, 0x2007, 0x200B, 0x200F, 0x2013, 0x2017, 0x201B, 0x201F + } +}; + +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] = { + { + 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F + }, { + 0xF0, 0xE0, 0xD0, 0xC0, 0xB0, 0xA0, 0x90, 0x80, + 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0 + } +}; + +const union AnimCmd gSpriteAnim_85B8C54[] = { + ANIMCMD_FRAME(0, 30), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_85B8C5C[] = { + gSpriteAnim_85B8C54 +}; + +const struct OamData gOamData_85B8C60 = { + .y = 160, + .affineMode = ST_OAM_AFFINE_NORMAL, + .size = 3, + .priority = 1 +}; + +const struct SpriteTemplate gUnknown_085B8C68 = { + 0x2000, + 0x2000, + &gOamData_85B8C60, + gSpriteAnimTable_85B8C5C, + NULL, + gDummySpriteAffineAnimTable, + sub_814596C +}; + +const struct SpriteSheet gCryMeterNeedleSpriteSheets[] = { + {CryMeterNeedleTiles, 0x800, 0x2000}, + {} +}; + +const struct SpritePalette gCryMeterNeedleSpritePalettes[] = { + {CryMeterNeedlePalette, 0x2000}, + {} +}; + +bool8 sub_8145354(struct CryRelatedStruct *arg0, u8 windowId) +{ + u8 i; + u8 retVal = FALSE; + + switch (gDexCryScreenState) + { + case 0: + if (!sDexCryScreen) + { + sDexCryScreen = AllocZeroed(sizeof(*sDexCryScreen)); + sCryWaveformWindowTiledata = (u8*)GetWindowAttribute(windowId, WINDOW_TILE_DATA); + } + + sDexCryScreen->unk14 = arg0->unk0; + sDexCryScreen->unk16 = arg0->yPos; + sDexCryScreen->unk1A = 0; + sDexCryScreen->unk1B = 0; + sDexCryScreen->unk10 = 0; + sDexCryScreen->unk12 = 28; + sDexCryScreen->unk11 = 0; + sub_8145824(windowId, -8 * arg0->xPos, 1); + for (i = 0; i < 224; i++) + CopyToWindowPixelBuffer(windowId, gUnknown_085B8C10, TILE_SIZE_4BPP, i); + + gDexCryScreenState++; + break; + case 1: + for (i = 0; i < sDexCryScreen->unk16 * 8; i++) + sub_81456A8(i, 0); + + gDexCryScreenState++; + break; + case 2: + sub_8145814(windowId); + LoadPalette(gUnknown_085B8BF0, arg0->paletteNo * 16, 32); + retVal = TRUE; + break; + } + + return retVal; +} + +void sub_814545C(u8 windowId) +{ + u8 var0; + + sub_8145814(windowId); + sub_8145648(windowId); + if (sDexCryScreen->unk1B) + sDexCryScreen->unk1B--; + + if (sDexCryScreen->unk1A) + { + sDexCryScreen->unk1A--; + if (!sDexCryScreen->unk1A) + { + sub_8145588(sDexCryScreen->species); + sub_814560C(); + return; + } + } + + if (sDexCryScreen->unk10 == 0) + { + sub_814560C(); + return; + } + + if (sDexCryScreen->unk10 == 1) + { + sub_81455A8(); + } + else if (sDexCryScreen->unk10 > 8) + { + if (!IsCryPlaying()) + { + sub_814560C(); + sDexCryScreen->unk10 = 0; + return; + } + + sub_81455A8(); + sDexCryScreen->unk10 = 1; + } + + var0 = 2 * (sDexCryScreen->unk10 - 1); + sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 2, sDexCryScreen->unk0[var0]); + sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 1, sDexCryScreen->unk0[var0 + 1]); + sDexCryScreen->unk10++; +} + +void sub_8145534(u16 species) +{ + if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE && !sDexCryScreen->unk1A) + { + if (!sDexCryScreen->unk1B) + { + sDexCryScreen->unk1B = 4; + if (IsCryPlaying() == TRUE) + { + StopCry(); + sDexCryScreen->species = species; + sDexCryScreen->unk1A = 2; + } + else + { + sub_8145588(species); + } + } + } +} + +static void sub_8145588(u16 species) +{ + PlayCry2(species, 0, 0x7d, 10); + sDexCryScreen->unk10 = 1; +} + +static void sub_81455A8(void) +{ + u8 i; + s8 *baseBuffer; + s8 *buffer; + + if (gPcmDmaCounter < 2) + baseBuffer = gSoundInfo.pcmBuffer; + else + baseBuffer = gSoundInfo.pcmBuffer + (gSoundInfo.pcmDmaPeriod + 1 - gPcmDmaCounter) * gSoundInfo.pcmSamplesPerVBlank; + + buffer = baseBuffer + 0x630; + for (i = 0; i < 16; i++) + sDexCryScreen->unk0[i] = buffer[i * 2] * 2; +} + +static void sub_814560C(void) +{ + sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 2, 0); + sub_81456A8(sDexCryScreen->unk16 * 8 + sDexCryScreen->unk11 - 1, 0); +} + +static void sub_8145648(u8 windowId) +{ + u8 i; + u16 offset; + + sub_8145824(windowId, sDexCryScreen->unk11, 0); + sDexCryScreen->unk11 += 2; + offset = (sDexCryScreen->unk11 / 8 + sDexCryScreen->unk16 + 1) % 32; + for (i = 0; i < 7; i++) + CopyToWindowPixelBuffer(windowId, gUnknown_085B8C10, TILE_SIZE_4BPP, offset + (i * TILE_SIZE_4BPP)); +} + +static void sub_81456A8(u8 a0, u8 a1) +{ + u8 sp0; + u8 r6; + u8 r8; + u16 offset; + u16 r1; + u8 i; + + r1 = (a1 + 127) * 256; + i = r1 / 1152.0; + if (i > 55) + i = 55; + sp0 = i; + r6 = a0 & 1; + if (i > sDexCryScreen->unk12) + { + do + { + offset = gUnknown_085B8770[a0 & 0x7][i] + (a0 / 8) * TILE_SIZE_4BPP; + sCryWaveformWindowTiledata[offset] &= gUnknown_085B8C30[r6]; + sCryWaveformWindowTiledata[offset] |= gUnknown_085B8C32[r6][((i / 3) - 1) & 0x0F]; + i--; + } while (i > sDexCryScreen->unk12); + } + else + { + do + { + offset = gUnknown_085B8770[a0 & 0x7][i] + (a0 / 8) * TILE_SIZE_4BPP; + sCryWaveformWindowTiledata[offset] &= gUnknown_085B8C30[r6]; + sCryWaveformWindowTiledata[offset] |= gUnknown_085B8C32[r6][((i / 3) - 1) & 0x0F]; + i++; + } while (i < sDexCryScreen->unk12); + } + + sDexCryScreen->unk12 = sp0; +} + +static void sub_8145814(u8 windowId) +{ + CopyWindowToVram(windowId, 2); +} + +static void sub_8145824(u8 windowId, s16 arg1, u8 arg2) +{ + if (!arg2) + { + u8 bg = GetWindowAttribute(windowId, WINDOW_BG); + ChangeBgX(bg, arg1 << 8, 0); + } +} + +bool8 sub_8145850(struct CryRelatedStruct *arg0, u8 windowId) +{ + int retVal = FALSE; + + switch (gDexCryScreenState) + { + case 0: + if (!sCryVolumeMeter) + sCryVolumeMeter = AllocZeroed(sizeof(*sCryVolumeMeter)); + + CopyToWindowPixelBuffer(windowId, gUnknown_085B8438, 0, 0); + LoadPalette(gUnknown_085B8418, arg0->paletteNo * 16, 32); + gDexCryScreenState++; + break; + case 1: + LoadSpriteSheets(gCryMeterNeedleSpriteSheets); + LoadSpritePalettes(gCryMeterNeedleSpritePalettes); + sCryVolumeMeter->needleSpriteId = CreateSprite(&gUnknown_085B8C68, 40 + arg0->xPos * 8, 56 + arg0->yPos * 8, 1); + sCryVolumeMeter->unk0 = 0x20; + sCryVolumeMeter->unk1 = 0x20; + sCryVolumeMeter->unk2 = 0; + retVal = TRUE; + break; + } + + return retVal; +} + +void sub_8145914(void) +{ + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[sCryVolumeMeter->needleSpriteId].oam.paletteNum)); + DestroySprite(gSprites + sCryVolumeMeter->needleSpriteId); + FREE_AND_SET_NULL(sDexCryScreen); + FREE_AND_SET_NULL(sCryVolumeMeter); +} + +static void sub_814596C(struct Sprite *sprite) +{ + u16 i; + s8 r3; + s16 x; + s16 y; + struct ObjAffineSrcData affine; + struct OamMatrix matrix; + u8 *var0; + + gSprites[sCryVolumeMeter->needleSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[sCryVolumeMeter->needleSpriteId].oam.affineParam = 0; + switch (sDexCryScreen->unk10) + { + case 0: + sCryVolumeMeter->unk1 = 0x20; + if (sCryVolumeMeter->unk0 > 0) + { + if (sCryVolumeMeter->unk2 != 1) + sCryVolumeMeter->unk2--; + } + else + sCryVolumeMeter->unk2 = 5; + break; + case 2: + r3 = 0; + for (i = 0; i < 16; i++) + { + if (r3 < sDexCryScreen->unk0[i]) + r3 = sDexCryScreen->unk0[i]; + } + sub_8145B24(r3 * 0xd0 / 0x100); + break; + case 6: + var0 = &sDexCryScreen->unk0[10]; + sub_8145B24(*var0 * 0xd0 / 0x100); + break; + } + + if (sCryVolumeMeter->unk0 == sCryVolumeMeter->unk1) + { + // empty block + } + else if (sCryVolumeMeter->unk0 < sCryVolumeMeter->unk1) + { + sCryVolumeMeter->unk0 += sCryVolumeMeter->unk2; + if (sCryVolumeMeter->unk0 > sCryVolumeMeter->unk1) + { + sCryVolumeMeter->unk0 = sCryVolumeMeter->unk1; + sCryVolumeMeter->unk1 = 0; + } + } + else + { + sCryVolumeMeter->unk0 -= sCryVolumeMeter->unk2; + if (sCryVolumeMeter->unk0 < sCryVolumeMeter->unk1) + { + sCryVolumeMeter->unk0 = sCryVolumeMeter->unk1; + sCryVolumeMeter->unk1 = 0; + } + } + + affine.xScale = 0x100; + affine.yScale = 0x100; + affine.rotation = sCryVolumeMeter->unk0 * 256; + ObjAffineSet(&affine, &matrix, 1, 2); + SetOamMatrix(0, matrix.a, matrix.b, matrix.c, matrix.d); + x = gSineTable[((sCryVolumeMeter->unk0 + 0x7F) & 0xFF)]; + y = gSineTable[((sCryVolumeMeter->unk0 + 0x7F) & 0xFF) + 0x40]; + sprite->pos2.x = x * 24 / 256; + sprite->pos2.y = y * 24 / 256; +} + +static void sub_8145B24(s8 a0) +{ + u16 r2 = (0x20 - a0) & 0xff; + if (r2 > 0x20 && r2 < 0xe0) + r2 = 0xe0; + + sCryVolumeMeter->unk1 = r2; + sCryVolumeMeter->unk2 = 5; +} diff --git a/src/pokemon.c b/src/pokemon.c index 0f7c80b77..14b4ea388 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -12,7 +12,7 @@ #include "item.h" #include "link.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "m4a.h" #include "pokedex.h" #include "pokeblock.h" @@ -45,12 +45,6 @@ struct SpeciesItem u16 item; }; -// Extracts the upper 16 bits of a 32-bit number -#define HIHALF(n) (((n) & 0xFFFF0000) >> 16) - -// Extracts the lower 16 bits of a 32-bit number -#define LOHALF(n) ((n) & 0xFFFF) - extern const struct OamData gUnknown_0831ACB0; extern const struct OamData gUnknown_0831ACA8; extern const struct SpriteFrameImage gUnknown_082FF3A8[]; @@ -107,1252 +101,1253 @@ EWRAM_DATA struct Unknown_806F160_Struct *gUnknown_020249B4[2] = {NULL}; #include "data/battle_moves.h" static const u8 sUnreferencedData[] = {0x34, 0x00, 0x10, 0x00, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00}; +#define SPECIES_TO_HOENN(name) [SPECIES_##name - 1] = HOENN_DEX_##name +#define SPECIES_TO_NATIONAL(name) [SPECIES_##name - 1] = NATIONAL_DEX_##name +#define HOENN_TO_NATIONAL(name) [HOENN_DEX_##name - 1] = NATIONAL_DEX_##name + const u16 gSpeciesToHoennPokedexNum[] = // Assigns all species to the Hoenn Dex Index (Summary No. for Hoenn Dex) { - // SPECIES_NONE - HOENN_DEX_BULBASAUR, // SPECIES_BULBASAUR - HOENN_DEX_IVYSAUR, // SPECIES_IVYSAUR - HOENN_DEX_VENUSAUR, // SPECIES_VENUSAUR - HOENN_DEX_CHARMANDER, // SPECIES_CHARMANDER - HOENN_DEX_CHARMELEON, // SPECIES_CHARMELEON - HOENN_DEX_CHARIZARD, // SPECIES_CHARIZARD - HOENN_DEX_SQUIRTLE, // SPECIES_SQUIRTLE - HOENN_DEX_WARTORTLE, // SPECIES_WARTORTLE - HOENN_DEX_BLASTOISE, // SPECIES_BLASTOISE - HOENN_DEX_CATERPIE, // SPECIES_CATERPIE - HOENN_DEX_METAPOD, // SPECIES_METAPOD - HOENN_DEX_BUTTERFREE, // SPECIES_BUTTERFREE - HOENN_DEX_WEEDLE, // SPECIES_WEEDLE - HOENN_DEX_KAKUNA, // SPECIES_KAKUNA - HOENN_DEX_BEEDRILL, // SPECIES_BEEDRILL - HOENN_DEX_PIDGEY, // SPECIES_PIDGEY - HOENN_DEX_PIDGEOTTO, // SPECIES_PIDGEOTTO - HOENN_DEX_PIDGEOT, // SPECIES_PIDGEOT - HOENN_DEX_RATTATA, // SPECIES_RATTATA - HOENN_DEX_RATICATE, // SPECIES_RATICATE - HOENN_DEX_SPEAROW, // SPECIES_SPEAROW - HOENN_DEX_FEAROW, // SPECIES_FEAROW - HOENN_DEX_EKANS, // SPECIES_EKANS - HOENN_DEX_ARBOK, // SPECIES_ARBOK - HOENN_DEX_PIKACHU, // SPECIES_PIKACHU - HOENN_DEX_RAICHU, // SPECIES_RAICHU - HOENN_DEX_SANDSHREW, // SPECIES_SANDSHREW - HOENN_DEX_SANDSLASH, // SPECIES_SANDSLASH - HOENN_DEX_NIDORAN_F, // SPECIES_NIDORAN_F - HOENN_DEX_NIDORINA, // SPECIES_NIDORINA - HOENN_DEX_NIDOQUEEN, // SPECIES_NIDOQUEEN - HOENN_DEX_NIDORAN_M, // SPECIES_NIDORAN_M - HOENN_DEX_NIDORINO, // SPECIES_NIDORINO - HOENN_DEX_NIDOKING, // SPECIES_NIDOKING - HOENN_DEX_CLEFAIRY, // SPECIES_CLEFAIRY - HOENN_DEX_CLEFABLE, // SPECIES_CLEFABLE - HOENN_DEX_VULPIX, // SPECIES_VULPIX - HOENN_DEX_NINETALES, // SPECIES_NINETALES - HOENN_DEX_JIGGLYPUFF, // SPECIES_JIGGLYPUFF - HOENN_DEX_WIGGLYTUFF, // SPECIES_WIGGLYTUFF - HOENN_DEX_ZUBAT, // SPECIES_ZUBAT - HOENN_DEX_GOLBAT, // SPECIES_GOLBAT - HOENN_DEX_ODDISH, // SPECIES_ODDISH - HOENN_DEX_GLOOM, // SPECIES_GLOOM - HOENN_DEX_VILEPLUME, // SPECIES_VILEPLUME - HOENN_DEX_PARAS, // SPECIES_PARAS - HOENN_DEX_PARASECT, // SPECIES_PARASECT - HOENN_DEX_VENONAT, // SPECIES_VENONAT - HOENN_DEX_VENOMOTH, // SPECIES_VENOMOTH - HOENN_DEX_DIGLETT, // SPECIES_DIGLETT - HOENN_DEX_DUGTRIO, // SPECIES_DUGTRIO - HOENN_DEX_MEOWTH, // SPECIES_MEOWTH - HOENN_DEX_PERSIAN, // SPECIES_PERSIAN - HOENN_DEX_PSYDUCK, // SPECIES_PSYDUCK - HOENN_DEX_GOLDUCK, // SPECIES_GOLDUCK - HOENN_DEX_MANKEY, // SPECIES_MANKEY - HOENN_DEX_PRIMEAPE, // SPECIES_PRIMEAPE - HOENN_DEX_GROWLITHE, // SPECIES_GROWLITHE - HOENN_DEX_ARCANINE, // SPECIES_ARCANINE - HOENN_DEX_POLIWAG, // SPECIES_POLIWAG - HOENN_DEX_POLIWHIRL, // SPECIES_POLIWHIRL - HOENN_DEX_POLIWRATH, // SPECIES_POLIWRATH - HOENN_DEX_ABRA, // SPECIES_ABRA - HOENN_DEX_KADABRA, // SPECIES_KADABRA - HOENN_DEX_ALAKAZAM, // SPECIES_ALAKAZAM - HOENN_DEX_MACHOP, // SPECIES_MACHOP - HOENN_DEX_MACHOKE, // SPECIES_MACHOKE - HOENN_DEX_MACHAMP, // SPECIES_MACHAMP - HOENN_DEX_BELLSPROUT, // SPECIES_BELLSPROUT - HOENN_DEX_WEEPINBELL, // SPECIES_WEEPINBELL - HOENN_DEX_VICTREEBEL, // SPECIES_VICTREEBEL - HOENN_DEX_TENTACOOL, // SPECIES_TENTACOOL - HOENN_DEX_TENTACRUEL, // SPECIES_TENTACRUEL - HOENN_DEX_GEODUDE, // SPECIES_GEODUDE - HOENN_DEX_GRAVELER, // SPECIES_GRAVELER - HOENN_DEX_GOLEM, // SPECIES_GOLEM - HOENN_DEX_PONYTA, // SPECIES_PONYTA - HOENN_DEX_RAPIDASH, // SPECIES_RAPIDASH - HOENN_DEX_SLOWPOKE, // SPECIES_SLOWPOKE - HOENN_DEX_SLOWBRO, // SPECIES_SLOWBRO - HOENN_DEX_MAGNEMITE, // SPECIES_MAGNEMITE - HOENN_DEX_MAGNETON, // SPECIES_MAGNETON - HOENN_DEX_FARFETCHD, // SPECIES_FARFETCHD - HOENN_DEX_DODUO, // SPECIES_DODUO - HOENN_DEX_DODRIO, // SPECIES_DODRIO - HOENN_DEX_SEEL, // SPECIES_SEEL - HOENN_DEX_DEWGONG, // SPECIES_DEWGONG - HOENN_DEX_GRIMER, // SPECIES_GRIMER - HOENN_DEX_MUK, // SPECIES_MUK - HOENN_DEX_SHELLDER, // SPECIES_SHELLDER - HOENN_DEX_CLOYSTER, // SPECIES_CLOYSTER - HOENN_DEX_GASTLY, // SPECIES_GASTLY - HOENN_DEX_HAUNTER, // SPECIES_HAUNTER - HOENN_DEX_GENGAR, // SPECIES_GENGAR - HOENN_DEX_ONIX, // SPECIES_ONIX - HOENN_DEX_DROWZEE, // SPECIES_DROWZEE - HOENN_DEX_HYPNO, // SPECIES_HYPNO - HOENN_DEX_KRABBY, // SPECIES_KRABBY - HOENN_DEX_KINGLER, // SPECIES_KINGLER - HOENN_DEX_VOLTORB, // SPECIES_VOLTORB - HOENN_DEX_ELECTRODE, // SPECIES_ELECTRODE - HOENN_DEX_EXEGGCUTE, // SPECIES_EXEGGCUTE - HOENN_DEX_EXEGGUTOR, // SPECIES_EXEGGUTOR - HOENN_DEX_CUBONE, // SPECIES_CUBONE - HOENN_DEX_MAROWAK, // SPECIES_MAROWAK - HOENN_DEX_HITMONLEE, // SPECIES_HITMONLEE - HOENN_DEX_HITMONCHAN, // SPECIES_HITMONCHAN - HOENN_DEX_LICKITUNG, // SPECIES_LICKITUNG - HOENN_DEX_KOFFING, // SPECIES_KOFFING - HOENN_DEX_WEEZING, // SPECIES_WEEZING - HOENN_DEX_RHYHORN, // SPECIES_RHYHORN - HOENN_DEX_RHYDON, // SPECIES_RHYDON - HOENN_DEX_CHANSEY, // SPECIES_CHANSEY - HOENN_DEX_TANGELA, // SPECIES_TANGELA - HOENN_DEX_KANGASKHAN, // SPECIES_KANGASKHAN - HOENN_DEX_HORSEA, // SPECIES_HORSEA - HOENN_DEX_SEADRA, // SPECIES_SEADRA - HOENN_DEX_GOLDEEN, // SPECIES_GOLDEEN - HOENN_DEX_SEAKING, // SPECIES_SEAKING - HOENN_DEX_STARYU, // SPECIES_STARYU - HOENN_DEX_STARMIE, // SPECIES_STARMIE - HOENN_DEX_MR_MIME, // SPECIES_MR_MIME - HOENN_DEX_SCYTHER, // SPECIES_SCYTHER - HOENN_DEX_JYNX, // SPECIES_JYNX - HOENN_DEX_ELECTABUZZ, // SPECIES_ELECTABUZZ - HOENN_DEX_MAGMAR, // SPECIES_MAGMAR - HOENN_DEX_PINSIR, // SPECIES_PINSIR - HOENN_DEX_TAUROS, // SPECIES_TAUROS - HOENN_DEX_MAGIKARP, // SPECIES_MAGIKARP - HOENN_DEX_GYARADOS, // SPECIES_GYARADOS - HOENN_DEX_LAPRAS, // SPECIES_LAPRAS - HOENN_DEX_DITTO, // SPECIES_DITTO - HOENN_DEX_EEVEE, // SPECIES_EEVEE - HOENN_DEX_VAPOREON, // SPECIES_VAPOREON - HOENN_DEX_JOLTEON, // SPECIES_JOLTEON - HOENN_DEX_FLAREON, // SPECIES_FLAREON - HOENN_DEX_PORYGON, // SPECIES_PORYGON - HOENN_DEX_OMANYTE, // SPECIES_OMANYTE - HOENN_DEX_OMASTAR, // SPECIES_OMASTAR - HOENN_DEX_KABUTO, // SPECIES_KABUTO - HOENN_DEX_KABUTOPS, // SPECIES_KABUTOPS - HOENN_DEX_AERODACTYL, // SPECIES_AERODACTYL - HOENN_DEX_SNORLAX, // SPECIES_SNORLAX - HOENN_DEX_ARTICUNO, // SPECIES_ARTICUNO - HOENN_DEX_ZAPDOS, // SPECIES_ZAPDOS - HOENN_DEX_MOLTRES, // SPECIES_MOLTRES - HOENN_DEX_DRATINI, // SPECIES_DRATINI - HOENN_DEX_DRAGONAIR, // SPECIES_DRAGONAIR - HOENN_DEX_DRAGONITE, // SPECIES_DRAGONITE - HOENN_DEX_MEWTWO, // SPECIES_MEWTWO - HOENN_DEX_MEW, // SPECIES_MEW - HOENN_DEX_CHIKORITA, // SPECIES_CHIKORITA - HOENN_DEX_BAYLEEF, // SPECIES_BAYLEEF - HOENN_DEX_MEGANIUM, // SPECIES_MEGANIUM - HOENN_DEX_CYNDAQUIL, // SPECIES_CYNDAQUIL - HOENN_DEX_QUILAVA, // SPECIES_QUILAVA - HOENN_DEX_TYPHLOSION, // SPECIES_TYPHLOSION - HOENN_DEX_TOTODILE, // SPECIES_TOTODILE - HOENN_DEX_CROCONAW, // SPECIES_CROCONAW - HOENN_DEX_FERALIGATR, // SPECIES_FERALIGATR - HOENN_DEX_SENTRET, // SPECIES_SENTRET - HOENN_DEX_FURRET, // SPECIES_FURRET - HOENN_DEX_HOOTHOOT, // SPECIES_HOOTHOOT - HOENN_DEX_NOCTOWL, // SPECIES_NOCTOWL - HOENN_DEX_LEDYBA, // SPECIES_LEDYBA - HOENN_DEX_LEDIAN, // SPECIES_LEDIAN - HOENN_DEX_SPINARAK, // SPECIES_SPINARAK - HOENN_DEX_ARIADOS, // SPECIES_ARIADOS - HOENN_DEX_CROBAT, // SPECIES_CROBAT - HOENN_DEX_CHINCHOU, // SPECIES_CHINCHOU - HOENN_DEX_LANTURN, // SPECIES_LANTURN - HOENN_DEX_PICHU, // SPECIES_PICHU - HOENN_DEX_CLEFFA, // SPECIES_CLEFFA - HOENN_DEX_IGGLYBUFF, // SPECIES_IGGLYBUFF - HOENN_DEX_TOGEPI, // SPECIES_TOGEPI - HOENN_DEX_TOGETIC, // SPECIES_TOGETIC - HOENN_DEX_NATU, // SPECIES_NATU - HOENN_DEX_XATU, // SPECIES_XATU - HOENN_DEX_MAREEP, // SPECIES_MAREEP - HOENN_DEX_FLAAFFY, // SPECIES_FLAAFFY - HOENN_DEX_AMPHAROS, // SPECIES_AMPHAROS - HOENN_DEX_BELLOSSOM, // SPECIES_BELLOSSOM - HOENN_DEX_MARILL, // SPECIES_MARILL - HOENN_DEX_AZUMARILL, // SPECIES_AZUMARILL - HOENN_DEX_SUDOWOODO, // SPECIES_SUDOWOODO - HOENN_DEX_POLITOED, // SPECIES_POLITOED - HOENN_DEX_HOPPIP, // SPECIES_HOPPIP - HOENN_DEX_SKIPLOOM, // SPECIES_SKIPLOOM - HOENN_DEX_JUMPLUFF, // SPECIES_JUMPLUFF - HOENN_DEX_AIPOM, // SPECIES_AIPOM - HOENN_DEX_SUNKERN, // SPECIES_SUNKERN - HOENN_DEX_SUNFLORA, // SPECIES_SUNFLORA - HOENN_DEX_YANMA, // SPECIES_YANMA - HOENN_DEX_WOOPER, // SPECIES_WOOPER - HOENN_DEX_QUAGSIRE, // SPECIES_QUAGSIRE - HOENN_DEX_ESPEON, // SPECIES_ESPEON - HOENN_DEX_UMBREON, // SPECIES_UMBREON - HOENN_DEX_MURKROW, // SPECIES_MURKROW - HOENN_DEX_SLOWKING, // SPECIES_SLOWKING - HOENN_DEX_MISDREAVUS, // SPECIES_MISDREAVUS - HOENN_DEX_UNOWN, // SPECIES_UNOWN - HOENN_DEX_WOBBUFFET, // SPECIES_WOBBUFFET - HOENN_DEX_GIRAFARIG, // SPECIES_GIRAFARIG - HOENN_DEX_PINECO, // SPECIES_PINECO - HOENN_DEX_FORRETRESS, // SPECIES_FORRETRESS - HOENN_DEX_DUNSPARCE, // SPECIES_DUNSPARCE - HOENN_DEX_GLIGAR, // SPECIES_GLIGAR - HOENN_DEX_STEELIX, // SPECIES_STEELIX - HOENN_DEX_SNUBBULL, // SPECIES_SNUBBULL - HOENN_DEX_GRANBULL, // SPECIES_GRANBULL - HOENN_DEX_QWILFISH, // SPECIES_QWILFISH - HOENN_DEX_SCIZOR, // SPECIES_SCIZOR - HOENN_DEX_SHUCKLE, // SPECIES_SHUCKLE - HOENN_DEX_HERACROSS, // SPECIES_HERACROSS - HOENN_DEX_SNEASEL, // SPECIES_SNEASEL - HOENN_DEX_TEDDIURSA, // SPECIES_TEDDIURSA - HOENN_DEX_URSARING, // SPECIES_URSARING - HOENN_DEX_SLUGMA, // SPECIES_SLUGMA - HOENN_DEX_MAGCARGO, // SPECIES_MAGCARGO - HOENN_DEX_SWINUB, // SPECIES_SWINUB - HOENN_DEX_PILOSWINE, // SPECIES_PILOSWINE - HOENN_DEX_CORSOLA, // SPECIES_CORSOLA - HOENN_DEX_REMORAID, // SPECIES_REMORAID - HOENN_DEX_OCTILLERY, // SPECIES_OCTILLERY - HOENN_DEX_DELIBIRD, // SPECIES_DELIBIRD - HOENN_DEX_MANTINE, // SPECIES_MANTINE - HOENN_DEX_SKARMORY, // SPECIES_SKARMORY - HOENN_DEX_HOUNDOUR, // SPECIES_HOUNDOUR - HOENN_DEX_HOUNDOOM, // SPECIES_HOUNDOOM - HOENN_DEX_KINGDRA, // SPECIES_KINGDRA - HOENN_DEX_PHANPY, // SPECIES_PHANPY - HOENN_DEX_DONPHAN, // SPECIES_DONPHAN - HOENN_DEX_PORYGON2, // SPECIES_PORYGON2 - HOENN_DEX_STANTLER, // SPECIES_STANTLER - HOENN_DEX_SMEARGLE, // SPECIES_SMEARGLE - HOENN_DEX_TYROGUE, // SPECIES_TYROGUE - HOENN_DEX_HITMONTOP, // SPECIES_HITMONTOP - HOENN_DEX_SMOOCHUM, // SPECIES_SMOOCHUM - HOENN_DEX_ELEKID, // SPECIES_ELEKID - HOENN_DEX_MAGBY, // SPECIES_MAGBY - HOENN_DEX_MILTANK, // SPECIES_MILTANK - HOENN_DEX_BLISSEY, // SPECIES_BLISSEY - HOENN_DEX_RAIKOU, // SPECIES_RAIKOU - HOENN_DEX_ENTEI, // SPECIES_ENTEI - HOENN_DEX_SUICUNE, // SPECIES_SUICUNE - HOENN_DEX_LARVITAR, // SPECIES_LARVITAR - HOENN_DEX_PUPITAR, // SPECIES_PUPITAR - HOENN_DEX_TYRANITAR, // SPECIES_TYRANITAR - HOENN_DEX_LUGIA, // SPECIES_LUGIA - HOENN_DEX_HO_OH, // SPECIES_HO-OH - HOENN_DEX_CELEBI, // SPECIES_CELEBI - HOENN_DEX_OLD_UNOWN_B, // SPECIES_OLD_UNOWN_B - HOENN_DEX_OLD_UNOWN_C, // SPECIES_OLD_UNOWN_C - HOENN_DEX_OLD_UNOWN_D, // SPECIES_OLD_UNOWN_D - HOENN_DEX_OLD_UNOWN_E, // SPECIES_OLD_UNOWN_E - HOENN_DEX_OLD_UNOWN_F, // SPECIES_OLD_UNOWN_F - HOENN_DEX_OLD_UNOWN_G, // SPECIES_OLD_UNOWN_G - HOENN_DEX_OLD_UNOWN_H, // SPECIES_OLD_UNOWN_H - HOENN_DEX_OLD_UNOWN_I, // SPECIES_OLD_UNOWN_I - HOENN_DEX_OLD_UNOWN_J, // SPECIES_OLD_UNOWN_J - HOENN_DEX_OLD_UNOWN_K, // SPECIES_OLD_UNOWN_K - HOENN_DEX_OLD_UNOWN_L, // SPECIES_OLD_UNOWN_L - HOENN_DEX_OLD_UNOWN_M, // SPECIES_OLD_UNOWN_M - HOENN_DEX_OLD_UNOWN_N, // SPECIES_OLD_UNOWN_N - HOENN_DEX_OLD_UNOWN_O, // SPECIES_OLD_UNOWN_O - HOENN_DEX_OLD_UNOWN_P, // SPECIES_OLD_UNOWN_P - HOENN_DEX_OLD_UNOWN_Q, // SPECIES_OLD_UNOWN_Q - HOENN_DEX_OLD_UNOWN_R, // SPECIES_OLD_UNOWN_R - HOENN_DEX_OLD_UNOWN_S, // SPECIES_OLD_UNOWN_S - HOENN_DEX_OLD_UNOWN_T, // SPECIES_OLD_UNOWN_T - HOENN_DEX_OLD_UNOWN_U, // SPECIES_OLD_UNOWN_U - HOENN_DEX_OLD_UNOWN_V, // SPECIES_OLD_UNOWN_V - HOENN_DEX_OLD_UNOWN_W, // SPECIES_OLD_UNOWN_W - HOENN_DEX_OLD_UNOWN_X, // SPECIES_OLD_UNOWN_X - HOENN_DEX_OLD_UNOWN_Y, // SPECIES_OLD_UNOWN_Y - HOENN_DEX_OLD_UNOWN_Z, // SPECIES_OLD_UNOWN_Z - HOENN_DEX_TREECKO, // SPECIES_TREECKO - HOENN_DEX_GROVYLE, // SPECIES_GROVYLE - HOENN_DEX_SCEPTILE, // SPECIES_SCEPTILE - HOENN_DEX_TORCHIC, // SPECIES_TORCHIC - HOENN_DEX_COMBUSKEN, // SPECIES_COMBUSKEN - HOENN_DEX_BLAZIKEN, // SPECIES_BLAZIKEN - HOENN_DEX_MUDKIP, // SPECIES_MUDKIP - HOENN_DEX_MARSHTOMP, // SPECIES_MARSHTOMP - HOENN_DEX_SWAMPERT, // SPECIES_SWAMPERT - HOENN_DEX_POOCHYENA, // SPECIES_POOCHYENA - HOENN_DEX_MIGHTYENA, // SPECIES_MIGHTYENA - HOENN_DEX_ZIGZAGOON, // SPECIES_ZIGZAGOON - HOENN_DEX_LINOONE, // SPECIES_LINOONE - HOENN_DEX_WURMPLE, // SPECIES_WURMPLE - HOENN_DEX_SILCOON, // SPECIES_SILCOON - HOENN_DEX_BEAUTIFLY, // SPECIES_BEAUTIFLY - HOENN_DEX_CASCOON, // SPECIES_CASCOON - HOENN_DEX_DUSTOX, // SPECIES_DUSTOX - HOENN_DEX_LOTAD, // SPECIES_LOTAD - HOENN_DEX_LOMBRE, // SPECIES_LOMBRE - HOENN_DEX_LUDICOLO, // SPECIES_LUDICOLO - HOENN_DEX_SEEDOT, // SPECIES_SEEDOT - HOENN_DEX_NUZLEAF, // SPECIES_NUZLEAF - HOENN_DEX_SHIFTRY, // SPECIES_SHIFTRY - HOENN_DEX_NINCADA, // SPECIES_NINCADA - HOENN_DEX_NINJASK, // SPECIES_NINJASK - HOENN_DEX_SHEDINJA, // SPECIES_SHEDINJA - HOENN_DEX_TAILLOW, // SPECIES_TAILLOW - HOENN_DEX_SWELLOW, // SPECIES_SWELLOW - HOENN_DEX_SHROOMISH, // SPECIES_SHROOMISH - HOENN_DEX_BRELOOM, // SPECIES_BRELOOM - HOENN_DEX_SPINDA, // SPECIES_SPINDA - HOENN_DEX_WINGULL, // SPECIES_WINGULL - HOENN_DEX_PELIPPER, // SPECIES_PELIPPER - HOENN_DEX_SURSKIT, // SPECIES_SURSKIT - HOENN_DEX_MASQUERAIN, // SPECIES_MASQUERAIN - HOENN_DEX_WAILMER, // SPECIES_WAILMER - HOENN_DEX_WAILORD, // SPECIES_WAILORD - HOENN_DEX_SKITTY, // SPECIES_SKITTY - HOENN_DEX_DELCATTY, // SPECIES_DELCATTY - HOENN_DEX_KECLEON, // SPECIES_KECLEON - HOENN_DEX_BALTOY, // SPECIES_BALTOY - HOENN_DEX_CLAYDOL, // SPECIES_CLAYDOL - HOENN_DEX_NOSEPASS, // SPECIES_NOSEPASS - HOENN_DEX_TORKOAL, // SPECIES_TORKOAL - HOENN_DEX_SABLEYE, // SPECIES_SABLEYE - HOENN_DEX_BARBOACH, // SPECIES_BARBOACH - HOENN_DEX_WHISCASH, // SPECIES_WHISCASH - HOENN_DEX_LUVDISC, // SPECIES_LUVDISC - HOENN_DEX_CORPHISH, // SPECIES_CORPHISH - HOENN_DEX_CRAWDAUNT, // SPECIES_CRAWDAUNT - HOENN_DEX_FEEBAS, // SPECIES_FEEBAS - HOENN_DEX_MILOTIC, // SPECIES_MILOTIC - HOENN_DEX_CARVANHA, // SPECIES_CARVANHA - HOENN_DEX_SHARPEDO, // SPECIES_SHARPEDO - HOENN_DEX_TRAPINCH, // SPECIES_TRAPINCH - HOENN_DEX_VIBRAVA, // SPECIES_VIBRAVA - HOENN_DEX_FLYGON, // SPECIES_FLYGON - HOENN_DEX_MAKUHITA, // SPECIES_MAKUHITA - HOENN_DEX_HARIYAMA, // SPECIES_HARIYAMA - HOENN_DEX_ELECTRIKE, // SPECIES_ELECTRIKE - HOENN_DEX_MANECTRIC, // SPECIES_MANECTRIC - HOENN_DEX_NUMEL, // SPECIES_NUMEL - HOENN_DEX_CAMERUPT, // SPECIES_CAMERUPT - HOENN_DEX_SPHEAL, // SPECIES_SPHEAL - HOENN_DEX_SEALEO, // SPECIES_SEALEO - HOENN_DEX_WALREIN, // SPECIES_WALREIN - HOENN_DEX_CACNEA, // SPECIES_CACNEA - HOENN_DEX_CACTURNE, // SPECIES_CACTURNE - HOENN_DEX_SNORUNT, // SPECIES_SNORUNT - HOENN_DEX_GLALIE, // SPECIES_GLALIE - HOENN_DEX_LUNATONE, // SPECIES_LUNATONE - HOENN_DEX_SOLROCK, // SPECIES_SOLROCK - HOENN_DEX_AZURILL, // SPECIES_AZURILL - HOENN_DEX_SPOINK, // SPECIES_SPOINK - HOENN_DEX_GRUMPIG, // SPECIES_GRUMPIG - HOENN_DEX_PLUSLE, // SPECIES_PLUSLE - HOENN_DEX_MINUN, // SPECIES_MINUN - HOENN_DEX_MAWILE, // SPECIES_MAWILE - HOENN_DEX_MEDITITE, // SPECIES_MEDITITE - HOENN_DEX_MEDICHAM, // SPECIES_MEDICHAM - HOENN_DEX_SWABLU, // SPECIES_SWABLU - HOENN_DEX_ALTARIA, // SPECIES_ALTARIA - HOENN_DEX_WYNAUT, // SPECIES_WYNAUT - HOENN_DEX_DUSKULL, // SPECIES_DUSKULL - HOENN_DEX_DUSCLOPS, // SPECIES_DUSCLOPS - HOENN_DEX_ROSELIA, // SPECIES_ROSELIA - HOENN_DEX_SLAKOTH, // SPECIES_SLAKOTH - HOENN_DEX_VIGOROTH, // SPECIES_VIGOROTH - HOENN_DEX_SLAKING, // SPECIES_SLAKING - HOENN_DEX_GULPIN, // SPECIES_GULPIN - HOENN_DEX_SWALOT, // SPECIES_SWALOT - HOENN_DEX_TROPIUS, // SPECIES_TROPIUS - HOENN_DEX_WHISMUR, // SPECIES_WHISMUR - HOENN_DEX_LOUDRED, // SPECIES_LOUDRED - HOENN_DEX_EXPLOUD, // SPECIES_EXPLOUD - HOENN_DEX_CLAMPERL, // SPECIES_CLAMPERL - HOENN_DEX_HUNTAIL, // SPECIES_HUNTAIL - HOENN_DEX_GOREBYSS, // SPECIES_GOREBYSS - HOENN_DEX_ABSOL, // SPECIES_ABSOL - HOENN_DEX_SHUPPET, // SPECIES_SHUPPET - HOENN_DEX_BANETTE, // SPECIES_BANETTE - HOENN_DEX_SEVIPER, // SPECIES_SEVIPER - HOENN_DEX_ZANGOOSE, // SPECIES_ZANGOOSE - HOENN_DEX_RELICANTH, // SPECIES_RELICANTH - HOENN_DEX_ARON, // SPECIES_ARON - HOENN_DEX_LAIRON, // SPECIES_LAIRON - HOENN_DEX_AGGRON, // SPECIES_AGGRON - HOENN_DEX_CASTFORM, // SPECIES_CASTFORM - HOENN_DEX_VOLBEAT, // SPECIES_VOLBEAT - HOENN_DEX_ILLUMISE, // SPECIES_ILLUMISE - HOENN_DEX_LILEEP, // SPECIES_LILEEP - HOENN_DEX_CRADILY, // SPECIES_CRADILY - HOENN_DEX_ANORITH, // SPECIES_ANORITH - HOENN_DEX_ARMALDO, // SPECIES_ARMALDO - HOENN_DEX_RALTS, // SPECIES_RALTS - HOENN_DEX_KIRLIA, // SPECIES_KIRLIA - HOENN_DEX_GARDEVOIR, // SPECIES_GARDEVOIR - HOENN_DEX_BAGON, // SPECIES_BAGON - HOENN_DEX_SHELGON, // SPECIES_SHELGON - HOENN_DEX_SALAMENCE, // SPECIES_SALAMENCE - HOENN_DEX_BELDUM, // SPECIES_BELDUM - HOENN_DEX_METANG, // SPECIES_METANG - HOENN_DEX_METAGROSS, // SPECIES_METAGROSS - HOENN_DEX_REGIROCK, // SPECIES_REGIROCK - HOENN_DEX_REGICE, // SPECIES_REGICE - HOENN_DEX_REGISTEEL, // SPECIES_REGISTEEL - HOENN_DEX_KYOGRE, // SPECIES_KYOGRE - HOENN_DEX_GROUDON, // SPECIES_GROUDON - HOENN_DEX_RAYQUAZA, // SPECIES_RAYQUAZA - HOENN_DEX_LATIAS, // SPECIES_LATIAS - HOENN_DEX_LATIOS, // SPECIES_LATIOS - HOENN_DEX_JIRACHI, // SPECIES_JIRACHI - HOENN_DEX_DEOXYS, // SPECIES_DEOXYS - HOENN_DEX_CHIMECHO // SPECIES_CHIMECHO + SPECIES_TO_HOENN(BULBASAUR), + SPECIES_TO_HOENN(IVYSAUR), + SPECIES_TO_HOENN(VENUSAUR), + SPECIES_TO_HOENN(CHARMANDER), + SPECIES_TO_HOENN(CHARMELEON), + SPECIES_TO_HOENN(CHARIZARD), + SPECIES_TO_HOENN(SQUIRTLE), + SPECIES_TO_HOENN(WARTORTLE), + SPECIES_TO_HOENN(BLASTOISE), + SPECIES_TO_HOENN(CATERPIE), + SPECIES_TO_HOENN(METAPOD), + SPECIES_TO_HOENN(BUTTERFREE), + SPECIES_TO_HOENN(WEEDLE), + SPECIES_TO_HOENN(KAKUNA), + SPECIES_TO_HOENN(BEEDRILL), + SPECIES_TO_HOENN(PIDGEY), + SPECIES_TO_HOENN(PIDGEOTTO), + SPECIES_TO_HOENN(PIDGEOT), + SPECIES_TO_HOENN(RATTATA), + SPECIES_TO_HOENN(RATICATE), + SPECIES_TO_HOENN(SPEAROW), + SPECIES_TO_HOENN(FEAROW), + SPECIES_TO_HOENN(EKANS), + SPECIES_TO_HOENN(ARBOK), + SPECIES_TO_HOENN(PIKACHU), + SPECIES_TO_HOENN(RAICHU), + SPECIES_TO_HOENN(SANDSHREW), + SPECIES_TO_HOENN(SANDSLASH), + SPECIES_TO_HOENN(NIDORAN_F), + SPECIES_TO_HOENN(NIDORINA), + SPECIES_TO_HOENN(NIDOQUEEN), + SPECIES_TO_HOENN(NIDORAN_M), + SPECIES_TO_HOENN(NIDORINO), + SPECIES_TO_HOENN(NIDOKING), + SPECIES_TO_HOENN(CLEFAIRY), + SPECIES_TO_HOENN(CLEFABLE), + SPECIES_TO_HOENN(VULPIX), + SPECIES_TO_HOENN(NINETALES), + SPECIES_TO_HOENN(JIGGLYPUFF), + SPECIES_TO_HOENN(WIGGLYTUFF), + SPECIES_TO_HOENN(ZUBAT), + SPECIES_TO_HOENN(GOLBAT), + SPECIES_TO_HOENN(ODDISH), + SPECIES_TO_HOENN(GLOOM), + SPECIES_TO_HOENN(VILEPLUME), + SPECIES_TO_HOENN(PARAS), + SPECIES_TO_HOENN(PARASECT), + SPECIES_TO_HOENN(VENONAT), + SPECIES_TO_HOENN(VENOMOTH), + SPECIES_TO_HOENN(DIGLETT), + SPECIES_TO_HOENN(DUGTRIO), + SPECIES_TO_HOENN(MEOWTH), + SPECIES_TO_HOENN(PERSIAN), + SPECIES_TO_HOENN(PSYDUCK), + SPECIES_TO_HOENN(GOLDUCK), + SPECIES_TO_HOENN(MANKEY), + SPECIES_TO_HOENN(PRIMEAPE), + SPECIES_TO_HOENN(GROWLITHE), + SPECIES_TO_HOENN(ARCANINE), + SPECIES_TO_HOENN(POLIWAG), + SPECIES_TO_HOENN(POLIWHIRL), + SPECIES_TO_HOENN(POLIWRATH), + SPECIES_TO_HOENN(ABRA), + SPECIES_TO_HOENN(KADABRA), + SPECIES_TO_HOENN(ALAKAZAM), + SPECIES_TO_HOENN(MACHOP), + SPECIES_TO_HOENN(MACHOKE), + SPECIES_TO_HOENN(MACHAMP), + SPECIES_TO_HOENN(BELLSPROUT), + SPECIES_TO_HOENN(WEEPINBELL), + SPECIES_TO_HOENN(VICTREEBEL), + SPECIES_TO_HOENN(TENTACOOL), + SPECIES_TO_HOENN(TENTACRUEL), + SPECIES_TO_HOENN(GEODUDE), + SPECIES_TO_HOENN(GRAVELER), + SPECIES_TO_HOENN(GOLEM), + SPECIES_TO_HOENN(PONYTA), + SPECIES_TO_HOENN(RAPIDASH), + SPECIES_TO_HOENN(SLOWPOKE), + SPECIES_TO_HOENN(SLOWBRO), + SPECIES_TO_HOENN(MAGNEMITE), + SPECIES_TO_HOENN(MAGNETON), + SPECIES_TO_HOENN(FARFETCHD), + SPECIES_TO_HOENN(DODUO), + SPECIES_TO_HOENN(DODRIO), + SPECIES_TO_HOENN(SEEL), + SPECIES_TO_HOENN(DEWGONG), + SPECIES_TO_HOENN(GRIMER), + SPECIES_TO_HOENN(MUK), + SPECIES_TO_HOENN(SHELLDER), + SPECIES_TO_HOENN(CLOYSTER), + SPECIES_TO_HOENN(GASTLY), + SPECIES_TO_HOENN(HAUNTER), + SPECIES_TO_HOENN(GENGAR), + SPECIES_TO_HOENN(ONIX), + SPECIES_TO_HOENN(DROWZEE), + SPECIES_TO_HOENN(HYPNO), + SPECIES_TO_HOENN(KRABBY), + SPECIES_TO_HOENN(KINGLER), + SPECIES_TO_HOENN(VOLTORB), + SPECIES_TO_HOENN(ELECTRODE), + SPECIES_TO_HOENN(EXEGGCUTE), + SPECIES_TO_HOENN(EXEGGUTOR), + SPECIES_TO_HOENN(CUBONE), + SPECIES_TO_HOENN(MAROWAK), + SPECIES_TO_HOENN(HITMONLEE), + SPECIES_TO_HOENN(HITMONCHAN), + SPECIES_TO_HOENN(LICKITUNG), + SPECIES_TO_HOENN(KOFFING), + SPECIES_TO_HOENN(WEEZING), + SPECIES_TO_HOENN(RHYHORN), + SPECIES_TO_HOENN(RHYDON), + SPECIES_TO_HOENN(CHANSEY), + SPECIES_TO_HOENN(TANGELA), + SPECIES_TO_HOENN(KANGASKHAN), + SPECIES_TO_HOENN(HORSEA), + SPECIES_TO_HOENN(SEADRA), + SPECIES_TO_HOENN(GOLDEEN), + SPECIES_TO_HOENN(SEAKING), + SPECIES_TO_HOENN(STARYU), + SPECIES_TO_HOENN(STARMIE), + SPECIES_TO_HOENN(MR_MIME), + SPECIES_TO_HOENN(SCYTHER), + SPECIES_TO_HOENN(JYNX), + SPECIES_TO_HOENN(ELECTABUZZ), + SPECIES_TO_HOENN(MAGMAR), + SPECIES_TO_HOENN(PINSIR), + SPECIES_TO_HOENN(TAUROS), + SPECIES_TO_HOENN(MAGIKARP), + SPECIES_TO_HOENN(GYARADOS), + SPECIES_TO_HOENN(LAPRAS), + SPECIES_TO_HOENN(DITTO), + SPECIES_TO_HOENN(EEVEE), + SPECIES_TO_HOENN(VAPOREON), + SPECIES_TO_HOENN(JOLTEON), + SPECIES_TO_HOENN(FLAREON), + SPECIES_TO_HOENN(PORYGON), + SPECIES_TO_HOENN(OMANYTE), + SPECIES_TO_HOENN(OMASTAR), + SPECIES_TO_HOENN(KABUTO), + SPECIES_TO_HOENN(KABUTOPS), + SPECIES_TO_HOENN(AERODACTYL), + SPECIES_TO_HOENN(SNORLAX), + SPECIES_TO_HOENN(ARTICUNO), + SPECIES_TO_HOENN(ZAPDOS), + SPECIES_TO_HOENN(MOLTRES), + SPECIES_TO_HOENN(DRATINI), + SPECIES_TO_HOENN(DRAGONAIR), + SPECIES_TO_HOENN(DRAGONITE), + SPECIES_TO_HOENN(MEWTWO), + SPECIES_TO_HOENN(MEW), + SPECIES_TO_HOENN(CHIKORITA), + SPECIES_TO_HOENN(BAYLEEF), + SPECIES_TO_HOENN(MEGANIUM), + SPECIES_TO_HOENN(CYNDAQUIL), + SPECIES_TO_HOENN(QUILAVA), + SPECIES_TO_HOENN(TYPHLOSION), + SPECIES_TO_HOENN(TOTODILE), + SPECIES_TO_HOENN(CROCONAW), + SPECIES_TO_HOENN(FERALIGATR), + SPECIES_TO_HOENN(SENTRET), + SPECIES_TO_HOENN(FURRET), + SPECIES_TO_HOENN(HOOTHOOT), + SPECIES_TO_HOENN(NOCTOWL), + SPECIES_TO_HOENN(LEDYBA), + SPECIES_TO_HOENN(LEDIAN), + SPECIES_TO_HOENN(SPINARAK), + SPECIES_TO_HOENN(ARIADOS), + SPECIES_TO_HOENN(CROBAT), + SPECIES_TO_HOENN(CHINCHOU), + SPECIES_TO_HOENN(LANTURN), + SPECIES_TO_HOENN(PICHU), + SPECIES_TO_HOENN(CLEFFA), + SPECIES_TO_HOENN(IGGLYBUFF), + SPECIES_TO_HOENN(TOGEPI), + SPECIES_TO_HOENN(TOGETIC), + SPECIES_TO_HOENN(NATU), + SPECIES_TO_HOENN(XATU), + SPECIES_TO_HOENN(MAREEP), + SPECIES_TO_HOENN(FLAAFFY), + SPECIES_TO_HOENN(AMPHAROS), + SPECIES_TO_HOENN(BELLOSSOM), + SPECIES_TO_HOENN(MARILL), + SPECIES_TO_HOENN(AZUMARILL), + SPECIES_TO_HOENN(SUDOWOODO), + SPECIES_TO_HOENN(POLITOED), + SPECIES_TO_HOENN(HOPPIP), + SPECIES_TO_HOENN(SKIPLOOM), + SPECIES_TO_HOENN(JUMPLUFF), + SPECIES_TO_HOENN(AIPOM), + SPECIES_TO_HOENN(SUNKERN), + SPECIES_TO_HOENN(SUNFLORA), + SPECIES_TO_HOENN(YANMA), + SPECIES_TO_HOENN(WOOPER), + SPECIES_TO_HOENN(QUAGSIRE), + SPECIES_TO_HOENN(ESPEON), + SPECIES_TO_HOENN(UMBREON), + SPECIES_TO_HOENN(MURKROW), + SPECIES_TO_HOENN(SLOWKING), + SPECIES_TO_HOENN(MISDREAVUS), + SPECIES_TO_HOENN(UNOWN), + SPECIES_TO_HOENN(WOBBUFFET), + SPECIES_TO_HOENN(GIRAFARIG), + SPECIES_TO_HOENN(PINECO), + SPECIES_TO_HOENN(FORRETRESS), + SPECIES_TO_HOENN(DUNSPARCE), + SPECIES_TO_HOENN(GLIGAR), + SPECIES_TO_HOENN(STEELIX), + SPECIES_TO_HOENN(SNUBBULL), + SPECIES_TO_HOENN(GRANBULL), + SPECIES_TO_HOENN(QWILFISH), + SPECIES_TO_HOENN(SCIZOR), + SPECIES_TO_HOENN(SHUCKLE), + SPECIES_TO_HOENN(HERACROSS), + SPECIES_TO_HOENN(SNEASEL), + SPECIES_TO_HOENN(TEDDIURSA), + SPECIES_TO_HOENN(URSARING), + SPECIES_TO_HOENN(SLUGMA), + SPECIES_TO_HOENN(MAGCARGO), + SPECIES_TO_HOENN(SWINUB), + SPECIES_TO_HOENN(PILOSWINE), + SPECIES_TO_HOENN(CORSOLA), + SPECIES_TO_HOENN(REMORAID), + SPECIES_TO_HOENN(OCTILLERY), + SPECIES_TO_HOENN(DELIBIRD), + SPECIES_TO_HOENN(MANTINE), + SPECIES_TO_HOENN(SKARMORY), + SPECIES_TO_HOENN(HOUNDOUR), + SPECIES_TO_HOENN(HOUNDOOM), + SPECIES_TO_HOENN(KINGDRA), + SPECIES_TO_HOENN(PHANPY), + SPECIES_TO_HOENN(DONPHAN), + SPECIES_TO_HOENN(PORYGON2), + SPECIES_TO_HOENN(STANTLER), + SPECIES_TO_HOENN(SMEARGLE), + SPECIES_TO_HOENN(TYROGUE), + SPECIES_TO_HOENN(HITMONTOP), + SPECIES_TO_HOENN(SMOOCHUM), + SPECIES_TO_HOENN(ELEKID), + SPECIES_TO_HOENN(MAGBY), + SPECIES_TO_HOENN(MILTANK), + SPECIES_TO_HOENN(BLISSEY), + SPECIES_TO_HOENN(RAIKOU), + SPECIES_TO_HOENN(ENTEI), + SPECIES_TO_HOENN(SUICUNE), + SPECIES_TO_HOENN(LARVITAR), + SPECIES_TO_HOENN(PUPITAR), + SPECIES_TO_HOENN(TYRANITAR), + SPECIES_TO_HOENN(LUGIA), + SPECIES_TO_HOENN(HO_OH), + SPECIES_TO_HOENN(CELEBI), + SPECIES_TO_HOENN(OLD_UNOWN_B), + SPECIES_TO_HOENN(OLD_UNOWN_C), + SPECIES_TO_HOENN(OLD_UNOWN_D), + SPECIES_TO_HOENN(OLD_UNOWN_E), + SPECIES_TO_HOENN(OLD_UNOWN_F), + SPECIES_TO_HOENN(OLD_UNOWN_G), + SPECIES_TO_HOENN(OLD_UNOWN_H), + SPECIES_TO_HOENN(OLD_UNOWN_I), + SPECIES_TO_HOENN(OLD_UNOWN_J), + SPECIES_TO_HOENN(OLD_UNOWN_K), + SPECIES_TO_HOENN(OLD_UNOWN_L), + SPECIES_TO_HOENN(OLD_UNOWN_M), + SPECIES_TO_HOENN(OLD_UNOWN_N), + SPECIES_TO_HOENN(OLD_UNOWN_O), + SPECIES_TO_HOENN(OLD_UNOWN_P), + SPECIES_TO_HOENN(OLD_UNOWN_Q), + SPECIES_TO_HOENN(OLD_UNOWN_R), + SPECIES_TO_HOENN(OLD_UNOWN_S), + SPECIES_TO_HOENN(OLD_UNOWN_T), + SPECIES_TO_HOENN(OLD_UNOWN_U), + SPECIES_TO_HOENN(OLD_UNOWN_V), + SPECIES_TO_HOENN(OLD_UNOWN_W), + SPECIES_TO_HOENN(OLD_UNOWN_X), + SPECIES_TO_HOENN(OLD_UNOWN_Y), + SPECIES_TO_HOENN(OLD_UNOWN_Z), + SPECIES_TO_HOENN(TREECKO), + SPECIES_TO_HOENN(GROVYLE), + SPECIES_TO_HOENN(SCEPTILE), + SPECIES_TO_HOENN(TORCHIC), + SPECIES_TO_HOENN(COMBUSKEN), + SPECIES_TO_HOENN(BLAZIKEN), + SPECIES_TO_HOENN(MUDKIP), + SPECIES_TO_HOENN(MARSHTOMP), + SPECIES_TO_HOENN(SWAMPERT), + SPECIES_TO_HOENN(POOCHYENA), + SPECIES_TO_HOENN(MIGHTYENA), + SPECIES_TO_HOENN(ZIGZAGOON), + SPECIES_TO_HOENN(LINOONE), + SPECIES_TO_HOENN(WURMPLE), + SPECIES_TO_HOENN(SILCOON), + SPECIES_TO_HOENN(BEAUTIFLY), + SPECIES_TO_HOENN(CASCOON), + SPECIES_TO_HOENN(DUSTOX), + SPECIES_TO_HOENN(LOTAD), + SPECIES_TO_HOENN(LOMBRE), + SPECIES_TO_HOENN(LUDICOLO), + SPECIES_TO_HOENN(SEEDOT), + SPECIES_TO_HOENN(NUZLEAF), + SPECIES_TO_HOENN(SHIFTRY), + SPECIES_TO_HOENN(NINCADA), + SPECIES_TO_HOENN(NINJASK), + SPECIES_TO_HOENN(SHEDINJA), + SPECIES_TO_HOENN(TAILLOW), + SPECIES_TO_HOENN(SWELLOW), + SPECIES_TO_HOENN(SHROOMISH), + SPECIES_TO_HOENN(BRELOOM), + SPECIES_TO_HOENN(SPINDA), + SPECIES_TO_HOENN(WINGULL), + SPECIES_TO_HOENN(PELIPPER), + SPECIES_TO_HOENN(SURSKIT), + SPECIES_TO_HOENN(MASQUERAIN), + SPECIES_TO_HOENN(WAILMER), + SPECIES_TO_HOENN(WAILORD), + SPECIES_TO_HOENN(SKITTY), + SPECIES_TO_HOENN(DELCATTY), + SPECIES_TO_HOENN(KECLEON), + SPECIES_TO_HOENN(BALTOY), + SPECIES_TO_HOENN(CLAYDOL), + SPECIES_TO_HOENN(NOSEPASS), + SPECIES_TO_HOENN(TORKOAL), + SPECIES_TO_HOENN(SABLEYE), + SPECIES_TO_HOENN(BARBOACH), + SPECIES_TO_HOENN(WHISCASH), + SPECIES_TO_HOENN(LUVDISC), + SPECIES_TO_HOENN(CORPHISH), + SPECIES_TO_HOENN(CRAWDAUNT), + SPECIES_TO_HOENN(FEEBAS), + SPECIES_TO_HOENN(MILOTIC), + SPECIES_TO_HOENN(CARVANHA), + SPECIES_TO_HOENN(SHARPEDO), + SPECIES_TO_HOENN(TRAPINCH), + SPECIES_TO_HOENN(VIBRAVA), + SPECIES_TO_HOENN(FLYGON), + SPECIES_TO_HOENN(MAKUHITA), + SPECIES_TO_HOENN(HARIYAMA), + SPECIES_TO_HOENN(ELECTRIKE), + SPECIES_TO_HOENN(MANECTRIC), + SPECIES_TO_HOENN(NUMEL), + SPECIES_TO_HOENN(CAMERUPT), + SPECIES_TO_HOENN(SPHEAL), + SPECIES_TO_HOENN(SEALEO), + SPECIES_TO_HOENN(WALREIN), + SPECIES_TO_HOENN(CACNEA), + SPECIES_TO_HOENN(CACTURNE), + SPECIES_TO_HOENN(SNORUNT), + SPECIES_TO_HOENN(GLALIE), + SPECIES_TO_HOENN(LUNATONE), + SPECIES_TO_HOENN(SOLROCK), + SPECIES_TO_HOENN(AZURILL), + SPECIES_TO_HOENN(SPOINK), + SPECIES_TO_HOENN(GRUMPIG), + SPECIES_TO_HOENN(PLUSLE), + SPECIES_TO_HOENN(MINUN), + SPECIES_TO_HOENN(MAWILE), + SPECIES_TO_HOENN(MEDITITE), + SPECIES_TO_HOENN(MEDICHAM), + SPECIES_TO_HOENN(SWABLU), + SPECIES_TO_HOENN(ALTARIA), + SPECIES_TO_HOENN(WYNAUT), + SPECIES_TO_HOENN(DUSKULL), + SPECIES_TO_HOENN(DUSCLOPS), + SPECIES_TO_HOENN(ROSELIA), + SPECIES_TO_HOENN(SLAKOTH), + SPECIES_TO_HOENN(VIGOROTH), + SPECIES_TO_HOENN(SLAKING), + SPECIES_TO_HOENN(GULPIN), + SPECIES_TO_HOENN(SWALOT), + SPECIES_TO_HOENN(TROPIUS), + SPECIES_TO_HOENN(WHISMUR), + SPECIES_TO_HOENN(LOUDRED), + SPECIES_TO_HOENN(EXPLOUD), + SPECIES_TO_HOENN(CLAMPERL), + SPECIES_TO_HOENN(HUNTAIL), + SPECIES_TO_HOENN(GOREBYSS), + SPECIES_TO_HOENN(ABSOL), + SPECIES_TO_HOENN(SHUPPET), + SPECIES_TO_HOENN(BANETTE), + SPECIES_TO_HOENN(SEVIPER), + SPECIES_TO_HOENN(ZANGOOSE), + SPECIES_TO_HOENN(RELICANTH), + SPECIES_TO_HOENN(ARON), + SPECIES_TO_HOENN(LAIRON), + SPECIES_TO_HOENN(AGGRON), + SPECIES_TO_HOENN(CASTFORM), + SPECIES_TO_HOENN(VOLBEAT), + SPECIES_TO_HOENN(ILLUMISE), + SPECIES_TO_HOENN(LILEEP), + SPECIES_TO_HOENN(CRADILY), + SPECIES_TO_HOENN(ANORITH), + SPECIES_TO_HOENN(ARMALDO), + SPECIES_TO_HOENN(RALTS), + SPECIES_TO_HOENN(KIRLIA), + SPECIES_TO_HOENN(GARDEVOIR), + SPECIES_TO_HOENN(BAGON), + SPECIES_TO_HOENN(SHELGON), + SPECIES_TO_HOENN(SALAMENCE), + SPECIES_TO_HOENN(BELDUM), + SPECIES_TO_HOENN(METANG), + SPECIES_TO_HOENN(METAGROSS), + SPECIES_TO_HOENN(REGIROCK), + SPECIES_TO_HOENN(REGICE), + SPECIES_TO_HOENN(REGISTEEL), + SPECIES_TO_HOENN(KYOGRE), + SPECIES_TO_HOENN(GROUDON), + SPECIES_TO_HOENN(RAYQUAZA), + SPECIES_TO_HOENN(LATIAS), + SPECIES_TO_HOENN(LATIOS), + SPECIES_TO_HOENN(JIRACHI), + SPECIES_TO_HOENN(DEOXYS), + SPECIES_TO_HOENN(CHIMECHO), }; const u16 gSpeciesToNationalPokedexNum[] = // Assigns all species to the National Dex Index (Summary No. for National Dex) { - // SPECIES_NONE - NATIONAL_DEX_BULBASAUR, // SPECIES_BULBASAUR - NATIONAL_DEX_IVYSAUR, // SPECIES_IVYSAUR - NATIONAL_DEX_VENUSAUR, // SPECIES_VENUSAUR - NATIONAL_DEX_CHARMANDER, // SPECIES_CHARMANDER - NATIONAL_DEX_CHARMELEON, // SPECIES_CHARMELEON - NATIONAL_DEX_CHARIZARD, // SPECIES_CHARIZARD - NATIONAL_DEX_SQUIRTLE, // SPECIES_SQUIRTLE - NATIONAL_DEX_WARTORTLE, // SPECIES_WARTORTLE - NATIONAL_DEX_BLASTOISE, // SPECIES_BLASTOISE - NATIONAL_DEX_CATERPIE, // SPECIES_CATERPIE - NATIONAL_DEX_METAPOD, // SPECIES_METAPOD - NATIONAL_DEX_BUTTERFREE, // SPECIES_BUTTERFREE - NATIONAL_DEX_WEEDLE, // SPECIES_WEEDLE - NATIONAL_DEX_KAKUNA, // SPECIES_KAKUNA - NATIONAL_DEX_BEEDRILL, // SPECIES_BEEDRILL - NATIONAL_DEX_PIDGEY, // SPECIES_PIDGEY - NATIONAL_DEX_PIDGEOTTO, // SPECIES_PIDGEOTTO - NATIONAL_DEX_PIDGEOT, // SPECIES_PIDGEOT - NATIONAL_DEX_RATTATA, // SPECIES_RATTATA - NATIONAL_DEX_RATICATE, // SPECIES_RATICATE - NATIONAL_DEX_SPEAROW, // SPECIES_SPEAROW - NATIONAL_DEX_FEAROW, // SPECIES_FEAROW - NATIONAL_DEX_EKANS, // SPECIES_EKANS - NATIONAL_DEX_ARBOK, // SPECIES_ARBOK - NATIONAL_DEX_PIKACHU, // SPECIES_PIKACHU - NATIONAL_DEX_RAICHU, // SPECIES_RAICHU - NATIONAL_DEX_SANDSHREW, // SPECIES_SANDSHREW - NATIONAL_DEX_SANDSLASH, // SPECIES_SANDSLASH - NATIONAL_DEX_NIDORAN_F, // SPECIES_NIDORAN_F - NATIONAL_DEX_NIDORINA, // SPECIES_NIDORINA - NATIONAL_DEX_NIDOQUEEN, // SPECIES_NIDOQUEEN - NATIONAL_DEX_NIDORAN_M, // SPECIES_NIDORAN_M - NATIONAL_DEX_NIDORINO, // SPECIES_NIDORINO - NATIONAL_DEX_NIDOKING, // SPECIES_NIDOKING - NATIONAL_DEX_CLEFAIRY, // SPECIES_CLEFAIRY - NATIONAL_DEX_CLEFABLE, // SPECIES_CLEFABLE - NATIONAL_DEX_VULPIX, // SPECIES_VULPIX - NATIONAL_DEX_NINETALES, // SPECIES_NINETALES - NATIONAL_DEX_JIGGLYPUFF, // SPECIES_JIGGLYPUFF - NATIONAL_DEX_WIGGLYTUFF, // SPECIES_WIGGLYTUFF - NATIONAL_DEX_ZUBAT, // SPECIES_ZUBAT - NATIONAL_DEX_GOLBAT, // SPECIES_GOLBAT - NATIONAL_DEX_ODDISH, // SPECIES_ODDISH - NATIONAL_DEX_GLOOM, // SPECIES_GLOOM - NATIONAL_DEX_VILEPLUME, // SPECIES_VILEPLUME - NATIONAL_DEX_PARAS, // SPECIES_PARAS - NATIONAL_DEX_PARASECT, // SPECIES_PARASECT - NATIONAL_DEX_VENONAT, // SPECIES_VENONAT - NATIONAL_DEX_VENOMOTH, // SPECIES_VENOMOTH - NATIONAL_DEX_DIGLETT, // SPECIES_DIGLETT - NATIONAL_DEX_DUGTRIO, // SPECIES_DUGTRIO - NATIONAL_DEX_MEOWTH, // SPECIES_MEOWTH - NATIONAL_DEX_PERSIAN, // SPECIES_PERSIAN - NATIONAL_DEX_PSYDUCK, // SPECIES_PSYDUCK - NATIONAL_DEX_GOLDUCK, // SPECIES_GOLDUCK - NATIONAL_DEX_MANKEY, // SPECIES_MANKEY - NATIONAL_DEX_PRIMEAPE, // SPECIES_PRIMEAPE - NATIONAL_DEX_GROWLITHE, // SPECIES_GROWLITHE - NATIONAL_DEX_ARCANINE, // SPECIES_ARCANINE - NATIONAL_DEX_POLIWAG, // SPECIES_POLIWAG - NATIONAL_DEX_POLIWHIRL, // SPECIES_POLIWHIRL - NATIONAL_DEX_POLIWRATH, // SPECIES_POLIWRATH - NATIONAL_DEX_ABRA, // SPECIES_ABRA - NATIONAL_DEX_KADABRA, // SPECIES_KADABRA - NATIONAL_DEX_ALAKAZAM, // SPECIES_ALAKAZAM - NATIONAL_DEX_MACHOP, // SPECIES_MACHOP - NATIONAL_DEX_MACHOKE, // SPECIES_MACHOKE - NATIONAL_DEX_MACHAMP, // SPECIES_MACHAMP - NATIONAL_DEX_BELLSPROUT, // SPECIES_BELLSPROUT - NATIONAL_DEX_WEEPINBELL, // SPECIES_WEEPINBELL - NATIONAL_DEX_VICTREEBEL, // SPECIES_VICTREEBEL - NATIONAL_DEX_TENTACOOL, // SPECIES_TENTACOOL - NATIONAL_DEX_TENTACRUEL, // SPECIES_TENTACRUEL - NATIONAL_DEX_GEODUDE, // SPECIES_GEODUDE - NATIONAL_DEX_GRAVELER, // SPECIES_GRAVELER - NATIONAL_DEX_GOLEM, // SPECIES_GOLEM - NATIONAL_DEX_PONYTA, // SPECIES_PONYTA - NATIONAL_DEX_RAPIDASH, // SPECIES_RAPIDASH - NATIONAL_DEX_SLOWPOKE, // SPECIES_SLOWPOKE - NATIONAL_DEX_SLOWBRO, // SPECIES_SLOWBRO - NATIONAL_DEX_MAGNEMITE, // SPECIES_MAGNEMITE - NATIONAL_DEX_MAGNETON, // SPECIES_MAGNETON - NATIONAL_DEX_FARFETCHD, // SPECIES_FARFETCHD - NATIONAL_DEX_DODUO, // SPECIES_DODUO - NATIONAL_DEX_DODRIO, // SPECIES_DODRIO - NATIONAL_DEX_SEEL, // SPECIES_SEEL - NATIONAL_DEX_DEWGONG, // SPECIES_DEWGONG - NATIONAL_DEX_GRIMER, // SPECIES_GRIMER - NATIONAL_DEX_MUK, // SPECIES_MUK - NATIONAL_DEX_SHELLDER, // SPECIES_SHELLDER - NATIONAL_DEX_CLOYSTER, // SPECIES_CLOYSTER - NATIONAL_DEX_GASTLY, // SPECIES_GASTLY - NATIONAL_DEX_HAUNTER, // SPECIES_HAUNTER - NATIONAL_DEX_GENGAR, // SPECIES_GENGAR - NATIONAL_DEX_ONIX, // SPECIES_ONIX - NATIONAL_DEX_DROWZEE, // SPECIES_DROWZEE - NATIONAL_DEX_HYPNO, // SPECIES_HYPNO - NATIONAL_DEX_KRABBY, // SPECIES_KRABBY - NATIONAL_DEX_KINGLER, // SPECIES_KINGLER - NATIONAL_DEX_VOLTORB, // SPECIES_VOLTORB - NATIONAL_DEX_ELECTRODE, // SPECIES_ELECTRODE - NATIONAL_DEX_EXEGGCUTE, // SPECIES_EXEGGCUTE - NATIONAL_DEX_EXEGGUTOR, // SPECIES_EXEGGUTOR - NATIONAL_DEX_CUBONE, // SPECIES_CUBONE - NATIONAL_DEX_MAROWAK, // SPECIES_MAROWAK - NATIONAL_DEX_HITMONLEE, // SPECIES_HITMONLEE - NATIONAL_DEX_HITMONCHAN, // SPECIES_HITMONCHAN - NATIONAL_DEX_LICKITUNG, // SPECIES_LICKITUNG - NATIONAL_DEX_KOFFING, // SPECIES_KOFFING - NATIONAL_DEX_WEEZING, // SPECIES_WEEZING - NATIONAL_DEX_RHYHORN, // SPECIES_RHYHORN - NATIONAL_DEX_RHYDON, // SPECIES_RHYDON - NATIONAL_DEX_CHANSEY, // SPECIES_CHANSEY - NATIONAL_DEX_TANGELA, // SPECIES_TANGELA - NATIONAL_DEX_KANGASKHAN, // SPECIES_KANGASKHAN - NATIONAL_DEX_HORSEA, // SPECIES_HORSEA - NATIONAL_DEX_SEADRA, // SPECIES_SEADRA - NATIONAL_DEX_GOLDEEN, // SPECIES_GOLDEEN - NATIONAL_DEX_SEAKING, // SPECIES_SEAKING - NATIONAL_DEX_STARYU, // SPECIES_STARYU - NATIONAL_DEX_STARMIE, // SPECIES_STARMIE - NATIONAL_DEX_MR_MIME, // SPECIES_MR_MIME - NATIONAL_DEX_SCYTHER, // SPECIES_SCYTHER - NATIONAL_DEX_JYNX, // SPECIES_JYNX - NATIONAL_DEX_ELECTABUZZ, // SPECIES_ELECTABUZZ - NATIONAL_DEX_MAGMAR, // SPECIES_MAGMAR - NATIONAL_DEX_PINSIR, // SPECIES_PINSIR - NATIONAL_DEX_TAUROS, // SPECIES_TAUROS - NATIONAL_DEX_MAGIKARP, // SPECIES_MAGIKARP - NATIONAL_DEX_GYARADOS, // SPECIES_GYARADOS - NATIONAL_DEX_LAPRAS, // SPECIES_LAPRAS - NATIONAL_DEX_DITTO, // SPECIES_DITTO - NATIONAL_DEX_EEVEE, // SPECIES_EEVEE - NATIONAL_DEX_VAPOREON, // SPECIES_VAPOREON - NATIONAL_DEX_JOLTEON, // SPECIES_JOLTEON - NATIONAL_DEX_FLAREON, // SPECIES_FLAREON - NATIONAL_DEX_PORYGON, // SPECIES_PORYGON - NATIONAL_DEX_OMANYTE, // SPECIES_OMANYTE - NATIONAL_DEX_OMASTAR, // SPECIES_OMASTAR - NATIONAL_DEX_KABUTO, // SPECIES_KABUTO - NATIONAL_DEX_KABUTOPS, // SPECIES_KABUTOPS - NATIONAL_DEX_AERODACTYL, // SPECIES_AERODACTYL - NATIONAL_DEX_SNORLAX, // SPECIES_SNORLAX - NATIONAL_DEX_ARTICUNO, // SPECIES_ARTICUNO - NATIONAL_DEX_ZAPDOS, // SPECIES_ZAPDOS - NATIONAL_DEX_MOLTRES, // SPECIES_MOLTRES - NATIONAL_DEX_DRATINI, // SPECIES_DRATINI - NATIONAL_DEX_DRAGONAIR, // SPECIES_DRAGONAIR - NATIONAL_DEX_DRAGONITE, // SPECIES_DRAGONITE - NATIONAL_DEX_MEWTWO, // SPECIES_MEWTWO - NATIONAL_DEX_MEW, // SPECIES_MEW - NATIONAL_DEX_CHIKORITA, // SPECIES_CHIKORITA - NATIONAL_DEX_BAYLEEF, // SPECIES_BAYLEEF - NATIONAL_DEX_MEGANIUM, // SPECIES_MEGANIUM - NATIONAL_DEX_CYNDAQUIL, // SPECIES_CYNDAQUIL - NATIONAL_DEX_QUILAVA, // SPECIES_QUILAVA - NATIONAL_DEX_TYPHLOSION, // SPECIES_TYPHLOSION - NATIONAL_DEX_TOTODILE, // SPECIES_TOTODILE - NATIONAL_DEX_CROCONAW, // SPECIES_CROCONAW - NATIONAL_DEX_FERALIGATR, // SPECIES_FERALIGATR - NATIONAL_DEX_SENTRET, // SPECIES_SENTRET - NATIONAL_DEX_FURRET, // SPECIES_FURRET - NATIONAL_DEX_HOOTHOOT, // SPECIES_HOOTHOOT - NATIONAL_DEX_NOCTOWL, // SPECIES_NOCTOWL - NATIONAL_DEX_LEDYBA, // SPECIES_LEDYBA - NATIONAL_DEX_LEDIAN, // SPECIES_LEDIAN - NATIONAL_DEX_SPINARAK, // SPECIES_SPINARAK - NATIONAL_DEX_ARIADOS, // SPECIES_ARIADOS - NATIONAL_DEX_CROBAT, // SPECIES_CROBAT - NATIONAL_DEX_CHINCHOU, // SPECIES_CHINCHOU - NATIONAL_DEX_LANTURN, // SPECIES_LANTURN - NATIONAL_DEX_PICHU, // SPECIES_PICHU - NATIONAL_DEX_CLEFFA, // SPECIES_CLEFFA - NATIONAL_DEX_IGGLYBUFF, // SPECIES_IGGLYBUFF - NATIONAL_DEX_TOGEPI, // SPECIES_TOGEPI - NATIONAL_DEX_TOGETIC, // SPECIES_TOGETIC - NATIONAL_DEX_NATU, // SPECIES_NATU - NATIONAL_DEX_XATU, // SPECIES_XATU - NATIONAL_DEX_MAREEP, // SPECIES_MAREEP - NATIONAL_DEX_FLAAFFY, // SPECIES_FLAAFFY - NATIONAL_DEX_AMPHAROS, // SPECIES_AMPHAROS - NATIONAL_DEX_BELLOSSOM, // SPECIES_BELLOSSOM - NATIONAL_DEX_MARILL, // SPECIES_MARILL - NATIONAL_DEX_AZUMARILL, // SPECIES_AZUMARILL - NATIONAL_DEX_SUDOWOODO, // SPECIES_SUDOWOODO - NATIONAL_DEX_POLITOED, // SPECIES_POLITOED - NATIONAL_DEX_HOPPIP, // SPECIES_HOPPIP - NATIONAL_DEX_SKIPLOOM, // SPECIES_SKIPLOOM - NATIONAL_DEX_JUMPLUFF, // SPECIES_JUMPLUFF - NATIONAL_DEX_AIPOM, // SPECIES_AIPOM - NATIONAL_DEX_SUNKERN, // SPECIES_SUNKERN - NATIONAL_DEX_SUNFLORA, // SPECIES_SUNFLORA - NATIONAL_DEX_YANMA, // SPECIES_YANMA - NATIONAL_DEX_WOOPER, // SPECIES_WOOPER - NATIONAL_DEX_QUAGSIRE, // SPECIES_QUAGSIRE - NATIONAL_DEX_ESPEON, // SPECIES_ESPEON - NATIONAL_DEX_UMBREON, // SPECIES_UMBREON - NATIONAL_DEX_MURKROW, // SPECIES_MURKROW - NATIONAL_DEX_SLOWKING, // SPECIES_SLOWKING - NATIONAL_DEX_MISDREAVUS, // SPECIES_MISDREAVUS - NATIONAL_DEX_UNOWN, // SPECIES_UNOWN - NATIONAL_DEX_WOBBUFFET, // SPECIES_WOBBUFFET - NATIONAL_DEX_GIRAFARIG, // SPECIES_GIRAFARIG - NATIONAL_DEX_PINECO, // SPECIES_PINECO - NATIONAL_DEX_FORRETRESS, // SPECIES_FORRETRESS - NATIONAL_DEX_DUNSPARCE, // SPECIES_DUNSPARCE - NATIONAL_DEX_GLIGAR, // SPECIES_GLIGAR - NATIONAL_DEX_STEELIX, // SPECIES_STEELIX - NATIONAL_DEX_SNUBBULL, // SPECIES_SNUBBULL - NATIONAL_DEX_GRANBULL, // SPECIES_GRANBULL - NATIONAL_DEX_QWILFISH, // SPECIES_QWILFISH - NATIONAL_DEX_SCIZOR, // SPECIES_SCIZOR - NATIONAL_DEX_SHUCKLE, // SPECIES_SHUCKLE - NATIONAL_DEX_HERACROSS, // SPECIES_HERACROSS - NATIONAL_DEX_SNEASEL, // SPECIES_SNEASEL - NATIONAL_DEX_TEDDIURSA, // SPECIES_TEDDIURSA - NATIONAL_DEX_URSARING, // SPECIES_URSARING - NATIONAL_DEX_SLUGMA, // SPECIES_SLUGMA - NATIONAL_DEX_MAGCARGO, // SPECIES_MAGCARGO - NATIONAL_DEX_SWINUB, // SPECIES_SWINUB - NATIONAL_DEX_PILOSWINE, // SPECIES_PILOSWINE - NATIONAL_DEX_CORSOLA, // SPECIES_CORSOLA - NATIONAL_DEX_REMORAID, // SPECIES_REMORAID - NATIONAL_DEX_OCTILLERY, // SPECIES_OCTILLERY - NATIONAL_DEX_DELIBIRD, // SPECIES_DELIBIRD - NATIONAL_DEX_MANTINE, // SPECIES_MANTINE - NATIONAL_DEX_SKARMORY, // SPECIES_SKARMORY - NATIONAL_DEX_HOUNDOUR, // SPECIES_HOUNDOUR - NATIONAL_DEX_HOUNDOOM, // SPECIES_HOUNDOOM - NATIONAL_DEX_KINGDRA, // SPECIES_KINGDRA - NATIONAL_DEX_PHANPY, // SPECIES_PHANPY - NATIONAL_DEX_DONPHAN, // SPECIES_DONPHAN - NATIONAL_DEX_PORYGON2, // SPECIES_PORYGON2 - NATIONAL_DEX_STANTLER, // SPECIES_STANTLER - NATIONAL_DEX_SMEARGLE, // SPECIES_SMEARGLE - NATIONAL_DEX_TYROGUE, // SPECIES_TYROGUE - NATIONAL_DEX_HITMONTOP, // SPECIES_HITMONTOP - NATIONAL_DEX_SMOOCHUM, // SPECIES_SMOOCHUM - NATIONAL_DEX_ELEKID, // SPECIES_ELEKID - NATIONAL_DEX_MAGBY, // SPECIES_MAGBY - NATIONAL_DEX_MILTANK, // SPECIES_MILTANK - NATIONAL_DEX_BLISSEY, // SPECIES_BLISSEY - NATIONAL_DEX_RAIKOU, // SPECIES_RAIKOU - NATIONAL_DEX_ENTEI, // SPECIES_ENTEI - NATIONAL_DEX_SUICUNE, // SPECIES_SUICUNE - NATIONAL_DEX_LARVITAR, // SPECIES_LARVITAR - NATIONAL_DEX_PUPITAR, // SPECIES_PUPITAR - NATIONAL_DEX_TYRANITAR, // SPECIES_TYRANITAR - NATIONAL_DEX_LUGIA, // SPECIES_LUGIA - NATIONAL_DEX_HO_OH, // SPECIES_HO-OH - NATIONAL_DEX_CELEBI, // SPECIES_CELEBI - NATIONAL_DEX_OLD_UNOWN_B, // SPECIES_OLD_UNOWN_B - NATIONAL_DEX_OLD_UNOWN_C, // SPECIES_OLD_UNOWN_C - NATIONAL_DEX_OLD_UNOWN_D, // SPECIES_OLD_UNOWN_D - NATIONAL_DEX_OLD_UNOWN_E, // SPECIES_OLD_UNOWN_E - NATIONAL_DEX_OLD_UNOWN_F, // SPECIES_OLD_UNOWN_F - NATIONAL_DEX_OLD_UNOWN_G, // SPECIES_OLD_UNOWN_G - NATIONAL_DEX_OLD_UNOWN_H, // SPECIES_OLD_UNOWN_H - NATIONAL_DEX_OLD_UNOWN_I, // SPECIES_OLD_UNOWN_I - NATIONAL_DEX_OLD_UNOWN_J, // SPECIES_OLD_UNOWN_J - NATIONAL_DEX_OLD_UNOWN_K, // SPECIES_OLD_UNOWN_K - NATIONAL_DEX_OLD_UNOWN_L, // SPECIES_OLD_UNOWN_L - NATIONAL_DEX_OLD_UNOWN_M, // SPECIES_OLD_UNOWN_M - NATIONAL_DEX_OLD_UNOWN_N, // SPECIES_OLD_UNOWN_N - NATIONAL_DEX_OLD_UNOWN_O, // SPECIES_OLD_UNOWN_O - NATIONAL_DEX_OLD_UNOWN_P, // SPECIES_OLD_UNOWN_P - NATIONAL_DEX_OLD_UNOWN_Q, // SPECIES_OLD_UNOWN_Q - NATIONAL_DEX_OLD_UNOWN_R, // SPECIES_OLD_UNOWN_R - NATIONAL_DEX_OLD_UNOWN_S, // SPECIES_OLD_UNOWN_S - NATIONAL_DEX_OLD_UNOWN_T, // SPECIES_OLD_UNOWN_T - NATIONAL_DEX_OLD_UNOWN_U, // SPECIES_OLD_UNOWN_U - NATIONAL_DEX_OLD_UNOWN_V, // SPECIES_OLD_UNOWN_V - NATIONAL_DEX_OLD_UNOWN_W, // SPECIES_OLD_UNOWN_W - NATIONAL_DEX_OLD_UNOWN_X, // SPECIES_OLD_UNOWN_X - NATIONAL_DEX_OLD_UNOWN_Y, // SPECIES_OLD_UNOWN_Y - NATIONAL_DEX_OLD_UNOWN_Z, // SPECIES_OLD_UNOWN_Z - NATIONAL_DEX_TREECKO, // SPECIES_TREECKO - NATIONAL_DEX_GROVYLE, // SPECIES_GROVYLE - NATIONAL_DEX_SCEPTILE, // SPECIES_SCEPTILE - NATIONAL_DEX_TORCHIC, // SPECIES_TORCHIC - NATIONAL_DEX_COMBUSKEN, // SPECIES_COMBUSKEN - NATIONAL_DEX_BLAZIKEN, // SPECIES_BLAZIKEN - NATIONAL_DEX_MUDKIP, // SPECIES_MUDKIP - NATIONAL_DEX_MARSHTOMP, // SPECIES_MARSHTOMP - NATIONAL_DEX_SWAMPERT, // SPECIES_SWAMPERT - NATIONAL_DEX_POOCHYENA, // SPECIES_POOCHYENA - NATIONAL_DEX_MIGHTYENA, // SPECIES_MIGHTYENA - NATIONAL_DEX_ZIGZAGOON, // SPECIES_ZIGZAGOON - NATIONAL_DEX_LINOONE, // SPECIES_LINOONE - NATIONAL_DEX_WURMPLE, // SPECIES_WURMPLE - NATIONAL_DEX_SILCOON, // SPECIES_SILCOON - NATIONAL_DEX_BEAUTIFLY, // SPECIES_BEAUTIFLY - NATIONAL_DEX_CASCOON, // SPECIES_CASCOON - NATIONAL_DEX_DUSTOX, // SPECIES_DUSTOX - NATIONAL_DEX_LOTAD, // SPECIES_LOTAD - NATIONAL_DEX_LOMBRE, // SPECIES_LOMBRE - NATIONAL_DEX_LUDICOLO, // SPECIES_LUDICOLO - NATIONAL_DEX_SEEDOT, // SPECIES_SEEDOT - NATIONAL_DEX_NUZLEAF, // SPECIES_NUZLEAF - NATIONAL_DEX_SHIFTRY, // SPECIES_SHIFTRY - NATIONAL_DEX_NINCADA, // SPECIES_NINCADA - NATIONAL_DEX_NINJASK, // SPECIES_NINJASK - NATIONAL_DEX_SHEDINJA, // SPECIES_SHEDINJA - NATIONAL_DEX_TAILLOW, // SPECIES_TAILLOW - NATIONAL_DEX_SWELLOW, // SPECIES_SWELLOW - NATIONAL_DEX_SHROOMISH, // SPECIES_SHROOMISH - NATIONAL_DEX_BRELOOM, // SPECIES_BRELOOM - NATIONAL_DEX_SPINDA, // SPECIES_SPINDA - NATIONAL_DEX_WINGULL, // SPECIES_WINGULL - NATIONAL_DEX_PELIPPER, // SPECIES_PELIPPER - NATIONAL_DEX_SURSKIT, // SPECIES_SURSKIT - NATIONAL_DEX_MASQUERAIN, // SPECIES_MASQUERAIN - NATIONAL_DEX_WAILMER, // SPECIES_WAILMER - NATIONAL_DEX_WAILORD, // SPECIES_WAILORD - NATIONAL_DEX_SKITTY, // SPECIES_SKITTY - NATIONAL_DEX_DELCATTY, // SPECIES_DELCATTY - NATIONAL_DEX_KECLEON, // SPECIES_KECLEON - NATIONAL_DEX_BALTOY, // SPECIES_BALTOY - NATIONAL_DEX_CLAYDOL, // SPECIES_CLAYDOL - NATIONAL_DEX_NOSEPASS, // SPECIES_NOSEPASS - NATIONAL_DEX_TORKOAL, // SPECIES_TORKOAL - NATIONAL_DEX_SABLEYE, // SPECIES_SABLEYE - NATIONAL_DEX_BARBOACH, // SPECIES_BARBOACH - NATIONAL_DEX_WHISCASH, // SPECIES_WHISCASH - NATIONAL_DEX_LUVDISC, // SPECIES_LUVDISC - NATIONAL_DEX_CORPHISH, // SPECIES_CORPHISH - NATIONAL_DEX_CRAWDAUNT, // SPECIES_CRAWDAUNT - NATIONAL_DEX_FEEBAS, // SPECIES_FEEBAS - NATIONAL_DEX_MILOTIC, // SPECIES_MILOTIC - NATIONAL_DEX_CARVANHA, // SPECIES_CARVANHA - NATIONAL_DEX_SHARPEDO, // SPECIES_SHARPEDO - NATIONAL_DEX_TRAPINCH, // SPECIES_TRAPINCH - NATIONAL_DEX_VIBRAVA, // SPECIES_VIBRAVA - NATIONAL_DEX_FLYGON, // SPECIES_FLYGON - NATIONAL_DEX_MAKUHITA, // SPECIES_MAKUHITA - NATIONAL_DEX_HARIYAMA, // SPECIES_HARIYAMA - NATIONAL_DEX_ELECTRIKE, // SPECIES_ELECTRIKE - NATIONAL_DEX_MANECTRIC, // SPECIES_MANECTRIC - NATIONAL_DEX_NUMEL, // SPECIES_NUMEL - NATIONAL_DEX_CAMERUPT, // SPECIES_CAMERUPT - NATIONAL_DEX_SPHEAL, // SPECIES_SPHEAL - NATIONAL_DEX_SEALEO, // SPECIES_SEALEO - NATIONAL_DEX_WALREIN, // SPECIES_WALREIN - NATIONAL_DEX_CACNEA, // SPECIES_CACNEA - NATIONAL_DEX_CACTURNE, // SPECIES_CACTURNE - NATIONAL_DEX_SNORUNT, // SPECIES_SNORUNT - NATIONAL_DEX_GLALIE, // SPECIES_GLALIE - NATIONAL_DEX_LUNATONE, // SPECIES_LUNATONE - NATIONAL_DEX_SOLROCK, // SPECIES_SOLROCK - NATIONAL_DEX_AZURILL, // SPECIES_AZURILL - NATIONAL_DEX_SPOINK, // SPECIES_SPOINK - NATIONAL_DEX_GRUMPIG, // SPECIES_GRUMPIG - NATIONAL_DEX_PLUSLE, // SPECIES_PLUSLE - NATIONAL_DEX_MINUN, // SPECIES_MINUN - NATIONAL_DEX_MAWILE, // SPECIES_MAWILE - NATIONAL_DEX_MEDITITE, // SPECIES_MEDITITE - NATIONAL_DEX_MEDICHAM, // SPECIES_MEDICHAM - NATIONAL_DEX_SWABLU, // SPECIES_SWABLU - NATIONAL_DEX_ALTARIA, // SPECIES_ALTARIA - NATIONAL_DEX_WYNAUT, // SPECIES_WYNAUT - NATIONAL_DEX_DUSKULL, // SPECIES_DUSKULL - NATIONAL_DEX_DUSCLOPS, // SPECIES_DUSCLOPS - NATIONAL_DEX_ROSELIA, // SPECIES_ROSELIA - NATIONAL_DEX_SLAKOTH, // SPECIES_SLAKOTH - NATIONAL_DEX_VIGOROTH, // SPECIES_VIGOROTH - NATIONAL_DEX_SLAKING, // SPECIES_SLAKING - NATIONAL_DEX_GULPIN, // SPECIES_GULPIN - NATIONAL_DEX_SWALOT, // SPECIES_SWALOT - NATIONAL_DEX_TROPIUS, // SPECIES_TROPIUS - NATIONAL_DEX_WHISMUR, // SPECIES_WHISMUR - NATIONAL_DEX_LOUDRED, // SPECIES_LOUDRED - NATIONAL_DEX_EXPLOUD, // SPECIES_EXPLOUD - NATIONAL_DEX_CLAMPERL, // SPECIES_CLAMPERL - NATIONAL_DEX_HUNTAIL, // SPECIES_HUNTAIL - NATIONAL_DEX_GOREBYSS, // SPECIES_GOREBYSS - NATIONAL_DEX_ABSOL, // SPECIES_ABSOL - NATIONAL_DEX_SHUPPET, // SPECIES_SHUPPET - NATIONAL_DEX_BANETTE, // SPECIES_BANETTE - NATIONAL_DEX_SEVIPER, // SPECIES_SEVIPER - NATIONAL_DEX_ZANGOOSE, // SPECIES_ZANGOOSE - NATIONAL_DEX_RELICANTH, // SPECIES_RELICANTH - NATIONAL_DEX_ARON, // SPECIES_ARON - NATIONAL_DEX_LAIRON, // SPECIES_LAIRON - NATIONAL_DEX_AGGRON, // SPECIES_AGGRON - NATIONAL_DEX_CASTFORM, // SPECIES_CASTFORM - NATIONAL_DEX_VOLBEAT, // SPECIES_VOLBEAT - NATIONAL_DEX_ILLUMISE, // SPECIES_ILLUMISE - NATIONAL_DEX_LILEEP, // SPECIES_LILEEP - NATIONAL_DEX_CRADILY, // SPECIES_CRADILY - NATIONAL_DEX_ANORITH, // SPECIES_ANORITH - NATIONAL_DEX_ARMALDO, // SPECIES_ARMALDO - NATIONAL_DEX_RALTS, // SPECIES_RALTS - NATIONAL_DEX_KIRLIA, // SPECIES_KIRLIA - NATIONAL_DEX_GARDEVOIR, // SPECIES_GARDEVOIR - NATIONAL_DEX_BAGON, // SPECIES_BAGON - NATIONAL_DEX_SHELGON, // SPECIES_SHELGON - NATIONAL_DEX_SALAMENCE, // SPECIES_SALAMENCE - NATIONAL_DEX_BELDUM, // SPECIES_BELDUM - NATIONAL_DEX_METANG, // SPECIES_METANG - NATIONAL_DEX_METAGROSS, // SPECIES_METAGROSS - NATIONAL_DEX_REGIROCK, // SPECIES_REGIROCK - NATIONAL_DEX_REGICE, // SPECIES_REGICE - NATIONAL_DEX_REGISTEEL, // SPECIES_REGISTEEL - NATIONAL_DEX_KYOGRE, // SPECIES_KYOGRE - NATIONAL_DEX_GROUDON, // SPECIES_GROUDON - NATIONAL_DEX_RAYQUAZA, // SPECIES_RAYQUAZA - NATIONAL_DEX_LATIAS, // SPECIES_LATIAS - NATIONAL_DEX_LATIOS, // SPECIES_LATIOS - NATIONAL_DEX_JIRACHI, // SPECIES_JIRACHI - NATIONAL_DEX_DEOXYS, // SPECIES_DEOXYS - NATIONAL_DEX_CHIMECHO // SPECIES_CHIMECHO + SPECIES_TO_NATIONAL(BULBASAUR), + SPECIES_TO_NATIONAL(IVYSAUR), + SPECIES_TO_NATIONAL(VENUSAUR), + SPECIES_TO_NATIONAL(CHARMANDER), + SPECIES_TO_NATIONAL(CHARMELEON), + SPECIES_TO_NATIONAL(CHARIZARD), + SPECIES_TO_NATIONAL(SQUIRTLE), + SPECIES_TO_NATIONAL(WARTORTLE), + SPECIES_TO_NATIONAL(BLASTOISE), + SPECIES_TO_NATIONAL(CATERPIE), + SPECIES_TO_NATIONAL(METAPOD), + SPECIES_TO_NATIONAL(BUTTERFREE), + SPECIES_TO_NATIONAL(WEEDLE), + SPECIES_TO_NATIONAL(KAKUNA), + SPECIES_TO_NATIONAL(BEEDRILL), + SPECIES_TO_NATIONAL(PIDGEY), + SPECIES_TO_NATIONAL(PIDGEOTTO), + SPECIES_TO_NATIONAL(PIDGEOT), + SPECIES_TO_NATIONAL(RATTATA), + SPECIES_TO_NATIONAL(RATICATE), + SPECIES_TO_NATIONAL(SPEAROW), + SPECIES_TO_NATIONAL(FEAROW), + SPECIES_TO_NATIONAL(EKANS), + SPECIES_TO_NATIONAL(ARBOK), + SPECIES_TO_NATIONAL(PIKACHU), + SPECIES_TO_NATIONAL(RAICHU), + SPECIES_TO_NATIONAL(SANDSHREW), + SPECIES_TO_NATIONAL(SANDSLASH), + SPECIES_TO_NATIONAL(NIDORAN_F), + SPECIES_TO_NATIONAL(NIDORINA), + SPECIES_TO_NATIONAL(NIDOQUEEN), + SPECIES_TO_NATIONAL(NIDORAN_M), + SPECIES_TO_NATIONAL(NIDORINO), + SPECIES_TO_NATIONAL(NIDOKING), + SPECIES_TO_NATIONAL(CLEFAIRY), + SPECIES_TO_NATIONAL(CLEFABLE), + SPECIES_TO_NATIONAL(VULPIX), + SPECIES_TO_NATIONAL(NINETALES), + SPECIES_TO_NATIONAL(JIGGLYPUFF), + SPECIES_TO_NATIONAL(WIGGLYTUFF), + SPECIES_TO_NATIONAL(ZUBAT), + SPECIES_TO_NATIONAL(GOLBAT), + SPECIES_TO_NATIONAL(ODDISH), + SPECIES_TO_NATIONAL(GLOOM), + SPECIES_TO_NATIONAL(VILEPLUME), + SPECIES_TO_NATIONAL(PARAS), + SPECIES_TO_NATIONAL(PARASECT), + SPECIES_TO_NATIONAL(VENONAT), + SPECIES_TO_NATIONAL(VENOMOTH), + SPECIES_TO_NATIONAL(DIGLETT), + SPECIES_TO_NATIONAL(DUGTRIO), + SPECIES_TO_NATIONAL(MEOWTH), + SPECIES_TO_NATIONAL(PERSIAN), + SPECIES_TO_NATIONAL(PSYDUCK), + SPECIES_TO_NATIONAL(GOLDUCK), + SPECIES_TO_NATIONAL(MANKEY), + SPECIES_TO_NATIONAL(PRIMEAPE), + SPECIES_TO_NATIONAL(GROWLITHE), + SPECIES_TO_NATIONAL(ARCANINE), + SPECIES_TO_NATIONAL(POLIWAG), + SPECIES_TO_NATIONAL(POLIWHIRL), + SPECIES_TO_NATIONAL(POLIWRATH), + SPECIES_TO_NATIONAL(ABRA), + SPECIES_TO_NATIONAL(KADABRA), + SPECIES_TO_NATIONAL(ALAKAZAM), + SPECIES_TO_NATIONAL(MACHOP), + SPECIES_TO_NATIONAL(MACHOKE), + SPECIES_TO_NATIONAL(MACHAMP), + SPECIES_TO_NATIONAL(BELLSPROUT), + SPECIES_TO_NATIONAL(WEEPINBELL), + SPECIES_TO_NATIONAL(VICTREEBEL), + SPECIES_TO_NATIONAL(TENTACOOL), + SPECIES_TO_NATIONAL(TENTACRUEL), + SPECIES_TO_NATIONAL(GEODUDE), + SPECIES_TO_NATIONAL(GRAVELER), + SPECIES_TO_NATIONAL(GOLEM), + SPECIES_TO_NATIONAL(PONYTA), + SPECIES_TO_NATIONAL(RAPIDASH), + SPECIES_TO_NATIONAL(SLOWPOKE), + SPECIES_TO_NATIONAL(SLOWBRO), + SPECIES_TO_NATIONAL(MAGNEMITE), + SPECIES_TO_NATIONAL(MAGNETON), + SPECIES_TO_NATIONAL(FARFETCHD), + SPECIES_TO_NATIONAL(DODUO), + SPECIES_TO_NATIONAL(DODRIO), + SPECIES_TO_NATIONAL(SEEL), + SPECIES_TO_NATIONAL(DEWGONG), + SPECIES_TO_NATIONAL(GRIMER), + SPECIES_TO_NATIONAL(MUK), + SPECIES_TO_NATIONAL(SHELLDER), + SPECIES_TO_NATIONAL(CLOYSTER), + SPECIES_TO_NATIONAL(GASTLY), + SPECIES_TO_NATIONAL(HAUNTER), + SPECIES_TO_NATIONAL(GENGAR), + SPECIES_TO_NATIONAL(ONIX), + SPECIES_TO_NATIONAL(DROWZEE), + SPECIES_TO_NATIONAL(HYPNO), + SPECIES_TO_NATIONAL(KRABBY), + SPECIES_TO_NATIONAL(KINGLER), + SPECIES_TO_NATIONAL(VOLTORB), + SPECIES_TO_NATIONAL(ELECTRODE), + SPECIES_TO_NATIONAL(EXEGGCUTE), + SPECIES_TO_NATIONAL(EXEGGUTOR), + SPECIES_TO_NATIONAL(CUBONE), + SPECIES_TO_NATIONAL(MAROWAK), + SPECIES_TO_NATIONAL(HITMONLEE), + SPECIES_TO_NATIONAL(HITMONCHAN), + SPECIES_TO_NATIONAL(LICKITUNG), + SPECIES_TO_NATIONAL(KOFFING), + SPECIES_TO_NATIONAL(WEEZING), + SPECIES_TO_NATIONAL(RHYHORN), + SPECIES_TO_NATIONAL(RHYDON), + SPECIES_TO_NATIONAL(CHANSEY), + SPECIES_TO_NATIONAL(TANGELA), + SPECIES_TO_NATIONAL(KANGASKHAN), + SPECIES_TO_NATIONAL(HORSEA), + SPECIES_TO_NATIONAL(SEADRA), + SPECIES_TO_NATIONAL(GOLDEEN), + SPECIES_TO_NATIONAL(SEAKING), + SPECIES_TO_NATIONAL(STARYU), + SPECIES_TO_NATIONAL(STARMIE), + SPECIES_TO_NATIONAL(MR_MIME), + SPECIES_TO_NATIONAL(SCYTHER), + SPECIES_TO_NATIONAL(JYNX), + SPECIES_TO_NATIONAL(ELECTABUZZ), + SPECIES_TO_NATIONAL(MAGMAR), + SPECIES_TO_NATIONAL(PINSIR), + SPECIES_TO_NATIONAL(TAUROS), + SPECIES_TO_NATIONAL(MAGIKARP), + SPECIES_TO_NATIONAL(GYARADOS), + SPECIES_TO_NATIONAL(LAPRAS), + SPECIES_TO_NATIONAL(DITTO), + SPECIES_TO_NATIONAL(EEVEE), + SPECIES_TO_NATIONAL(VAPOREON), + SPECIES_TO_NATIONAL(JOLTEON), + SPECIES_TO_NATIONAL(FLAREON), + SPECIES_TO_NATIONAL(PORYGON), + SPECIES_TO_NATIONAL(OMANYTE), + SPECIES_TO_NATIONAL(OMASTAR), + SPECIES_TO_NATIONAL(KABUTO), + SPECIES_TO_NATIONAL(KABUTOPS), + SPECIES_TO_NATIONAL(AERODACTYL), + SPECIES_TO_NATIONAL(SNORLAX), + SPECIES_TO_NATIONAL(ARTICUNO), + SPECIES_TO_NATIONAL(ZAPDOS), + SPECIES_TO_NATIONAL(MOLTRES), + SPECIES_TO_NATIONAL(DRATINI), + SPECIES_TO_NATIONAL(DRAGONAIR), + SPECIES_TO_NATIONAL(DRAGONITE), + SPECIES_TO_NATIONAL(MEWTWO), + SPECIES_TO_NATIONAL(MEW), + SPECIES_TO_NATIONAL(CHIKORITA), + SPECIES_TO_NATIONAL(BAYLEEF), + SPECIES_TO_NATIONAL(MEGANIUM), + SPECIES_TO_NATIONAL(CYNDAQUIL), + SPECIES_TO_NATIONAL(QUILAVA), + SPECIES_TO_NATIONAL(TYPHLOSION), + SPECIES_TO_NATIONAL(TOTODILE), + SPECIES_TO_NATIONAL(CROCONAW), + SPECIES_TO_NATIONAL(FERALIGATR), + SPECIES_TO_NATIONAL(SENTRET), + SPECIES_TO_NATIONAL(FURRET), + SPECIES_TO_NATIONAL(HOOTHOOT), + SPECIES_TO_NATIONAL(NOCTOWL), + SPECIES_TO_NATIONAL(LEDYBA), + SPECIES_TO_NATIONAL(LEDIAN), + SPECIES_TO_NATIONAL(SPINARAK), + SPECIES_TO_NATIONAL(ARIADOS), + SPECIES_TO_NATIONAL(CROBAT), + SPECIES_TO_NATIONAL(CHINCHOU), + SPECIES_TO_NATIONAL(LANTURN), + SPECIES_TO_NATIONAL(PICHU), + SPECIES_TO_NATIONAL(CLEFFA), + SPECIES_TO_NATIONAL(IGGLYBUFF), + SPECIES_TO_NATIONAL(TOGEPI), + SPECIES_TO_NATIONAL(TOGETIC), + SPECIES_TO_NATIONAL(NATU), + SPECIES_TO_NATIONAL(XATU), + SPECIES_TO_NATIONAL(MAREEP), + SPECIES_TO_NATIONAL(FLAAFFY), + SPECIES_TO_NATIONAL(AMPHAROS), + SPECIES_TO_NATIONAL(BELLOSSOM), + SPECIES_TO_NATIONAL(MARILL), + SPECIES_TO_NATIONAL(AZUMARILL), + SPECIES_TO_NATIONAL(SUDOWOODO), + SPECIES_TO_NATIONAL(POLITOED), + SPECIES_TO_NATIONAL(HOPPIP), + SPECIES_TO_NATIONAL(SKIPLOOM), + SPECIES_TO_NATIONAL(JUMPLUFF), + SPECIES_TO_NATIONAL(AIPOM), + SPECIES_TO_NATIONAL(SUNKERN), + SPECIES_TO_NATIONAL(SUNFLORA), + SPECIES_TO_NATIONAL(YANMA), + SPECIES_TO_NATIONAL(WOOPER), + SPECIES_TO_NATIONAL(QUAGSIRE), + SPECIES_TO_NATIONAL(ESPEON), + SPECIES_TO_NATIONAL(UMBREON), + SPECIES_TO_NATIONAL(MURKROW), + SPECIES_TO_NATIONAL(SLOWKING), + SPECIES_TO_NATIONAL(MISDREAVUS), + SPECIES_TO_NATIONAL(UNOWN), + SPECIES_TO_NATIONAL(WOBBUFFET), + SPECIES_TO_NATIONAL(GIRAFARIG), + SPECIES_TO_NATIONAL(PINECO), + SPECIES_TO_NATIONAL(FORRETRESS), + SPECIES_TO_NATIONAL(DUNSPARCE), + SPECIES_TO_NATIONAL(GLIGAR), + SPECIES_TO_NATIONAL(STEELIX), + SPECIES_TO_NATIONAL(SNUBBULL), + SPECIES_TO_NATIONAL(GRANBULL), + SPECIES_TO_NATIONAL(QWILFISH), + SPECIES_TO_NATIONAL(SCIZOR), + SPECIES_TO_NATIONAL(SHUCKLE), + SPECIES_TO_NATIONAL(HERACROSS), + SPECIES_TO_NATIONAL(SNEASEL), + SPECIES_TO_NATIONAL(TEDDIURSA), + SPECIES_TO_NATIONAL(URSARING), + SPECIES_TO_NATIONAL(SLUGMA), + SPECIES_TO_NATIONAL(MAGCARGO), + SPECIES_TO_NATIONAL(SWINUB), + SPECIES_TO_NATIONAL(PILOSWINE), + SPECIES_TO_NATIONAL(CORSOLA), + SPECIES_TO_NATIONAL(REMORAID), + SPECIES_TO_NATIONAL(OCTILLERY), + SPECIES_TO_NATIONAL(DELIBIRD), + SPECIES_TO_NATIONAL(MANTINE), + SPECIES_TO_NATIONAL(SKARMORY), + SPECIES_TO_NATIONAL(HOUNDOUR), + SPECIES_TO_NATIONAL(HOUNDOOM), + SPECIES_TO_NATIONAL(KINGDRA), + SPECIES_TO_NATIONAL(PHANPY), + SPECIES_TO_NATIONAL(DONPHAN), + SPECIES_TO_NATIONAL(PORYGON2), + SPECIES_TO_NATIONAL(STANTLER), + SPECIES_TO_NATIONAL(SMEARGLE), + SPECIES_TO_NATIONAL(TYROGUE), + SPECIES_TO_NATIONAL(HITMONTOP), + SPECIES_TO_NATIONAL(SMOOCHUM), + SPECIES_TO_NATIONAL(ELEKID), + SPECIES_TO_NATIONAL(MAGBY), + SPECIES_TO_NATIONAL(MILTANK), + SPECIES_TO_NATIONAL(BLISSEY), + SPECIES_TO_NATIONAL(RAIKOU), + SPECIES_TO_NATIONAL(ENTEI), + SPECIES_TO_NATIONAL(SUICUNE), + SPECIES_TO_NATIONAL(LARVITAR), + SPECIES_TO_NATIONAL(PUPITAR), + SPECIES_TO_NATIONAL(TYRANITAR), + SPECIES_TO_NATIONAL(LUGIA), + SPECIES_TO_NATIONAL(HO_OH), + SPECIES_TO_NATIONAL(CELEBI), + SPECIES_TO_NATIONAL(OLD_UNOWN_B), + SPECIES_TO_NATIONAL(OLD_UNOWN_C), + SPECIES_TO_NATIONAL(OLD_UNOWN_D), + SPECIES_TO_NATIONAL(OLD_UNOWN_E), + SPECIES_TO_NATIONAL(OLD_UNOWN_F), + SPECIES_TO_NATIONAL(OLD_UNOWN_G), + SPECIES_TO_NATIONAL(OLD_UNOWN_H), + SPECIES_TO_NATIONAL(OLD_UNOWN_I), + SPECIES_TO_NATIONAL(OLD_UNOWN_J), + SPECIES_TO_NATIONAL(OLD_UNOWN_K), + SPECIES_TO_NATIONAL(OLD_UNOWN_L), + SPECIES_TO_NATIONAL(OLD_UNOWN_M), + SPECIES_TO_NATIONAL(OLD_UNOWN_N), + SPECIES_TO_NATIONAL(OLD_UNOWN_O), + SPECIES_TO_NATIONAL(OLD_UNOWN_P), + SPECIES_TO_NATIONAL(OLD_UNOWN_Q), + SPECIES_TO_NATIONAL(OLD_UNOWN_R), + SPECIES_TO_NATIONAL(OLD_UNOWN_S), + SPECIES_TO_NATIONAL(OLD_UNOWN_T), + SPECIES_TO_NATIONAL(OLD_UNOWN_U), + SPECIES_TO_NATIONAL(OLD_UNOWN_V), + SPECIES_TO_NATIONAL(OLD_UNOWN_W), + SPECIES_TO_NATIONAL(OLD_UNOWN_X), + SPECIES_TO_NATIONAL(OLD_UNOWN_Y), + SPECIES_TO_NATIONAL(OLD_UNOWN_Z), + SPECIES_TO_NATIONAL(TREECKO), + SPECIES_TO_NATIONAL(GROVYLE), + SPECIES_TO_NATIONAL(SCEPTILE), + SPECIES_TO_NATIONAL(TORCHIC), + SPECIES_TO_NATIONAL(COMBUSKEN), + SPECIES_TO_NATIONAL(BLAZIKEN), + SPECIES_TO_NATIONAL(MUDKIP), + SPECIES_TO_NATIONAL(MARSHTOMP), + SPECIES_TO_NATIONAL(SWAMPERT), + SPECIES_TO_NATIONAL(POOCHYENA), + SPECIES_TO_NATIONAL(MIGHTYENA), + SPECIES_TO_NATIONAL(ZIGZAGOON), + SPECIES_TO_NATIONAL(LINOONE), + SPECIES_TO_NATIONAL(WURMPLE), + SPECIES_TO_NATIONAL(SILCOON), + SPECIES_TO_NATIONAL(BEAUTIFLY), + SPECIES_TO_NATIONAL(CASCOON), + SPECIES_TO_NATIONAL(DUSTOX), + SPECIES_TO_NATIONAL(LOTAD), + SPECIES_TO_NATIONAL(LOMBRE), + SPECIES_TO_NATIONAL(LUDICOLO), + SPECIES_TO_NATIONAL(SEEDOT), + SPECIES_TO_NATIONAL(NUZLEAF), + SPECIES_TO_NATIONAL(SHIFTRY), + SPECIES_TO_NATIONAL(NINCADA), + SPECIES_TO_NATIONAL(NINJASK), + SPECIES_TO_NATIONAL(SHEDINJA), + SPECIES_TO_NATIONAL(TAILLOW), + SPECIES_TO_NATIONAL(SWELLOW), + SPECIES_TO_NATIONAL(SHROOMISH), + SPECIES_TO_NATIONAL(BRELOOM), + SPECIES_TO_NATIONAL(SPINDA), + SPECIES_TO_NATIONAL(WINGULL), + SPECIES_TO_NATIONAL(PELIPPER), + SPECIES_TO_NATIONAL(SURSKIT), + SPECIES_TO_NATIONAL(MASQUERAIN), + SPECIES_TO_NATIONAL(WAILMER), + SPECIES_TO_NATIONAL(WAILORD), + SPECIES_TO_NATIONAL(SKITTY), + SPECIES_TO_NATIONAL(DELCATTY), + SPECIES_TO_NATIONAL(KECLEON), + SPECIES_TO_NATIONAL(BALTOY), + SPECIES_TO_NATIONAL(CLAYDOL), + SPECIES_TO_NATIONAL(NOSEPASS), + SPECIES_TO_NATIONAL(TORKOAL), + SPECIES_TO_NATIONAL(SABLEYE), + SPECIES_TO_NATIONAL(BARBOACH), + SPECIES_TO_NATIONAL(WHISCASH), + SPECIES_TO_NATIONAL(LUVDISC), + SPECIES_TO_NATIONAL(CORPHISH), + SPECIES_TO_NATIONAL(CRAWDAUNT), + SPECIES_TO_NATIONAL(FEEBAS), + SPECIES_TO_NATIONAL(MILOTIC), + SPECIES_TO_NATIONAL(CARVANHA), + SPECIES_TO_NATIONAL(SHARPEDO), + SPECIES_TO_NATIONAL(TRAPINCH), + SPECIES_TO_NATIONAL(VIBRAVA), + SPECIES_TO_NATIONAL(FLYGON), + SPECIES_TO_NATIONAL(MAKUHITA), + SPECIES_TO_NATIONAL(HARIYAMA), + SPECIES_TO_NATIONAL(ELECTRIKE), + SPECIES_TO_NATIONAL(MANECTRIC), + SPECIES_TO_NATIONAL(NUMEL), + SPECIES_TO_NATIONAL(CAMERUPT), + SPECIES_TO_NATIONAL(SPHEAL), + SPECIES_TO_NATIONAL(SEALEO), + SPECIES_TO_NATIONAL(WALREIN), + SPECIES_TO_NATIONAL(CACNEA), + SPECIES_TO_NATIONAL(CACTURNE), + SPECIES_TO_NATIONAL(SNORUNT), + SPECIES_TO_NATIONAL(GLALIE), + SPECIES_TO_NATIONAL(LUNATONE), + SPECIES_TO_NATIONAL(SOLROCK), + SPECIES_TO_NATIONAL(AZURILL), + SPECIES_TO_NATIONAL(SPOINK), + SPECIES_TO_NATIONAL(GRUMPIG), + SPECIES_TO_NATIONAL(PLUSLE), + SPECIES_TO_NATIONAL(MINUN), + SPECIES_TO_NATIONAL(MAWILE), + SPECIES_TO_NATIONAL(MEDITITE), + SPECIES_TO_NATIONAL(MEDICHAM), + SPECIES_TO_NATIONAL(SWABLU), + SPECIES_TO_NATIONAL(ALTARIA), + SPECIES_TO_NATIONAL(WYNAUT), + SPECIES_TO_NATIONAL(DUSKULL), + SPECIES_TO_NATIONAL(DUSCLOPS), + SPECIES_TO_NATIONAL(ROSELIA), + SPECIES_TO_NATIONAL(SLAKOTH), + SPECIES_TO_NATIONAL(VIGOROTH), + SPECIES_TO_NATIONAL(SLAKING), + SPECIES_TO_NATIONAL(GULPIN), + SPECIES_TO_NATIONAL(SWALOT), + SPECIES_TO_NATIONAL(TROPIUS), + SPECIES_TO_NATIONAL(WHISMUR), + SPECIES_TO_NATIONAL(LOUDRED), + SPECIES_TO_NATIONAL(EXPLOUD), + SPECIES_TO_NATIONAL(CLAMPERL), + SPECIES_TO_NATIONAL(HUNTAIL), + SPECIES_TO_NATIONAL(GOREBYSS), + SPECIES_TO_NATIONAL(ABSOL), + SPECIES_TO_NATIONAL(SHUPPET), + SPECIES_TO_NATIONAL(BANETTE), + SPECIES_TO_NATIONAL(SEVIPER), + SPECIES_TO_NATIONAL(ZANGOOSE), + SPECIES_TO_NATIONAL(RELICANTH), + SPECIES_TO_NATIONAL(ARON), + SPECIES_TO_NATIONAL(LAIRON), + SPECIES_TO_NATIONAL(AGGRON), + SPECIES_TO_NATIONAL(CASTFORM), + SPECIES_TO_NATIONAL(VOLBEAT), + SPECIES_TO_NATIONAL(ILLUMISE), + SPECIES_TO_NATIONAL(LILEEP), + SPECIES_TO_NATIONAL(CRADILY), + SPECIES_TO_NATIONAL(ANORITH), + SPECIES_TO_NATIONAL(ARMALDO), + SPECIES_TO_NATIONAL(RALTS), + SPECIES_TO_NATIONAL(KIRLIA), + SPECIES_TO_NATIONAL(GARDEVOIR), + SPECIES_TO_NATIONAL(BAGON), + SPECIES_TO_NATIONAL(SHELGON), + SPECIES_TO_NATIONAL(SALAMENCE), + SPECIES_TO_NATIONAL(BELDUM), + SPECIES_TO_NATIONAL(METANG), + SPECIES_TO_NATIONAL(METAGROSS), + SPECIES_TO_NATIONAL(REGIROCK), + SPECIES_TO_NATIONAL(REGICE), + SPECIES_TO_NATIONAL(REGISTEEL), + SPECIES_TO_NATIONAL(KYOGRE), + SPECIES_TO_NATIONAL(GROUDON), + SPECIES_TO_NATIONAL(RAYQUAZA), + SPECIES_TO_NATIONAL(LATIAS), + SPECIES_TO_NATIONAL(LATIOS), + SPECIES_TO_NATIONAL(JIRACHI), + SPECIES_TO_NATIONAL(DEOXYS), + SPECIES_TO_NATIONAL(CHIMECHO), }; -const u16 gHoennToNationalOrder[] = // Assigns Hoenn Dex Pokémon (Using National Dex Index) -{ - // 0 - NATIONAL_DEX_TREECKO, // HOENN_DEX_TREECKO - NATIONAL_DEX_GROVYLE, // HOENN_DEX_GROVYLE - NATIONAL_DEX_SCEPTILE, // HOENN_DEX_SCEPTILE - NATIONAL_DEX_TORCHIC, // HOENN_DEX_TORCHIC - NATIONAL_DEX_COMBUSKEN, // HOENN_DEX_COMBUSKEN - NATIONAL_DEX_BLAZIKEN, // HOENN_DEX_BLAZIKEN - NATIONAL_DEX_MUDKIP, // HOENN_DEX_MUDKIP - NATIONAL_DEX_MARSHTOMP, // HOENN_DEX_MARSHTOMP - NATIONAL_DEX_SWAMPERT, // HOENN_DEX_SWAMPERT - NATIONAL_DEX_POOCHYENA, // HOENN_DEX_POOCHYENA - NATIONAL_DEX_MIGHTYENA, // HOENN_DEX_MIGHTYENA - NATIONAL_DEX_ZIGZAGOON, // HOENN_DEX_ZIGZAGOON - NATIONAL_DEX_LINOONE, // HOENN_DEX_LINOONE - NATIONAL_DEX_WURMPLE, // HOENN_DEX_WURMPLE - NATIONAL_DEX_SILCOON, // HOENN_DEX_SILCOON - NATIONAL_DEX_BEAUTIFLY, // HOENN_DEX_BEAUTIFLY - NATIONAL_DEX_CASCOON, // HOENN_DEX_CASCOON - NATIONAL_DEX_DUSTOX, // HOENN_DEX_DUSTOX - NATIONAL_DEX_LOTAD, // HOENN_DEX_LOTAD - NATIONAL_DEX_LOMBRE, // HOENN_DEX_LOMBRE - NATIONAL_DEX_LUDICOLO, // HOENN_DEX_LUDICOLO - NATIONAL_DEX_SEEDOT, // HOENN_DEX_SEEDOT - NATIONAL_DEX_NUZLEAF, // HOENN_DEX_NUZLEAF - NATIONAL_DEX_SHIFTRY, // HOENN_DEX_SHIFTRY - NATIONAL_DEX_TAILLOW, // HOENN_DEX_TAILLOW - NATIONAL_DEX_SWELLOW, // HOENN_DEX_SWELLOW - NATIONAL_DEX_WINGULL, // HOENN_DEX_WINGULL - NATIONAL_DEX_PELIPPER, // HOENN_DEX_PELIPPER - NATIONAL_DEX_RALTS, // HOENN_DEX_RALTS - NATIONAL_DEX_KIRLIA, // HOENN_DEX_KIRLIA - NATIONAL_DEX_GARDEVOIR, // HOENN_DEX_GARDEVOIR - NATIONAL_DEX_SURSKIT, // HOENN_DEX_SURSKIT - NATIONAL_DEX_MASQUERAIN, // HOENN_DEX_MASQUERAIN - NATIONAL_DEX_SHROOMISH, // HOENN_DEX_SHROOMISH - NATIONAL_DEX_BRELOOM, // HOENN_DEX_BRELOOM - NATIONAL_DEX_SLAKOTH, // HOENN_DEX_SLAKOTH - NATIONAL_DEX_VIGOROTH, // HOENN_DEX_VIGOROTH - NATIONAL_DEX_SLAKING, // HOENN_DEX_SLAKING - NATIONAL_DEX_ABRA, // HOENN_DEX_ABRA - NATIONAL_DEX_KADABRA, // HOENN_DEX_KADABRA - NATIONAL_DEX_ALAKAZAM, // HOENN_DEX_ALAKAZAM - NATIONAL_DEX_NINCADA, // HOENN_DEX_NINCADA - NATIONAL_DEX_NINJASK, // HOENN_DEX_NINJASK - NATIONAL_DEX_SHEDINJA, // HOENN_DEX_SHEDINJA - NATIONAL_DEX_WHISMUR, // HOENN_DEX_WHISMUR - NATIONAL_DEX_LOUDRED, // HOENN_DEX_LOUDRED - NATIONAL_DEX_EXPLOUD, // HOENN_DEX_EXPLOUD - NATIONAL_DEX_MAKUHITA, // HOENN_DEX_MAKUHITA - NATIONAL_DEX_HARIYAMA, // HOENN_DEX_HARIYAMA - NATIONAL_DEX_GOLDEEN, // HOENN_DEX_GOLDEEN - NATIONAL_DEX_SEAKING, // HOENN_DEX_SEAKING - NATIONAL_DEX_MAGIKARP, // HOENN_DEX_MAGIKARP - NATIONAL_DEX_GYARADOS, // HOENN_DEX_GYARADOS - NATIONAL_DEX_AZURILL, // HOENN_DEX_AZURILL - NATIONAL_DEX_MARILL, // HOENN_DEX_MARILL - NATIONAL_DEX_AZUMARILL, // HOENN_DEX_AZUMARILL - NATIONAL_DEX_GEODUDE, // HOENN_DEX_GEODUDE - NATIONAL_DEX_GRAVELER, // HOENN_DEX_GRAVELER - NATIONAL_DEX_GOLEM, // HOENN_DEX_GOLEM - NATIONAL_DEX_NOSEPASS, // HOENN_DEX_NOSEPASS - NATIONAL_DEX_SKITTY, // HOENN_DEX_SKITTY - NATIONAL_DEX_DELCATTY, // HOENN_DEX_DELCATTY - NATIONAL_DEX_ZUBAT, // HOENN_DEX_ZUBAT - NATIONAL_DEX_GOLBAT, // HOENN_DEX_GOLBAT - NATIONAL_DEX_CROBAT, // HOENN_DEX_CROBAT - NATIONAL_DEX_TENTACOOL, // HOENN_DEX_TENTACOOL - NATIONAL_DEX_TENTACRUEL, // HOENN_DEX_TENTACRUEL - NATIONAL_DEX_SABLEYE, // HOENN_DEX_SABLEYE - NATIONAL_DEX_MAWILE, // HOENN_DEX_MAWILE - NATIONAL_DEX_ARON, // HOENN_DEX_ARON - NATIONAL_DEX_LAIRON, // HOENN_DEX_LAIRON - NATIONAL_DEX_AGGRON, // HOENN_DEX_AGGRON - NATIONAL_DEX_MACHOP, // HOENN_DEX_MACHOP - NATIONAL_DEX_MACHOKE, // HOENN_DEX_MACHOKE - NATIONAL_DEX_MACHAMP, // HOENN_DEX_MACHAMP - NATIONAL_DEX_MEDITITE, // HOENN_DEX_MEDITITE - NATIONAL_DEX_MEDICHAM, // HOENN_DEX_MEDICHAM - NATIONAL_DEX_ELECTRIKE, // HOENN_DEX_ELECTRIKE - NATIONAL_DEX_MANECTRIC, // HOENN_DEX_MANECTRIC - NATIONAL_DEX_PLUSLE, // HOENN_DEX_PLUSLE - NATIONAL_DEX_MINUN, // HOENN_DEX_MINUN - NATIONAL_DEX_MAGNEMITE, // HOENN_DEX_MAGNEMITE - NATIONAL_DEX_MAGNETON, // HOENN_DEX_MAGNETON - NATIONAL_DEX_VOLTORB, // HOENN_DEX_VOLTORB - NATIONAL_DEX_ELECTRODE, // HOENN_DEX_ELECTRODE - NATIONAL_DEX_VOLBEAT, // HOENN_DEX_VOLBEAT - NATIONAL_DEX_ILLUMISE, // HOENN_DEX_ILLUMISE - NATIONAL_DEX_ODDISH, // HOENN_DEX_ODDISH - NATIONAL_DEX_GLOOM, // HOENN_DEX_GLOOM - NATIONAL_DEX_VILEPLUME, // HOENN_DEX_VILEPLUME - NATIONAL_DEX_BELLOSSOM, // HOENN_DEX_BELLOSSOM - NATIONAL_DEX_DODUO, // HOENN_DEX_DODUO - NATIONAL_DEX_DODRIO, // HOENN_DEX_DODRIO - NATIONAL_DEX_ROSELIA, // HOENN_DEX_ROSELIA - NATIONAL_DEX_GULPIN, // HOENN_DEX_GULPIN - NATIONAL_DEX_SWALOT, // HOENN_DEX_SWALOT - NATIONAL_DEX_CARVANHA, // HOENN_DEX_CARVANHA - NATIONAL_DEX_SHARPEDO, // HOENN_DEX_SHARPEDO - NATIONAL_DEX_WAILMER, // HOENN_DEX_WAILMER - NATIONAL_DEX_WAILORD, // HOENN_DEX_WAILORD - NATIONAL_DEX_NUMEL, // HOENN_DEX_NUMEL - NATIONAL_DEX_CAMERUPT, // HOENN_DEX_CAMERUPT - NATIONAL_DEX_SLUGMA, // HOENN_DEX_SLUGMA - NATIONAL_DEX_MAGCARGO, // HOENN_DEX_MAGCARGO - NATIONAL_DEX_TORKOAL, // HOENN_DEX_TORKOAL - NATIONAL_DEX_GRIMER, // HOENN_DEX_GRIMER - NATIONAL_DEX_MUK, // HOENN_DEX_MUK - NATIONAL_DEX_KOFFING, // HOENN_DEX_KOFFING - NATIONAL_DEX_WEEZING, // HOENN_DEX_WEEZING - NATIONAL_DEX_SPOINK, // HOENN_DEX_SPOINK - NATIONAL_DEX_GRUMPIG, // HOENN_DEX_GRUMPIG - NATIONAL_DEX_SANDSHREW, // HOENN_DEX_SANDSHREW - NATIONAL_DEX_SANDSLASH, // HOENN_DEX_SANDSLASH - NATIONAL_DEX_SPINDA, // HOENN_DEX_SPINDA - NATIONAL_DEX_SKARMORY, // HOENN_DEX_SKARMORY - NATIONAL_DEX_TRAPINCH, // HOENN_DEX_TRAPINCH - NATIONAL_DEX_VIBRAVA, // HOENN_DEX_VIBRAVA - NATIONAL_DEX_FLYGON, // HOENN_DEX_FLYGON - NATIONAL_DEX_CACNEA, // HOENN_DEX_CACNEA - NATIONAL_DEX_CACTURNE, // HOENN_DEX_CACTURNE - NATIONAL_DEX_SWABLU, // HOENN_DEX_SWABLU - NATIONAL_DEX_ALTARIA, // HOENN_DEX_ALTARIA - NATIONAL_DEX_ZANGOOSE, // HOENN_DEX_ZANGOOSE - NATIONAL_DEX_SEVIPER, // HOENN_DEX_SEVIPER - NATIONAL_DEX_LUNATONE, // HOENN_DEX_LUNATONE - NATIONAL_DEX_SOLROCK, // HOENN_DEX_SOLROCK - NATIONAL_DEX_BARBOACH, // HOENN_DEX_BARBOACH - NATIONAL_DEX_WHISCASH, // HOENN_DEX_WHISCASH - NATIONAL_DEX_CORPHISH, // HOENN_DEX_CORPHISH - NATIONAL_DEX_CRAWDAUNT, // HOENN_DEX_CRAWDAUNT - NATIONAL_DEX_BALTOY, // HOENN_DEX_BALTOY - NATIONAL_DEX_CLAYDOL, // HOENN_DEX_CLAYDOL - NATIONAL_DEX_LILEEP, // HOENN_DEX_LILEEP - NATIONAL_DEX_CRADILY, // HOENN_DEX_CRADILY - NATIONAL_DEX_ANORITH, // HOENN_DEX_ANORITH - NATIONAL_DEX_ARMALDO, // HOENN_DEX_ARMALDO - NATIONAL_DEX_IGGLYBUFF, // HOENN_DEX_IGGLYBUFF - NATIONAL_DEX_JIGGLYPUFF, // HOENN_DEX_JIGGLYPUFF - NATIONAL_DEX_WIGGLYTUFF, // HOENN_DEX_WIGGLYTUFF - NATIONAL_DEX_FEEBAS, // HOENN_DEX_FEEBAS - NATIONAL_DEX_MILOTIC, // HOENN_DEX_MILOTIC - NATIONAL_DEX_CASTFORM, // HOENN_DEX_CASTFORM - NATIONAL_DEX_STARYU, // HOENN_DEX_STARYU - NATIONAL_DEX_STARMIE, // HOENN_DEX_STARMIE - NATIONAL_DEX_KECLEON, // HOENN_DEX_KECLEON - NATIONAL_DEX_SHUPPET, // HOENN_DEX_SHUPPET - NATIONAL_DEX_BANETTE, // HOENN_DEX_BANETTE - NATIONAL_DEX_DUSKULL, // HOENN_DEX_DUSKULL - NATIONAL_DEX_DUSCLOPS, // HOENN_DEX_DUSCLOPS - NATIONAL_DEX_TROPIUS, // HOENN_DEX_TROPIUS - NATIONAL_DEX_CHIMECHO, // HOENN_DEX_CHIMECHO - NATIONAL_DEX_ABSOL, // HOENN_DEX_ABSOL - NATIONAL_DEX_VULPIX, // HOENN_DEX_VULPIX - NATIONAL_DEX_NINETALES, // HOENN_DEX_NINETALES - NATIONAL_DEX_PICHU, // HOENN_DEX_PICHU - NATIONAL_DEX_PIKACHU, // HOENN_DEX_PIKACHU - NATIONAL_DEX_RAICHU, // HOENN_DEX_RAICHU - NATIONAL_DEX_PSYDUCK, // HOENN_DEX_PSYDUCK - NATIONAL_DEX_GOLDUCK, // HOENN_DEX_GOLDUCK - NATIONAL_DEX_WYNAUT, // HOENN_DEX_WYNAUT - NATIONAL_DEX_WOBBUFFET, // HOENN_DEX_WOBBUFFET - NATIONAL_DEX_NATU, // HOENN_DEX_NATU - NATIONAL_DEX_XATU, // HOENN_DEX_XATU - NATIONAL_DEX_GIRAFARIG, // HOENN_DEX_GIRAFARIG - NATIONAL_DEX_PHANPY, // HOENN_DEX_PHANPY - NATIONAL_DEX_DONPHAN, // HOENN_DEX_DONPHAN - NATIONAL_DEX_PINSIR, // HOENN_DEX_PINSIR - NATIONAL_DEX_HERACROSS, // HOENN_DEX_HERACROSS - NATIONAL_DEX_RHYHORN, // HOENN_DEX_RHYHORN - NATIONAL_DEX_RHYDON, // HOENN_DEX_RHYDON - NATIONAL_DEX_SNORUNT, // HOENN_DEX_SNORUNT - NATIONAL_DEX_GLALIE, // HOENN_DEX_GLALIE - NATIONAL_DEX_SPHEAL, // HOENN_DEX_SPHEAL - NATIONAL_DEX_SEALEO, // HOENN_DEX_SEALEO - NATIONAL_DEX_WALREIN, // HOENN_DEX_WALREIN - NATIONAL_DEX_CLAMPERL, // HOENN_DEX_CLAMPERL - NATIONAL_DEX_HUNTAIL, // HOENN_DEX_HUNTAIL - NATIONAL_DEX_GOREBYSS, // HOENN_DEX_GOREBYSS - NATIONAL_DEX_RELICANTH, // HOENN_DEX_RELICANTH - NATIONAL_DEX_CORSOLA, // HOENN_DEX_CORSOLA - NATIONAL_DEX_CHINCHOU, // HOENN_DEX_CHINCHOU - NATIONAL_DEX_LANTURN, // HOENN_DEX_LANTURN - NATIONAL_DEX_LUVDISC, // HOENN_DEX_LUVDISC - NATIONAL_DEX_HORSEA, // HOENN_DEX_HORSEA - NATIONAL_DEX_SEADRA, // HOENN_DEX_SEADRA - NATIONAL_DEX_KINGDRA, // HOENN_DEX_KINGDRA - NATIONAL_DEX_BAGON, // HOENN_DEX_BAGON - NATIONAL_DEX_SHELGON, // HOENN_DEX_SHELGON - NATIONAL_DEX_SALAMENCE, // HOENN_DEX_SALAMENCE - NATIONAL_DEX_BELDUM, // HOENN_DEX_BELDUM - NATIONAL_DEX_METANG, // HOENN_DEX_METANG - NATIONAL_DEX_METAGROSS, // HOENN_DEX_METAGROSS - NATIONAL_DEX_REGIROCK, // HOENN_DEX_REGIROCK - NATIONAL_DEX_REGICE, // HOENN_DEX_REGICE - NATIONAL_DEX_REGISTEEL, // HOENN_DEX_REGISTEEL - NATIONAL_DEX_LATIAS, // HOENN_DEX_LATIAS - NATIONAL_DEX_LATIOS, // HOENN_DEX_LATIOS - NATIONAL_DEX_KYOGRE, // HOENN_DEX_KYOGRE - NATIONAL_DEX_GROUDON, // HOENN_DEX_GROUDON - NATIONAL_DEX_RAYQUAZA, // HOENN_DEX_RAYQUAZA - NATIONAL_DEX_JIRACHI, // HOENN_DEX_JIRACHI - NATIONAL_DEX_DEOXYS, // HOENN_DEX_DEOXYS - NATIONAL_DEX_BULBASAUR, // HOENN_DEX_BULBASAUR - Pokémon from here onwards are UNSEEN in the Hoenn Dex. - NATIONAL_DEX_IVYSAUR, // HOENN_DEX_IVYSAUR - NATIONAL_DEX_VENUSAUR, // HOENN_DEX_VENUSAUR - NATIONAL_DEX_CHARMANDER, // HOENN_DEX_CHARMANDER - NATIONAL_DEX_CHARMELEON, // HOENN_DEX_CHARMELEON - NATIONAL_DEX_CHARIZARD, // HOENN_DEX_CHARIZARD - NATIONAL_DEX_SQUIRTLE, // HOENN_DEX_SQUIRTLE - NATIONAL_DEX_WARTORTLE, // HOENN_DEX_WARTORTLE - NATIONAL_DEX_BLASTOISE, // HOENN_DEX_BLASTOISE - NATIONAL_DEX_CATERPIE, // HOENN_DEX_CATERPIE - NATIONAL_DEX_METAPOD, // HOENN_DEX_METAPOD - NATIONAL_DEX_BUTTERFREE, // HOENN_DEX_BUTTERFREE - NATIONAL_DEX_WEEDLE, // HOENN_DEX_WEEDLE - NATIONAL_DEX_KAKUNA, // HOENN_DEX_KAKUNA - NATIONAL_DEX_BEEDRILL, // HOENN_DEX_BEEDRILL - NATIONAL_DEX_PIDGEY, // HOENN_DEX_PIDGEY - NATIONAL_DEX_PIDGEOTTO, // HOENN_DEX_PIDGEOTTO - NATIONAL_DEX_PIDGEOT, // HOENN_DEX_PIDGEOT - NATIONAL_DEX_RATTATA, // HOENN_DEX_RATTATA - NATIONAL_DEX_RATICATE, // HOENN_DEX_RATICATE - NATIONAL_DEX_SPEAROW, // HOENN_DEX_SPEAROW - NATIONAL_DEX_FEAROW, // HOENN_DEX_FEAROW - NATIONAL_DEX_EKANS, // HOENN_DEX_EKANS - NATIONAL_DEX_ARBOK, // HOENN_DEX_ARBOK - NATIONAL_DEX_NIDORAN_F, // HOENN_DEX_NIDORAN♀ - NATIONAL_DEX_NIDORINA, // HOENN_DEX_NIDORINA - NATIONAL_DEX_NIDOQUEEN, // HOENN_DEX_NIDOQUEEN - NATIONAL_DEX_NIDORAN_M, // HOENN_DEX_NIDORAN♂ - NATIONAL_DEX_NIDORINO, // HOENN_DEX_NIDORINO - NATIONAL_DEX_NIDOKING, // HOENN_DEX_NIDOKING - NATIONAL_DEX_CLEFAIRY, // HOENN_DEX_CLEFAIRY - NATIONAL_DEX_CLEFABLE, // HOENN_DEX_CLEFABLE - NATIONAL_DEX_PARAS, // HOENN_DEX_PARAS - NATIONAL_DEX_PARASECT, // HOENN_DEX_PARASECT - NATIONAL_DEX_VENONAT, // HOENN_DEX_VENONAT - NATIONAL_DEX_VENOMOTH, // HOENN_DEX_VENOMOTH - NATIONAL_DEX_DIGLETT, // HOENN_DEX_DIGLETT - NATIONAL_DEX_DUGTRIO, // HOENN_DEX_DUGTRIO - NATIONAL_DEX_MEOWTH, // HOENN_DEX_MEOWTH - NATIONAL_DEX_PERSIAN, // HOENN_DEX_PERSIAN - NATIONAL_DEX_MANKEY, // HOENN_DEX_MANKEY - NATIONAL_DEX_PRIMEAPE, // HOENN_DEX_PRIMEAPE - NATIONAL_DEX_GROWLITHE, // HOENN_DEX_GROWLITHE - NATIONAL_DEX_ARCANINE, // HOENN_DEX_ARCANINE - NATIONAL_DEX_POLIWAG, // HOENN_DEX_POLIWAG - NATIONAL_DEX_POLIWHIRL, // HOENN_DEX_POLIWHIRL - NATIONAL_DEX_POLIWRATH, // HOENN_DEX_POLIWRATH - NATIONAL_DEX_BELLSPROUT, // HOENN_DEX_BELLSPROUT - NATIONAL_DEX_WEEPINBELL, // HOENN_DEX_WEEPINBELL - NATIONAL_DEX_VICTREEBEL, // HOENN_DEX_VICTREEBEL - NATIONAL_DEX_PONYTA, // HOENN_DEX_PONYTA - NATIONAL_DEX_RAPIDASH, // HOENN_DEX_RAPIDASH - NATIONAL_DEX_SLOWPOKE, // HOENN_DEX_SLOWPOKE - NATIONAL_DEX_SLOWBRO, // HOENN_DEX_SLOWBRO - NATIONAL_DEX_FARFETCHD, // HOENN_DEX_FARFETCH'D - NATIONAL_DEX_SEEL, // HOENN_DEX_SEEL - NATIONAL_DEX_DEWGONG, // HOENN_DEX_DEWGONG - NATIONAL_DEX_SHELLDER, // HOENN_DEX_SHELLDER - NATIONAL_DEX_CLOYSTER, // HOENN_DEX_CLOYSTER - NATIONAL_DEX_GASTLY, // HOENN_DEX_GASTLY - NATIONAL_DEX_HAUNTER, // HOENN_DEX_HAUNTER - NATIONAL_DEX_GENGAR, // HOENN_DEX_GENGAR - NATIONAL_DEX_ONIX, // HOENN_DEX_ONIX - NATIONAL_DEX_DROWZEE, // HOENN_DEX_DROWZEE - NATIONAL_DEX_HYPNO, // HOENN_DEX_HYPNO - NATIONAL_DEX_KRABBY, // HOENN_DEX_KRABBY - NATIONAL_DEX_KINGLER, // HOENN_DEX_KINGLER - NATIONAL_DEX_EXEGGCUTE, // HOENN_DEX_EXEGGCUTE - NATIONAL_DEX_EXEGGUTOR, // HOENN_DEX_EXEGGUTOR - NATIONAL_DEX_CUBONE, // HOENN_DEX_CUBONE - NATIONAL_DEX_MAROWAK, // HOENN_DEX_MAROWAK - NATIONAL_DEX_HITMONLEE, // HOENN_DEX_HITMONLEE - NATIONAL_DEX_HITMONCHAN, // HOENN_DEX_HITMONCHAN - NATIONAL_DEX_LICKITUNG, // HOENN_DEX_LICKITUNG - NATIONAL_DEX_CHANSEY, // HOENN_DEX_CHANSEY - NATIONAL_DEX_TANGELA, // HOENN_DEX_TANGELA - NATIONAL_DEX_KANGASKHAN, // HOENN_DEX_KANGASKHAN - NATIONAL_DEX_MR_MIME, // HOENN_DEX_MR. MIME - NATIONAL_DEX_SCYTHER, // HOENN_DEX_SCYTHER - NATIONAL_DEX_JYNX, // HOENN_DEX_JYNX - NATIONAL_DEX_ELECTABUZZ, // HOENN_DEX_ELECTABUZZ - NATIONAL_DEX_MAGMAR, // HOENN_DEX_MAGMAR - NATIONAL_DEX_TAUROS, // HOENN_DEX_TAUROS - NATIONAL_DEX_LAPRAS, // HOENN_DEX_LAPRAS - NATIONAL_DEX_DITTO, // HOENN_DEX_DITTO - NATIONAL_DEX_EEVEE, // HOENN_DEX_EEVEE - NATIONAL_DEX_VAPOREON, // HOENN_DEX_VAPOREON - NATIONAL_DEX_JOLTEON, // HOENN_DEX_JOLTEON - NATIONAL_DEX_FLAREON, // HOENN_DEX_FLAREON - NATIONAL_DEX_PORYGON, // HOENN_DEX_PORYGON - NATIONAL_DEX_OMANYTE, // HOENN_DEX_OMANYTE - NATIONAL_DEX_OMASTAR, // HOENN_DEX_OMASTAR - NATIONAL_DEX_KABUTO, // HOENN_DEX_KABUTO - NATIONAL_DEX_KABUTOPS, // HOENN_DEX_KABUTOPS - NATIONAL_DEX_AERODACTYL, // HOENN_DEX_AERODACTYL - NATIONAL_DEX_SNORLAX, // HOENN_DEX_SNORLAX - NATIONAL_DEX_ARTICUNO, // HOENN_DEX_ARTICUNO - NATIONAL_DEX_ZAPDOS, // HOENN_DEX_ZAPDOS - NATIONAL_DEX_MOLTRES, // HOENN_DEX_MOLTRES - NATIONAL_DEX_DRATINI, // HOENN_DEX_DRATINI - NATIONAL_DEX_DRAGONAIR, // HOENN_DEX_DRAGONAIR - NATIONAL_DEX_DRAGONITE, // HOENN_DEX_DRAGONITE - NATIONAL_DEX_MEWTWO, // HOENN_DEX_MEWTWO - NATIONAL_DEX_MEW, // HOENN_DEX_MEW - NATIONAL_DEX_CHIKORITA, // HOENN_DEX_CHIKORITA - NATIONAL_DEX_BAYLEEF, // HOENN_DEX_BAYLEEF - NATIONAL_DEX_MEGANIUM, // HOENN_DEX_MEGANIUM - NATIONAL_DEX_CYNDAQUIL, // HOENN_DEX_CYNDAQUIL - NATIONAL_DEX_QUILAVA, // HOENN_DEX_QUILAVA - NATIONAL_DEX_TYPHLOSION, // HOENN_DEX_TYPHLOSION - NATIONAL_DEX_TOTODILE, // HOENN_DEX_TOTODILE - NATIONAL_DEX_CROCONAW, // HOENN_DEX_CROCONAW - NATIONAL_DEX_FERALIGATR, // HOENN_DEX_FERALIGATR - NATIONAL_DEX_SENTRET, // HOENN_DEX_SENTRET - NATIONAL_DEX_FURRET, // HOENN_DEX_FURRET - NATIONAL_DEX_HOOTHOOT, // HOENN_DEX_HOOTHOOT - NATIONAL_DEX_NOCTOWL, // HOENN_DEX_NOCTOWL - NATIONAL_DEX_LEDYBA, // HOENN_DEX_LEDYBA - NATIONAL_DEX_LEDIAN, // HOENN_DEX_LEDIAN - NATIONAL_DEX_SPINARAK, // HOENN_DEX_SPINARAK - NATIONAL_DEX_ARIADOS, // HOENN_DEX_ARIADOS - NATIONAL_DEX_CLEFFA, // HOENN_DEX_CLEFFA - NATIONAL_DEX_TOGEPI, // HOENN_DEX_TOGEPI - NATIONAL_DEX_TOGETIC, // HOENN_DEX_TOGETIC - NATIONAL_DEX_MAREEP, // HOENN_DEX_MAREEP - NATIONAL_DEX_FLAAFFY, // HOENN_DEX_FLAAFFY - NATIONAL_DEX_AMPHAROS, // HOENN_DEX_AMPHAROS - NATIONAL_DEX_SUDOWOODO, // HOENN_DEX_SUDOWOODO - NATIONAL_DEX_POLITOED, // HOENN_DEX_POLITOED - NATIONAL_DEX_HOPPIP, // HOENN_DEX_HOPPIP - NATIONAL_DEX_SKIPLOOM, // HOENN_DEX_SKIPLOOM - NATIONAL_DEX_JUMPLUFF, // HOENN_DEX_JUMPLUFF - NATIONAL_DEX_AIPOM, // HOENN_DEX_AIPOM - NATIONAL_DEX_SUNKERN, // HOENN_DEX_SUNKERN - NATIONAL_DEX_SUNFLORA, // HOENN_DEX_SUNFLORA - NATIONAL_DEX_YANMA, // HOENN_DEX_YANMA - NATIONAL_DEX_WOOPER, // HOENN_DEX_WOOPER - NATIONAL_DEX_QUAGSIRE, // HOENN_DEX_QUAGSIRE - NATIONAL_DEX_ESPEON, // HOENN_DEX_ESPEON - NATIONAL_DEX_UMBREON, // HOENN_DEX_UMBREON - NATIONAL_DEX_MURKROW, // HOENN_DEX_MURKROW - NATIONAL_DEX_SLOWKING, // HOENN_DEX_SLOWKING - NATIONAL_DEX_MISDREAVUS, // HOENN_DEX_MISDREAVUS - NATIONAL_DEX_UNOWN, // HOENN_DEX_UNOWN - NATIONAL_DEX_PINECO, // HOENN_DEX_PINECO - NATIONAL_DEX_FORRETRESS, // HOENN_DEX_FORRETRESS - NATIONAL_DEX_DUNSPARCE, // HOENN_DEX_DUNSPARCE - NATIONAL_DEX_GLIGAR, // HOENN_DEX_GLIGAR - NATIONAL_DEX_STEELIX, // HOENN_DEX_STEELIX - NATIONAL_DEX_SNUBBULL, // HOENN_DEX_SNUBBULL - NATIONAL_DEX_GRANBULL, // HOENN_DEX_GRANBULL - NATIONAL_DEX_QWILFISH, // HOENN_DEX_QWILFISH - NATIONAL_DEX_SCIZOR, // HOENN_DEX_SCIZOR - NATIONAL_DEX_SHUCKLE, // HOENN_DEX_SHUCKLE - NATIONAL_DEX_SNEASEL, // HOENN_DEX_SNEASEL - NATIONAL_DEX_TEDDIURSA, // HOENN_DEX_TEDDIURSA - NATIONAL_DEX_URSARING, // HOENN_DEX_URSARING - NATIONAL_DEX_SWINUB, // HOENN_DEX_SWINUB - NATIONAL_DEX_PILOSWINE, // HOENN_DEX_PILOSWINE - NATIONAL_DEX_REMORAID, // HOENN_DEX_REMORAID - NATIONAL_DEX_OCTILLERY, // HOENN_DEX_OCTILLERY - NATIONAL_DEX_DELIBIRD, // HOENN_DEX_DELIBIRD - NATIONAL_DEX_MANTINE, // HOENN_DEX_MANTINE - NATIONAL_DEX_HOUNDOUR, // HOENN_DEX_HOUNDOUR - NATIONAL_DEX_HOUNDOOM, // HOENN_DEX_HOUNDOOM - NATIONAL_DEX_PORYGON2, // HOENN_DEX_PORYGON2 - NATIONAL_DEX_STANTLER, // HOENN_DEX_STANTLER - NATIONAL_DEX_SMEARGLE, // HOENN_DEX_SMEARGLE - NATIONAL_DEX_TYROGUE, // HOENN_DEX_TYROGUE - NATIONAL_DEX_HITMONTOP, // HOENN_DEX_HITMONTOP - NATIONAL_DEX_SMOOCHUM, // HOENN_DEX_SMOOCHUM - NATIONAL_DEX_ELEKID, // HOENN_DEX_ELEKID - NATIONAL_DEX_MAGBY, // HOENN_DEX_MAGBY - NATIONAL_DEX_MILTANK, // HOENN_DEX_MILTANK - NATIONAL_DEX_BLISSEY, // HOENN_DEX_BLISSEY - NATIONAL_DEX_RAIKOU, // HOENN_DEX_RAIKOU - NATIONAL_DEX_ENTEI, // HOENN_DEX_ENTEI - NATIONAL_DEX_SUICUNE, // HOENN_DEX_SUICUNE - NATIONAL_DEX_LARVITAR, // HOENN_DEX_LARVITAR - NATIONAL_DEX_PUPITAR, // HOENN_DEX_PUPITAR - NATIONAL_DEX_TYRANITAR, // HOENN_DEX_TYRANITAR - NATIONAL_DEX_LUGIA, // HOENN_DEX_LUGIA - NATIONAL_DEX_HO_OH, // HOENN_DEX_HO-OH - NATIONAL_DEX_CELEBI, // HOENN_DEX_CELEBI - NATIONAL_DEX_OLD_UNOWN_B, // HOENN_DEX_OLD_UNOWN_B - NATIONAL_DEX_OLD_UNOWN_C, // HOENN_DEX_OLD_UNOWN_C - NATIONAL_DEX_OLD_UNOWN_D, // HOENN_DEX_OLD_UNOWN_D - NATIONAL_DEX_OLD_UNOWN_E, // HOENN_DEX_OLD_UNOWN_E - NATIONAL_DEX_OLD_UNOWN_F, // HOENN_DEX_OLD_UNOWN_F - NATIONAL_DEX_OLD_UNOWN_G, // HOENN_DEX_OLD_UNOWN_G - NATIONAL_DEX_OLD_UNOWN_H, // HOENN_DEX_OLD_UNOWN_H - NATIONAL_DEX_OLD_UNOWN_I, // HOENN_DEX_OLD_UNOWN_I - NATIONAL_DEX_OLD_UNOWN_J, // HOENN_DEX_OLD_UNOWN_J - NATIONAL_DEX_OLD_UNOWN_K, // HOENN_DEX_OLD_UNOWN_K - NATIONAL_DEX_OLD_UNOWN_L, // HOENN_DEX_OLD_UNOWN_L - NATIONAL_DEX_OLD_UNOWN_M, // HOENN_DEX_OLD_UNOWN_M - NATIONAL_DEX_OLD_UNOWN_N, // HOENN_DEX_OLD_UNOWN_N - NATIONAL_DEX_OLD_UNOWN_O, // HOENN_DEX_OLD_UNOWN_O - NATIONAL_DEX_OLD_UNOWN_P, // HOENN_DEX_OLD_UNOWN_P - NATIONAL_DEX_OLD_UNOWN_Q, // HOENN_DEX_OLD_UNOWN_Q - NATIONAL_DEX_OLD_UNOWN_R, // HOENN_DEX_OLD_UNOWN_R - NATIONAL_DEX_OLD_UNOWN_S, // HOENN_DEX_OLD_UNOWN_S - NATIONAL_DEX_OLD_UNOWN_T, // HOENN_DEX_OLD_UNOWN_T - NATIONAL_DEX_OLD_UNOWN_U, // HOENN_DEX_OLD_UNOWN_U - NATIONAL_DEX_OLD_UNOWN_V, // HOENN_DEX_OLD_UNOWN_V - NATIONAL_DEX_OLD_UNOWN_W, // HOENN_DEX_OLD_UNOWN_W - NATIONAL_DEX_OLD_UNOWN_X, // HOENN_DEX_OLD_UNOWN_X - NATIONAL_DEX_OLD_UNOWN_Y, // HOENN_DEX_OLD_UNOWN_Y - NATIONAL_DEX_OLD_UNOWN_Z // HOENN_DEX_OLD_UNOWN_Z +const u16 gHoennToNationalOrder[] = // Assigns Hoenn Dex Pokmon (Using National Dex Index) +{ + HOENN_TO_NATIONAL(TREECKO), + HOENN_TO_NATIONAL(GROVYLE), + HOENN_TO_NATIONAL(SCEPTILE), + HOENN_TO_NATIONAL(TORCHIC), + HOENN_TO_NATIONAL(COMBUSKEN), + HOENN_TO_NATIONAL(BLAZIKEN), + HOENN_TO_NATIONAL(MUDKIP), + HOENN_TO_NATIONAL(MARSHTOMP), + HOENN_TO_NATIONAL(SWAMPERT), + HOENN_TO_NATIONAL(POOCHYENA), + HOENN_TO_NATIONAL(MIGHTYENA), + HOENN_TO_NATIONAL(ZIGZAGOON), + HOENN_TO_NATIONAL(LINOONE), + HOENN_TO_NATIONAL(WURMPLE), + HOENN_TO_NATIONAL(SILCOON), + HOENN_TO_NATIONAL(BEAUTIFLY), + HOENN_TO_NATIONAL(CASCOON), + HOENN_TO_NATIONAL(DUSTOX), + HOENN_TO_NATIONAL(LOTAD), + HOENN_TO_NATIONAL(LOMBRE), + HOENN_TO_NATIONAL(LUDICOLO), + HOENN_TO_NATIONAL(SEEDOT), + HOENN_TO_NATIONAL(NUZLEAF), + HOENN_TO_NATIONAL(SHIFTRY), + HOENN_TO_NATIONAL(TAILLOW), + HOENN_TO_NATIONAL(SWELLOW), + HOENN_TO_NATIONAL(WINGULL), + HOENN_TO_NATIONAL(PELIPPER), + HOENN_TO_NATIONAL(RALTS), + HOENN_TO_NATIONAL(KIRLIA), + HOENN_TO_NATIONAL(GARDEVOIR), + HOENN_TO_NATIONAL(SURSKIT), + HOENN_TO_NATIONAL(MASQUERAIN), + HOENN_TO_NATIONAL(SHROOMISH), + HOENN_TO_NATIONAL(BRELOOM), + HOENN_TO_NATIONAL(SLAKOTH), + HOENN_TO_NATIONAL(VIGOROTH), + HOENN_TO_NATIONAL(SLAKING), + HOENN_TO_NATIONAL(ABRA), + HOENN_TO_NATIONAL(KADABRA), + HOENN_TO_NATIONAL(ALAKAZAM), + HOENN_TO_NATIONAL(NINCADA), + HOENN_TO_NATIONAL(NINJASK), + HOENN_TO_NATIONAL(SHEDINJA), + HOENN_TO_NATIONAL(WHISMUR), + HOENN_TO_NATIONAL(LOUDRED), + HOENN_TO_NATIONAL(EXPLOUD), + HOENN_TO_NATIONAL(MAKUHITA), + HOENN_TO_NATIONAL(HARIYAMA), + HOENN_TO_NATIONAL(GOLDEEN), + HOENN_TO_NATIONAL(SEAKING), + HOENN_TO_NATIONAL(MAGIKARP), + HOENN_TO_NATIONAL(GYARADOS), + HOENN_TO_NATIONAL(AZURILL), + HOENN_TO_NATIONAL(MARILL), + HOENN_TO_NATIONAL(AZUMARILL), + HOENN_TO_NATIONAL(GEODUDE), + HOENN_TO_NATIONAL(GRAVELER), + HOENN_TO_NATIONAL(GOLEM), + HOENN_TO_NATIONAL(NOSEPASS), + HOENN_TO_NATIONAL(SKITTY), + HOENN_TO_NATIONAL(DELCATTY), + HOENN_TO_NATIONAL(ZUBAT), + HOENN_TO_NATIONAL(GOLBAT), + HOENN_TO_NATIONAL(CROBAT), + HOENN_TO_NATIONAL(TENTACOOL), + HOENN_TO_NATIONAL(TENTACRUEL), + HOENN_TO_NATIONAL(SABLEYE), + HOENN_TO_NATIONAL(MAWILE), + HOENN_TO_NATIONAL(ARON), + HOENN_TO_NATIONAL(LAIRON), + HOENN_TO_NATIONAL(AGGRON), + HOENN_TO_NATIONAL(MACHOP), + HOENN_TO_NATIONAL(MACHOKE), + HOENN_TO_NATIONAL(MACHAMP), + HOENN_TO_NATIONAL(MEDITITE), + HOENN_TO_NATIONAL(MEDICHAM), + HOENN_TO_NATIONAL(ELECTRIKE), + HOENN_TO_NATIONAL(MANECTRIC), + HOENN_TO_NATIONAL(PLUSLE), + HOENN_TO_NATIONAL(MINUN), + HOENN_TO_NATIONAL(MAGNEMITE), + HOENN_TO_NATIONAL(MAGNETON), + HOENN_TO_NATIONAL(VOLTORB), + HOENN_TO_NATIONAL(ELECTRODE), + HOENN_TO_NATIONAL(VOLBEAT), + HOENN_TO_NATIONAL(ILLUMISE), + HOENN_TO_NATIONAL(ODDISH), + HOENN_TO_NATIONAL(GLOOM), + HOENN_TO_NATIONAL(VILEPLUME), + HOENN_TO_NATIONAL(BELLOSSOM), + HOENN_TO_NATIONAL(DODUO), + HOENN_TO_NATIONAL(DODRIO), + HOENN_TO_NATIONAL(ROSELIA), + HOENN_TO_NATIONAL(GULPIN), + HOENN_TO_NATIONAL(SWALOT), + HOENN_TO_NATIONAL(CARVANHA), + HOENN_TO_NATIONAL(SHARPEDO), + HOENN_TO_NATIONAL(WAILMER), + HOENN_TO_NATIONAL(WAILORD), + HOENN_TO_NATIONAL(NUMEL), + HOENN_TO_NATIONAL(CAMERUPT), + HOENN_TO_NATIONAL(SLUGMA), + HOENN_TO_NATIONAL(MAGCARGO), + HOENN_TO_NATIONAL(TORKOAL), + HOENN_TO_NATIONAL(GRIMER), + HOENN_TO_NATIONAL(MUK), + HOENN_TO_NATIONAL(KOFFING), + HOENN_TO_NATIONAL(WEEZING), + HOENN_TO_NATIONAL(SPOINK), + HOENN_TO_NATIONAL(GRUMPIG), + HOENN_TO_NATIONAL(SANDSHREW), + HOENN_TO_NATIONAL(SANDSLASH), + HOENN_TO_NATIONAL(SPINDA), + HOENN_TO_NATIONAL(SKARMORY), + HOENN_TO_NATIONAL(TRAPINCH), + HOENN_TO_NATIONAL(VIBRAVA), + HOENN_TO_NATIONAL(FLYGON), + HOENN_TO_NATIONAL(CACNEA), + HOENN_TO_NATIONAL(CACTURNE), + HOENN_TO_NATIONAL(SWABLU), + HOENN_TO_NATIONAL(ALTARIA), + HOENN_TO_NATIONAL(ZANGOOSE), + HOENN_TO_NATIONAL(SEVIPER), + HOENN_TO_NATIONAL(LUNATONE), + HOENN_TO_NATIONAL(SOLROCK), + HOENN_TO_NATIONAL(BARBOACH), + HOENN_TO_NATIONAL(WHISCASH), + HOENN_TO_NATIONAL(CORPHISH), + HOENN_TO_NATIONAL(CRAWDAUNT), + HOENN_TO_NATIONAL(BALTOY), + HOENN_TO_NATIONAL(CLAYDOL), + HOENN_TO_NATIONAL(LILEEP), + HOENN_TO_NATIONAL(CRADILY), + HOENN_TO_NATIONAL(ANORITH), + HOENN_TO_NATIONAL(ARMALDO), + HOENN_TO_NATIONAL(IGGLYBUFF), + HOENN_TO_NATIONAL(JIGGLYPUFF), + HOENN_TO_NATIONAL(WIGGLYTUFF), + HOENN_TO_NATIONAL(FEEBAS), + HOENN_TO_NATIONAL(MILOTIC), + HOENN_TO_NATIONAL(CASTFORM), + HOENN_TO_NATIONAL(STARYU), + HOENN_TO_NATIONAL(STARMIE), + HOENN_TO_NATIONAL(KECLEON), + HOENN_TO_NATIONAL(SHUPPET), + HOENN_TO_NATIONAL(BANETTE), + HOENN_TO_NATIONAL(DUSKULL), + HOENN_TO_NATIONAL(DUSCLOPS), + HOENN_TO_NATIONAL(TROPIUS), + HOENN_TO_NATIONAL(CHIMECHO), + HOENN_TO_NATIONAL(ABSOL), + HOENN_TO_NATIONAL(VULPIX), + HOENN_TO_NATIONAL(NINETALES), + HOENN_TO_NATIONAL(PICHU), + HOENN_TO_NATIONAL(PIKACHU), + HOENN_TO_NATIONAL(RAICHU), + HOENN_TO_NATIONAL(PSYDUCK), + HOENN_TO_NATIONAL(GOLDUCK), + HOENN_TO_NATIONAL(WYNAUT), + HOENN_TO_NATIONAL(WOBBUFFET), + HOENN_TO_NATIONAL(NATU), + HOENN_TO_NATIONAL(XATU), + HOENN_TO_NATIONAL(GIRAFARIG), + HOENN_TO_NATIONAL(PHANPY), + HOENN_TO_NATIONAL(DONPHAN), + HOENN_TO_NATIONAL(PINSIR), + HOENN_TO_NATIONAL(HERACROSS), + HOENN_TO_NATIONAL(RHYHORN), + HOENN_TO_NATIONAL(RHYDON), + HOENN_TO_NATIONAL(SNORUNT), + HOENN_TO_NATIONAL(GLALIE), + HOENN_TO_NATIONAL(SPHEAL), + HOENN_TO_NATIONAL(SEALEO), + HOENN_TO_NATIONAL(WALREIN), + HOENN_TO_NATIONAL(CLAMPERL), + HOENN_TO_NATIONAL(HUNTAIL), + HOENN_TO_NATIONAL(GOREBYSS), + HOENN_TO_NATIONAL(RELICANTH), + HOENN_TO_NATIONAL(CORSOLA), + HOENN_TO_NATIONAL(CHINCHOU), + HOENN_TO_NATIONAL(LANTURN), + HOENN_TO_NATIONAL(LUVDISC), + HOENN_TO_NATIONAL(HORSEA), + HOENN_TO_NATIONAL(SEADRA), + HOENN_TO_NATIONAL(KINGDRA), + HOENN_TO_NATIONAL(BAGON), + HOENN_TO_NATIONAL(SHELGON), + HOENN_TO_NATIONAL(SALAMENCE), + HOENN_TO_NATIONAL(BELDUM), + HOENN_TO_NATIONAL(METANG), + HOENN_TO_NATIONAL(METAGROSS), + HOENN_TO_NATIONAL(REGIROCK), + HOENN_TO_NATIONAL(REGICE), + HOENN_TO_NATIONAL(REGISTEEL), + HOENN_TO_NATIONAL(LATIAS), + HOENN_TO_NATIONAL(LATIOS), + HOENN_TO_NATIONAL(KYOGRE), + HOENN_TO_NATIONAL(GROUDON), + HOENN_TO_NATIONAL(RAYQUAZA), + HOENN_TO_NATIONAL(JIRACHI), + HOENN_TO_NATIONAL(DEOXYS), + HOENN_TO_NATIONAL(BULBASAUR), // Pokmon from here onwards are UNSEEN in the HoennDex. + HOENN_TO_NATIONAL(IVYSAUR), + HOENN_TO_NATIONAL(VENUSAUR), + HOENN_TO_NATIONAL(CHARMANDER), + HOENN_TO_NATIONAL(CHARMELEON), + HOENN_TO_NATIONAL(CHARIZARD), + HOENN_TO_NATIONAL(SQUIRTLE), + HOENN_TO_NATIONAL(WARTORTLE), + HOENN_TO_NATIONAL(BLASTOISE), + HOENN_TO_NATIONAL(CATERPIE), + HOENN_TO_NATIONAL(METAPOD), + HOENN_TO_NATIONAL(BUTTERFREE), + HOENN_TO_NATIONAL(WEEDLE), + HOENN_TO_NATIONAL(KAKUNA), + HOENN_TO_NATIONAL(BEEDRILL), + HOENN_TO_NATIONAL(PIDGEY), + HOENN_TO_NATIONAL(PIDGEOTTO), + HOENN_TO_NATIONAL(PIDGEOT), + HOENN_TO_NATIONAL(RATTATA), + HOENN_TO_NATIONAL(RATICATE), + HOENN_TO_NATIONAL(SPEAROW), + HOENN_TO_NATIONAL(FEAROW), + HOENN_TO_NATIONAL(EKANS), + HOENN_TO_NATIONAL(ARBOK), + HOENN_TO_NATIONAL(NIDORAN_F), + HOENN_TO_NATIONAL(NIDORINA), + HOENN_TO_NATIONAL(NIDOQUEEN), + HOENN_TO_NATIONAL(NIDORAN_M), + HOENN_TO_NATIONAL(NIDORINO), + HOENN_TO_NATIONAL(NIDOKING), + HOENN_TO_NATIONAL(CLEFAIRY), + HOENN_TO_NATIONAL(CLEFABLE), + HOENN_TO_NATIONAL(PARAS), + HOENN_TO_NATIONAL(PARASECT), + HOENN_TO_NATIONAL(VENONAT), + HOENN_TO_NATIONAL(VENOMOTH), + HOENN_TO_NATIONAL(DIGLETT), + HOENN_TO_NATIONAL(DUGTRIO), + HOENN_TO_NATIONAL(MEOWTH), + HOENN_TO_NATIONAL(PERSIAN), + HOENN_TO_NATIONAL(MANKEY), + HOENN_TO_NATIONAL(PRIMEAPE), + HOENN_TO_NATIONAL(GROWLITHE), + HOENN_TO_NATIONAL(ARCANINE), + HOENN_TO_NATIONAL(POLIWAG), + HOENN_TO_NATIONAL(POLIWHIRL), + HOENN_TO_NATIONAL(POLIWRATH), + HOENN_TO_NATIONAL(BELLSPROUT), + HOENN_TO_NATIONAL(WEEPINBELL), + HOENN_TO_NATIONAL(VICTREEBEL), + HOENN_TO_NATIONAL(PONYTA), + HOENN_TO_NATIONAL(RAPIDASH), + HOENN_TO_NATIONAL(SLOWPOKE), + HOENN_TO_NATIONAL(SLOWBRO), + HOENN_TO_NATIONAL(FARFETCHD), + HOENN_TO_NATIONAL(SEEL), + HOENN_TO_NATIONAL(DEWGONG), + HOENN_TO_NATIONAL(SHELLDER), + HOENN_TO_NATIONAL(CLOYSTER), + HOENN_TO_NATIONAL(GASTLY), + HOENN_TO_NATIONAL(HAUNTER), + HOENN_TO_NATIONAL(GENGAR), + HOENN_TO_NATIONAL(ONIX), + HOENN_TO_NATIONAL(DROWZEE), + HOENN_TO_NATIONAL(HYPNO), + HOENN_TO_NATIONAL(KRABBY), + HOENN_TO_NATIONAL(KINGLER), + HOENN_TO_NATIONAL(EXEGGCUTE), + HOENN_TO_NATIONAL(EXEGGUTOR), + HOENN_TO_NATIONAL(CUBONE), + HOENN_TO_NATIONAL(MAROWAK), + HOENN_TO_NATIONAL(HITMONLEE), + HOENN_TO_NATIONAL(HITMONCHAN), + HOENN_TO_NATIONAL(LICKITUNG), + HOENN_TO_NATIONAL(CHANSEY), + HOENN_TO_NATIONAL(TANGELA), + HOENN_TO_NATIONAL(KANGASKHAN), + HOENN_TO_NATIONAL(MR_MIME), + HOENN_TO_NATIONAL(SCYTHER), + HOENN_TO_NATIONAL(JYNX), + HOENN_TO_NATIONAL(ELECTABUZZ), + HOENN_TO_NATIONAL(MAGMAR), + HOENN_TO_NATIONAL(TAUROS), + HOENN_TO_NATIONAL(LAPRAS), + HOENN_TO_NATIONAL(DITTO), + HOENN_TO_NATIONAL(EEVEE), + HOENN_TO_NATIONAL(VAPOREON), + HOENN_TO_NATIONAL(JOLTEON), + HOENN_TO_NATIONAL(FLAREON), + HOENN_TO_NATIONAL(PORYGON), + HOENN_TO_NATIONAL(OMANYTE), + HOENN_TO_NATIONAL(OMASTAR), + HOENN_TO_NATIONAL(KABUTO), + HOENN_TO_NATIONAL(KABUTOPS), + HOENN_TO_NATIONAL(AERODACTYL), + HOENN_TO_NATIONAL(SNORLAX), + HOENN_TO_NATIONAL(ARTICUNO), + HOENN_TO_NATIONAL(ZAPDOS), + HOENN_TO_NATIONAL(MOLTRES), + HOENN_TO_NATIONAL(DRATINI), + HOENN_TO_NATIONAL(DRAGONAIR), + HOENN_TO_NATIONAL(DRAGONITE), + HOENN_TO_NATIONAL(MEWTWO), + HOENN_TO_NATIONAL(MEW), + HOENN_TO_NATIONAL(CHIKORITA), + HOENN_TO_NATIONAL(BAYLEEF), + HOENN_TO_NATIONAL(MEGANIUM), + HOENN_TO_NATIONAL(CYNDAQUIL), + HOENN_TO_NATIONAL(QUILAVA), + HOENN_TO_NATIONAL(TYPHLOSION), + HOENN_TO_NATIONAL(TOTODILE), + HOENN_TO_NATIONAL(CROCONAW), + HOENN_TO_NATIONAL(FERALIGATR), + HOENN_TO_NATIONAL(SENTRET), + HOENN_TO_NATIONAL(FURRET), + HOENN_TO_NATIONAL(HOOTHOOT), + HOENN_TO_NATIONAL(NOCTOWL), + HOENN_TO_NATIONAL(LEDYBA), + HOENN_TO_NATIONAL(LEDIAN), + HOENN_TO_NATIONAL(SPINARAK), + HOENN_TO_NATIONAL(ARIADOS), + HOENN_TO_NATIONAL(CLEFFA), + HOENN_TO_NATIONAL(TOGEPI), + HOENN_TO_NATIONAL(TOGETIC), + HOENN_TO_NATIONAL(MAREEP), + HOENN_TO_NATIONAL(FLAAFFY), + HOENN_TO_NATIONAL(AMPHAROS), + HOENN_TO_NATIONAL(SUDOWOODO), + HOENN_TO_NATIONAL(POLITOED), + HOENN_TO_NATIONAL(HOPPIP), + HOENN_TO_NATIONAL(SKIPLOOM), + HOENN_TO_NATIONAL(JUMPLUFF), + HOENN_TO_NATIONAL(AIPOM), + HOENN_TO_NATIONAL(SUNKERN), + HOENN_TO_NATIONAL(SUNFLORA), + HOENN_TO_NATIONAL(YANMA), + HOENN_TO_NATIONAL(WOOPER), + HOENN_TO_NATIONAL(QUAGSIRE), + HOENN_TO_NATIONAL(ESPEON), + HOENN_TO_NATIONAL(UMBREON), + HOENN_TO_NATIONAL(MURKROW), + HOENN_TO_NATIONAL(SLOWKING), + HOENN_TO_NATIONAL(MISDREAVUS), + HOENN_TO_NATIONAL(UNOWN), + HOENN_TO_NATIONAL(PINECO), + HOENN_TO_NATIONAL(FORRETRESS), + HOENN_TO_NATIONAL(DUNSPARCE), + HOENN_TO_NATIONAL(GLIGAR), + HOENN_TO_NATIONAL(STEELIX), + HOENN_TO_NATIONAL(SNUBBULL), + HOENN_TO_NATIONAL(GRANBULL), + HOENN_TO_NATIONAL(QWILFISH), + HOENN_TO_NATIONAL(SCIZOR), + HOENN_TO_NATIONAL(SHUCKLE), + HOENN_TO_NATIONAL(SNEASEL), + HOENN_TO_NATIONAL(TEDDIURSA), + HOENN_TO_NATIONAL(URSARING), + HOENN_TO_NATIONAL(SWINUB), + HOENN_TO_NATIONAL(PILOSWINE), + HOENN_TO_NATIONAL(REMORAID), + HOENN_TO_NATIONAL(OCTILLERY), + HOENN_TO_NATIONAL(DELIBIRD), + HOENN_TO_NATIONAL(MANTINE), + HOENN_TO_NATIONAL(HOUNDOUR), + HOENN_TO_NATIONAL(HOUNDOOM), + HOENN_TO_NATIONAL(PORYGON2), + HOENN_TO_NATIONAL(STANTLER), + HOENN_TO_NATIONAL(SMEARGLE), + HOENN_TO_NATIONAL(TYROGUE), + HOENN_TO_NATIONAL(HITMONTOP), + HOENN_TO_NATIONAL(SMOOCHUM), + HOENN_TO_NATIONAL(ELEKID), + HOENN_TO_NATIONAL(MAGBY), + HOENN_TO_NATIONAL(MILTANK), + HOENN_TO_NATIONAL(BLISSEY), + HOENN_TO_NATIONAL(RAIKOU), + HOENN_TO_NATIONAL(ENTEI), + HOENN_TO_NATIONAL(SUICUNE), + HOENN_TO_NATIONAL(LARVITAR), + HOENN_TO_NATIONAL(PUPITAR), + HOENN_TO_NATIONAL(TYRANITAR), + HOENN_TO_NATIONAL(LUGIA), + HOENN_TO_NATIONAL(HO_OH), + HOENN_TO_NATIONAL(CELEBI), + HOENN_TO_NATIONAL(OLD_UNOWN_B), + HOENN_TO_NATIONAL(OLD_UNOWN_C), + HOENN_TO_NATIONAL(OLD_UNOWN_D), + HOENN_TO_NATIONAL(OLD_UNOWN_E), + HOENN_TO_NATIONAL(OLD_UNOWN_F), + HOENN_TO_NATIONAL(OLD_UNOWN_G), + HOENN_TO_NATIONAL(OLD_UNOWN_H), + HOENN_TO_NATIONAL(OLD_UNOWN_I), + HOENN_TO_NATIONAL(OLD_UNOWN_J), + HOENN_TO_NATIONAL(OLD_UNOWN_K), + HOENN_TO_NATIONAL(OLD_UNOWN_L), + HOENN_TO_NATIONAL(OLD_UNOWN_M), + HOENN_TO_NATIONAL(OLD_UNOWN_N), + HOENN_TO_NATIONAL(OLD_UNOWN_O), + HOENN_TO_NATIONAL(OLD_UNOWN_P), + HOENN_TO_NATIONAL(OLD_UNOWN_Q), + HOENN_TO_NATIONAL(OLD_UNOWN_R), + HOENN_TO_NATIONAL(OLD_UNOWN_S), + HOENN_TO_NATIONAL(OLD_UNOWN_T), + HOENN_TO_NATIONAL(OLD_UNOWN_U), + HOENN_TO_NATIONAL(OLD_UNOWN_V), + HOENN_TO_NATIONAL(OLD_UNOWN_W), + HOENN_TO_NATIONAL(OLD_UNOWN_X), + HOENN_TO_NATIONAL(OLD_UNOWN_Y), + HOENN_TO_NATIONAL(OLD_UNOWN_Z), }; const struct SpindaSpot gSpindaSpotGraphics[] = @@ -1404,834 +1399,836 @@ const s8 gNatureStatTable[][5] = #include "data/pokemon/evolution.h" #include "data/pokemon/level_up_learnset_pointers.h" +// SPECIES_NONE are ignored in the following two tables, so decrement before accessing these arrays to get the right result + static const u8 sMonFrontAnimIdsTable[] = { - 0x06, // SPECIES_BULBASAUR - 0x17, // SPECIES_IVYSAUR - 0x2f, // SPECIES_VENUSAUR - 0x52, // SPECIES_CHARMANDER - 0x25, // SPECIES_CHARMELEON - 0x10, // SPECIES_CHARIZARD - 0x0b, // SPECIES_SQUIRTLE - 0x13, // SPECIES_WARTORTLE - 0x19, // SPECIES_BLASTOISE - 0x0b, // SPECIES_CATERPIE - 0x0b, // SPECIES_METAPOD - 0x1d, // SPECIES_BUTTERFREE - 0x46, // SPECIES_WEEDLE - 0x20, // SPECIES_KAKUNA - 0x02, // SPECIES_BEEDRILL - 0x47, // SPECIES_PIDGEY - 0x17, // SPECIES_PIDGEOTTO - 0x29, // SPECIES_PIDGEOT - 0x43, // SPECIES_RATTATA - 0x2b, // SPECIES_RATICATE - 0x18, // SPECIES_SPEAROW - 0x2b, // SPECIES_FEAROW - 0x16, // SPECIES_EKANS - 0x17, // SPECIES_ARBOK - 0x2c, // SPECIES_PIKACHU - 0x17, // SPECIES_RAICHU - 0x2d, // SPECIES_SANDSHREW - 0x17, // SPECIES_SANDSLASH - 0x00, // SPECIES_NIDORAN_F - 0x17, // SPECIES_NIDORINA - 0x0f, // SPECIES_NIDOQUEEN - 0x09, // SPECIES_NIDORAN_M - 0x13, // SPECIES_NIDORINO - 0x0f, // SPECIES_NIDOKING - 0x00, // SPECIES_CLEFAIRY - 0x4a, // SPECIES_CLEFABLE - 0x17, // SPECIES_VULPIX - 0x10, // SPECIES_NINETALES - 0x48, // SPECIES_JIGGLYPUFF - 0x31, // SPECIES_WIGGLYTUFF - 0x00, // SPECIES_ZUBAT - 0x1d, // SPECIES_GOLBAT - 0x00, // SPECIES_ODDISH - 0x45, // SPECIES_GLOOM - 0x49, // SPECIES_VILEPLUME - 0x46, // SPECIES_PARAS - 0x0f, // SPECIES_PARASECT - 0x06, // SPECIES_VENONAT - 0x4b, // SPECIES_VENOMOTH - 0x10, // SPECIES_DIGLETT - 0x4c, // SPECIES_DUGTRIO - 0x52, // SPECIES_MEOWTH - 0x17, // SPECIES_PERSIAN - 0x06, // SPECIES_PSYDUCK - 0x4c, // SPECIES_GOLDUCK - 0x32, // SPECIES_MANKEY - 0x48, // SPECIES_PRIMEAPE - 0x25, // SPECIES_GROWLITHE - 0x02, // SPECIES_ARCANINE - 0x00, // SPECIES_POLIWAG - 0x32, // SPECIES_POLIWHIRL - 0x19, // SPECIES_POLIWRATH - 0x31, // SPECIES_ABRA - 0x09, // SPECIES_KADABRA - 0x17, // SPECIES_ALAKAZAM - 0x00, // SPECIES_MACHOP - 0x10, // SPECIES_MACHOKE - 0x31, // SPECIES_MACHAMP - 0x17, // SPECIES_BELLSPROUT - 0x0d, // SPECIES_WEEPINBELL - 0x32, // SPECIES_VICTREEBEL - 0x00, // SPECIES_TENTACOOL - 0x00, // SPECIES_TENTACRUEL - 0x48, // SPECIES_GEODUDE - 0x48, // SPECIES_GRAVELER - 0x2f, // SPECIES_GOLEM - 0x20, // SPECIES_PONYTA - 0x11, // SPECIES_RAPIDASH - 0x45, // SPECIES_SLOWPOKE - 0x0b, // SPECIES_SLOWBRO - 0x54, // SPECIES_MAGNEMITE - 0x2c, // SPECIES_MAGNETON - 0x48, // SPECIES_FARFETCHD - 0x4c, // SPECIES_DODUO - 0x41, // SPECIES_DODRIO - 0x0b, // SPECIES_SEEL - 0x45, // SPECIES_DEWGONG - 0x46, // SPECIES_GRIMER - 0x30, // SPECIES_MUK - 0x12, // SPECIES_SHELLDER - 0x1d, // SPECIES_CLOYSTER - 0x15, // SPECIES_GASTLY - 0x35, // SPECIES_HAUNTER - 0x3a, // SPECIES_GENGAR - 0x43, // SPECIES_ONIX - 0x4f, // SPECIES_DROWZEE - 0x09, // SPECIES_HYPNO - 0x03, // SPECIES_KRABBY - 0x4b, // SPECIES_KINGLER - 0x00, // SPECIES_VOLTORB - 0x00, // SPECIES_ELECTRODE - 0x46, // SPECIES_EXEGGCUTE - 0x32, // SPECIES_EXEGGUTOR - 0x48, // SPECIES_CUBONE - 0x05, // SPECIES_MAROWAK - 0x16, // SPECIES_HITMONLEE - 0x09, // SPECIES_HITMONCHAN - 0x45, // SPECIES_LICKITUNG - 0x13, // SPECIES_KOFFING - 0x04, // SPECIES_WEEZING - 0x10, // SPECIES_RHYHORN - 0x13, // SPECIES_RHYDON - 0x45, // SPECIES_CHANSEY - 0x48, // SPECIES_TANGELA - 0x17, // SPECIES_KANGASKHAN - 0x12, // SPECIES_HORSEA - 0x04, // SPECIES_SEADRA - 0x0d, // SPECIES_GOLDEEN - 0x1c, // SPECIES_SEAKING - 0x4e, // SPECIES_STARYU - 0x12, // SPECIES_STARMIE - 0x46, // SPECIES_MR_MIME - 0x02, // SPECIES_SCYTHER - 0x17, // SPECIES_JYNX - 0x2c, // SPECIES_ELECTABUZZ - 0x0f, // SPECIES_MAGMAR - 0x09, // SPECIES_PINSIR - 0x19, // SPECIES_TAUROS - 0x05, // SPECIES_MAGIKARP - 0x48, // SPECIES_GYARADOS - 0x17, // SPECIES_LAPRAS - 0x01, // SPECIES_DITTO - 0x17, // SPECIES_EEVEE - 0x17, // SPECIES_VAPOREON - 0x00, // SPECIES_JOLTEON - 0x17, // SPECIES_FLAREON - 0x52, // SPECIES_PORYGON - 0x51, // SPECIES_OMANYTE - 0x09, // SPECIES_OMASTAR - 0x1d, // SPECIES_KABUTO - 0x0f, // SPECIES_KABUTOPS - 0x47, // SPECIES_AERODACTYL - 0x0b, // SPECIES_SNORLAX - 0x09, // SPECIES_ARTICUNO - 0x2c, // SPECIES_ZAPDOS - 0x45, // SPECIES_MOLTRES - 0x00, // SPECIES_DRATINI - 0x10, // SPECIES_DRAGONAIR - 0x47, // SPECIES_DRAGONITE - 0x09, // SPECIES_MEWTWO - 0x0d, // SPECIES_MEW - 0x00, // SPECIES_CHIKORITA - 0x00, // SPECIES_BAYLEEF - 0x17, // SPECIES_MEGANIUM - 0x52, // SPECIES_CYNDAQUIL - 0x17, // SPECIES_QUILAVA - 0x10, // SPECIES_TYPHLOSION - 0x31, // SPECIES_TOTODILE - 0x0f, // SPECIES_CROCONAW - 0x0f, // SPECIES_FERALIGATR - 0x00, // SPECIES_SENTRET - 0x32, // SPECIES_FURRET - 0x47, // SPECIES_HOOTHOOT - 0x17, // SPECIES_NOCTOWL - 0x52, // SPECIES_LEDYBA - 0x47, // SPECIES_LEDIAN - 0x4f, // SPECIES_SPINARAK - 0x0f, // SPECIES_ARIADOS - 0x00, // SPECIES_CROBAT - 0x45, // SPECIES_CHINCHOU - 0x51, // SPECIES_LANTURN - 0x1e, // SPECIES_PICHU - 0x52, // SPECIES_CLEFFA - 0x0c, // SPECIES_IGGLYBUFF - 0x0b, // SPECIES_TOGEPI - 0x00, // SPECIES_TOGETIC - 0x31, // SPECIES_NATU - 0x09, // SPECIES_XATU - 0x00, // SPECIES_MAREEP - 0x1e, // SPECIES_FLAAFFY - 0x2c, // SPECIES_AMPHAROS - 0x0b, // SPECIES_BELLOSSOM - 0x00, // SPECIES_MARILL - 0x4a, // SPECIES_AZUMARILL - 0x46, // SPECIES_SUDOWOODO - 0x32, // SPECIES_POLITOED - 0x1c, // SPECIES_HOPPIP - 0x18, // SPECIES_SKIPLOOM - 0x51, // SPECIES_JUMPLUFF - 0x32, // SPECIES_AIPOM - 0x52, // SPECIES_SUNKERN - 0x00, // SPECIES_SUNFLORA - 0x2b, // SPECIES_YANMA - 0x00, // SPECIES_WOOPER - 0x16, // SPECIES_QUAGSIRE - 0x09, // SPECIES_ESPEON - 0x10, // SPECIES_UMBREON - 0x00, // SPECIES_MURKROW - 0x13, // SPECIES_SLOWKING - 0x1c, // SPECIES_MISDREAVUS - 0x0a, // SPECIES_UNOWN - 0x30, // SPECIES_WOBBUFFET - 0x1e, // SPECIES_GIRAFARIG - 0x0b, // SPECIES_PINECO - 0x10, // SPECIES_FORRETRESS - 0x00, // SPECIES_DUNSPARCE - 0x13, // SPECIES_GLIGAR - 0x0f, // SPECIES_STEELIX - 0x17, // SPECIES_SNUBBULL - 0x10, // SPECIES_GRANBULL - 0x3a, // SPECIES_QWILFISH - 0x02, // SPECIES_SCIZOR - 0x0b, // SPECIES_SHUCKLE - 0x41, // SPECIES_HERACROSS - 0x16, // SPECIES_SNEASEL - 0x17, // SPECIES_TEDDIURSA - 0x10, // SPECIES_URSARING - 0x17, // SPECIES_SLUGMA - 0x17, // SPECIES_MAGCARGO - 0x00, // SPECIES_SWINUB - 0x0f, // SPECIES_PILOSWINE - 0x03, // SPECIES_CORSOLA - 0x52, // SPECIES_REMORAID - 0x17, // SPECIES_OCTILLERY - 0x52, // SPECIES_DELIBIRD - 0x0d, // SPECIES_MANTINE - 0x17, // SPECIES_SKARMORY - 0x17, // SPECIES_HOUNDOUR - 0x10, // SPECIES_HOUNDOOM - 0x42, // SPECIES_KINGDRA - 0x32, // SPECIES_PHANPY - 0x19, // SPECIES_DONPHAN - 0x00, // SPECIES_PORYGON2 - 0x00, // SPECIES_STANTLER - 0x31, // SPECIES_SMEARGLE - 0x16, // SPECIES_TYROGUE - 0x02, // SPECIES_HITMONTOP - 0x09, // SPECIES_SMOOCHUM - 0x2c, // SPECIES_ELEKID - 0x00, // SPECIES_MAGBY - 0x45, // SPECIES_MILTANK - 0x00, // SPECIES_BLISSEY - 0x2c, // SPECIES_RAIKOU - 0x09, // SPECIES_ENTEI - 0x10, // SPECIES_SUICUNE - 0x52, // SPECIES_LARVITAR - 0x10, // SPECIES_PUPITAR - 0x0f, // SPECIES_TYRANITAR - 0x3a, // SPECIES_LUGIA - 0x09, // SPECIES_HO_OH - 0x18, // SPECIES_CELEBI - 0x00, // 252 - 0x00, // 253 - 0x00, // 254 - 0x00, // 255 - 0x00, // 256 - 0x00, // 257 - 0x00, // 258 - 0x00, // 259 - 0x00, // 260 - 0x00, // 261 - 0x00, // 262 - 0x00, // 263 - 0x00, // 264 - 0x00, // 265 - 0x00, // 266 - 0x00, // 267 - 0x00, // 268 - 0x00, // 269 - 0x00, // 270 - 0x00, // 271 - 0x00, // 272 - 0x00, // 273 - 0x00, // 274 - 0x00, // 275 - 0x00, // 276 - 0x00, // SPECIES_TREECKO - 0x17, // SPECIES_GROVYLE - 0x10, // SPECIES_SCEPTILE - 0x16, // SPECIES_TORCHIC - 0x06, // SPECIES_COMBUSKEN - 0x0f, // SPECIES_BLAZIKEN - 0x01, // SPECIES_MUDKIP - 0x04, // SPECIES_MARSHTOMP - 0x1e, // SPECIES_SWAMPERT - 0x10, // SPECIES_POOCHYENA - 0x10, // SPECIES_MIGHTYENA - 0x03, // SPECIES_ZIGZAGOON - 0x09, // SPECIES_LINOONE - 0x00, // SPECIES_WURMPLE - 0x00, // SPECIES_SILCOON - 0x04, // SPECIES_BEAUTIFLY - 0x04, // SPECIES_CASCOON - 0x06, // SPECIES_DUSTOX - 0x00, // SPECIES_LOTAD - 0x00, // SPECIES_LOMBRE - 0x49, // SPECIES_LUDICOLO - 0x05, // SPECIES_SEEDOT - 0x00, // SPECIES_NUZLEAF - 0x02, // SPECIES_SHIFTRY - 0x00, // SPECIES_NINCADA - 0x46, // SPECIES_NINJASK - 0x1c, // SPECIES_SHEDINJA - 0x1e, // SPECIES_TAILLOW - 0x01, // SPECIES_SWELLOW - 0x00, // SPECIES_SHROOMISH - 0x00, // SPECIES_BRELOOM - 0x31, // SPECIES_SPINDA - 0x1b, // SPECIES_WINGULL - 0x1c, // SPECIES_PELIPPER - 0x00, // SPECIES_SURSKIT - 0x00, // SPECIES_MASQUERAIN - 0x01, // SPECIES_WAILMER - 0x1c, // SPECIES_WAILORD - 0x00, // SPECIES_SKITTY - 0x17, // SPECIES_DELCATTY - 0x35, // SPECIES_KECLEON - 0x1d, // SPECIES_BALTOY - 0x51, // SPECIES_CLAYDOL - 0x49, // SPECIES_NOSEPASS - 0x17, // SPECIES_TORKOAL - 0x15, // SPECIES_SABLEYE - 0x49, // SPECIES_BARBOACH - 0x49, // SPECIES_WHISCASH - 0x1d, // SPECIES_LUVDISC - 0x10, // SPECIES_CORPHISH - 0x09, // SPECIES_CRAWDAUNT - 0x49, // SPECIES_FEEBAS - 0x22, // SPECIES_MILOTIC - 0x49, // SPECIES_CARVANHA - 0x56, // SPECIES_SHARPEDO - 0x10, // SPECIES_TRAPINCH - 0x0f, // SPECIES_VIBRAVA - 0x4b, // SPECIES_FLYGON - 0x0b, // SPECIES_MAKUHITA - 0x34, // SPECIES_HARIYAMA - 0x00, // SPECIES_ELECTRIKE - 0x00, // SPECIES_MANECTRIC - 0x04, // SPECIES_NUMEL - 0x10, // SPECIES_CAMERUPT - 0x53, // SPECIES_SPHEAL - 0x17, // SPECIES_SEALEO - 0x0f, // SPECIES_WALREIN - 0x49, // SPECIES_CACNEA - 0x04, // SPECIES_CACTURNE - 0x45, // SPECIES_SNORUNT - 0x0a, // SPECIES_GLALIE - 0x0e, // SPECIES_LUNATONE - 0x08, // SPECIES_SOLROCK - 0x00, // SPECIES_AZURILL - 0x56, // SPECIES_SPOINK - 0x32, // SPECIES_GRUMPIG - 0x00, // SPECIES_PLUSLE - 0x01, // SPECIES_MINUN - 0x00, // SPECIES_MAWILE - 0x05, // SPECIES_MEDITITE - 0x45, // SPECIES_MEDICHAM - 0x04, // SPECIES_SWABLU - 0x16, // SPECIES_ALTARIA - 0x32, // SPECIES_WYNAUT - 0x0a, // SPECIES_DUSKULL - 0x02, // SPECIES_DUSCLOPS - 0x45, // SPECIES_ROSELIA - 0x45, // SPECIES_SLAKOTH - 0x31, // SPECIES_VIGOROTH - 0x45, // SPECIES_SLAKING - 0x00, // SPECIES_GULPIN - 0x45, // SPECIES_SWALOT - 0x10, // SPECIES_TROPIUS - 0x03, // SPECIES_WHISMUR - 0x49, // SPECIES_LOUDRED - 0x19, // SPECIES_EXPLOUD - 0x12, // SPECIES_CLAMPERL - 0x09, // SPECIES_HUNTAIL - 0x1c, // SPECIES_GOREBYSS - 0x11, // SPECIES_ABSOL - 0x1c, // SPECIES_SHUPPET - 0x0d, // SPECIES_BANETTE - 0x17, // SPECIES_SEVIPER - 0x09, // SPECIES_ZANGOOSE - 0x1a, // SPECIES_RELICANTH - 0x45, // SPECIES_ARON - 0x00, // SPECIES_LAIRON - 0x19, // SPECIES_AGGRON - 0x1d, // SPECIES_CASTFORM - 0x00, // SPECIES_VOLBEAT - 0x05, // SPECIES_ILLUMISE - 0x17, // SPECIES_LILEEP - 0x19, // SPECIES_CRADILY - 0x12, // SPECIES_ANORITH - 0x10, // SPECIES_ARMALDO - 0x45, // SPECIES_RALTS - 0x00, // SPECIES_KIRLIA - 0x00, // SPECIES_GARDEVOIR - 0x19, // SPECIES_BAGON - 0x04, // SPECIES_SHELGON - 0x0f, // SPECIES_SALAMENCE - 0x0f, // SPECIES_BELDUM - 0x04, // SPECIES_METANG - 0x10, // SPECIES_METAGROSS - 0x01, // SPECIES_REGIROCK - 0x44, // SPECIES_REGICE - 0x09, // SPECIES_REGISTEEL - 0x2d, // SPECIES_KYOGRE - 0x10, // SPECIES_GROUDON - 0x0f, // SPECIES_RAYQUAZA - 0x2d, // SPECIES_LATIAS - 0x10, // SPECIES_LATIOS - 0x0d, // SPECIES_JIRACHI - 0x1b, // SPECIES_DEOXYS - 0x1d, // SPECIES_CHIMECHO + [SPECIES_BULBASAUR - 1] = 0x06, + [SPECIES_IVYSAUR - 1] = 0x17, + [SPECIES_VENUSAUR - 1] = 0x2f, + [SPECIES_CHARMANDER - 1] = 0x52, + [SPECIES_CHARMELEON - 1] = 0x25, + [SPECIES_CHARIZARD - 1] = 0x10, + [SPECIES_SQUIRTLE - 1] = 0x0b, + [SPECIES_WARTORTLE - 1] = 0x13, + [SPECIES_BLASTOISE - 1] = 0x19, + [SPECIES_CATERPIE - 1] = 0x0b, + [SPECIES_METAPOD - 1] = 0x0b, + [SPECIES_BUTTERFREE - 1] = 0x1d, + [SPECIES_WEEDLE - 1] = 0x46, + [SPECIES_KAKUNA - 1] = 0x20, + [SPECIES_BEEDRILL - 1] = 0x02, + [SPECIES_PIDGEY - 1] = 0x47, + [SPECIES_PIDGEOTTO - 1] = 0x17, + [SPECIES_PIDGEOT - 1] = 0x29, + [SPECIES_RATTATA - 1] = 0x43, + [SPECIES_RATICATE - 1] = 0x2b, + [SPECIES_SPEAROW - 1] = 0x18, + [SPECIES_FEAROW - 1] = 0x2b, + [SPECIES_EKANS - 1] = 0x16, + [SPECIES_ARBOK - 1] = 0x17, + [SPECIES_PIKACHU - 1] = 0x2c, + [SPECIES_RAICHU - 1] = 0x17, + [SPECIES_SANDSHREW - 1] = 0x2d, + [SPECIES_SANDSLASH - 1] = 0x17, + [SPECIES_NIDORAN_F - 1] = 0x00, + [SPECIES_NIDORINA - 1] = 0x17, + [SPECIES_NIDOQUEEN - 1] = 0x0f, + [SPECIES_NIDORAN_M - 1] = 0x09, + [SPECIES_NIDORINO - 1] = 0x13, + [SPECIES_NIDOKING - 1] = 0x0f, + [SPECIES_CLEFAIRY - 1] = 0x00, + [SPECIES_CLEFABLE - 1] = 0x4a, + [SPECIES_VULPIX - 1] = 0x17, + [SPECIES_NINETALES - 1] = 0x10, + [SPECIES_JIGGLYPUFF - 1] = 0x48, + [SPECIES_WIGGLYTUFF - 1] = 0x31, + [SPECIES_ZUBAT - 1] = 0x00, + [SPECIES_GOLBAT - 1] = 0x1d, + [SPECIES_ODDISH - 1] = 0x00, + [SPECIES_GLOOM - 1] = 0x45, + [SPECIES_VILEPLUME - 1] = 0x49, + [SPECIES_PARAS - 1] = 0x46, + [SPECIES_PARASECT - 1] = 0x0f, + [SPECIES_VENONAT - 1] = 0x06, + [SPECIES_VENOMOTH - 1] = 0x4b, + [SPECIES_DIGLETT - 1] = 0x10, + [SPECIES_DUGTRIO - 1] = 0x4c, + [SPECIES_MEOWTH - 1] = 0x52, + [SPECIES_PERSIAN - 1] = 0x17, + [SPECIES_PSYDUCK - 1] = 0x06, + [SPECIES_GOLDUCK - 1] = 0x4c, + [SPECIES_MANKEY - 1] = 0x32, + [SPECIES_PRIMEAPE - 1] = 0x48, + [SPECIES_GROWLITHE - 1] = 0x25, + [SPECIES_ARCANINE - 1] = 0x02, + [SPECIES_POLIWAG - 1] = 0x00, + [SPECIES_POLIWHIRL - 1] = 0x32, + [SPECIES_POLIWRATH - 1] = 0x19, + [SPECIES_ABRA - 1] = 0x31, + [SPECIES_KADABRA - 1] = 0x09, + [SPECIES_ALAKAZAM - 1] = 0x17, + [SPECIES_MACHOP - 1] = 0x00, + [SPECIES_MACHOKE - 1] = 0x10, + [SPECIES_MACHAMP - 1] = 0x31, + [SPECIES_BELLSPROUT - 1] = 0x17, + [SPECIES_WEEPINBELL - 1] = 0x0d, + [SPECIES_VICTREEBEL - 1] = 0x32, + [SPECIES_TENTACOOL - 1] = 0x00, + [SPECIES_TENTACRUEL - 1] = 0x00, + [SPECIES_GEODUDE - 1] = 0x48, + [SPECIES_GRAVELER - 1] = 0x48, + [SPECIES_GOLEM - 1] = 0x2f, + [SPECIES_PONYTA - 1] = 0x20, + [SPECIES_RAPIDASH - 1] = 0x11, + [SPECIES_SLOWPOKE - 1] = 0x45, + [SPECIES_SLOWBRO - 1] = 0x0b, + [SPECIES_MAGNEMITE - 1] = 0x54, + [SPECIES_MAGNETON - 1] = 0x2c, + [SPECIES_FARFETCHD - 1] = 0x48, + [SPECIES_DODUO - 1] = 0x4c, + [SPECIES_DODRIO - 1] = 0x41, + [SPECIES_SEEL - 1] = 0x0b, + [SPECIES_DEWGONG - 1] = 0x45, + [SPECIES_GRIMER - 1] = 0x46, + [SPECIES_MUK - 1] = 0x30, + [SPECIES_SHELLDER - 1] = 0x12, + [SPECIES_CLOYSTER - 1] = 0x1d, + [SPECIES_GASTLY - 1] = 0x15, + [SPECIES_HAUNTER - 1] = 0x35, + [SPECIES_GENGAR - 1] = 0x3a, + [SPECIES_ONIX - 1] = 0x43, + [SPECIES_DROWZEE - 1] = 0x4f, + [SPECIES_HYPNO - 1] = 0x09, + [SPECIES_KRABBY - 1] = 0x03, + [SPECIES_KINGLER - 1] = 0x4b, + [SPECIES_VOLTORB - 1] = 0x00, + [SPECIES_ELECTRODE - 1] = 0x00, + [SPECIES_EXEGGCUTE - 1] = 0x46, + [SPECIES_EXEGGUTOR - 1] = 0x32, + [SPECIES_CUBONE - 1] = 0x48, + [SPECIES_MAROWAK - 1] = 0x05, + [SPECIES_HITMONLEE - 1] = 0x16, + [SPECIES_HITMONCHAN - 1] = 0x09, + [SPECIES_LICKITUNG - 1] = 0x45, + [SPECIES_KOFFING - 1] = 0x13, + [SPECIES_WEEZING - 1] = 0x04, + [SPECIES_RHYHORN - 1] = 0x10, + [SPECIES_RHYDON - 1] = 0x13, + [SPECIES_CHANSEY - 1] = 0x45, + [SPECIES_TANGELA - 1] = 0x48, + [SPECIES_KANGASKHAN - 1] = 0x17, + [SPECIES_HORSEA - 1] = 0x12, + [SPECIES_SEADRA - 1] = 0x04, + [SPECIES_GOLDEEN - 1] = 0x0d, + [SPECIES_SEAKING - 1] = 0x1c, + [SPECIES_STARYU - 1] = 0x4e, + [SPECIES_STARMIE - 1] = 0x12, + [SPECIES_MR_MIME - 1] = 0x46, + [SPECIES_SCYTHER - 1] = 0x02, + [SPECIES_JYNX - 1] = 0x17, + [SPECIES_ELECTABUZZ - 1] = 0x2c, + [SPECIES_MAGMAR - 1] = 0x0f, + [SPECIES_PINSIR - 1] = 0x09, + [SPECIES_TAUROS - 1] = 0x19, + [SPECIES_MAGIKARP - 1] = 0x05, + [SPECIES_GYARADOS - 1] = 0x48, + [SPECIES_LAPRAS - 1] = 0x17, + [SPECIES_DITTO - 1] = 0x01, + [SPECIES_EEVEE - 1] = 0x17, + [SPECIES_VAPOREON - 1] = 0x17, + [SPECIES_JOLTEON - 1] = 0x00, + [SPECIES_FLAREON - 1] = 0x17, + [SPECIES_PORYGON - 1] = 0x52, + [SPECIES_OMANYTE - 1] = 0x51, + [SPECIES_OMASTAR - 1] = 0x09, + [SPECIES_KABUTO - 1] = 0x1d, + [SPECIES_KABUTOPS - 1] = 0x0f, + [SPECIES_AERODACTYL - 1] = 0x47, + [SPECIES_SNORLAX - 1] = 0x0b, + [SPECIES_ARTICUNO - 1] = 0x09, + [SPECIES_ZAPDOS - 1] = 0x2c, + [SPECIES_MOLTRES - 1] = 0x45, + [SPECIES_DRATINI - 1] = 0x00, + [SPECIES_DRAGONAIR - 1] = 0x10, + [SPECIES_DRAGONITE - 1] = 0x47, + [SPECIES_MEWTWO - 1] = 0x09, + [SPECIES_MEW - 1] = 0x0d, + [SPECIES_CHIKORITA - 1] = 0x00, + [SPECIES_BAYLEEF - 1] = 0x00, + [SPECIES_MEGANIUM - 1] = 0x17, + [SPECIES_CYNDAQUIL - 1] = 0x52, + [SPECIES_QUILAVA - 1] = 0x17, + [SPECIES_TYPHLOSION - 1] = 0x10, + [SPECIES_TOTODILE - 1] = 0x31, + [SPECIES_CROCONAW - 1] = 0x0f, + [SPECIES_FERALIGATR - 1] = 0x0f, + [SPECIES_SENTRET - 1] = 0x00, + [SPECIES_FURRET - 1] = 0x32, + [SPECIES_HOOTHOOT - 1] = 0x47, + [SPECIES_NOCTOWL - 1] = 0x17, + [SPECIES_LEDYBA - 1] = 0x52, + [SPECIES_LEDIAN - 1] = 0x47, + [SPECIES_SPINARAK - 1] = 0x4f, + [SPECIES_ARIADOS - 1] = 0x0f, + [SPECIES_CROBAT - 1] = 0x00, + [SPECIES_CHINCHOU - 1] = 0x45, + [SPECIES_LANTURN - 1] = 0x51, + [SPECIES_PICHU - 1] = 0x1e, + [SPECIES_CLEFFA - 1] = 0x52, + [SPECIES_IGGLYBUFF - 1] = 0x0c, + [SPECIES_TOGEPI - 1] = 0x0b, + [SPECIES_TOGETIC - 1] = 0x00, + [SPECIES_NATU - 1] = 0x31, + [SPECIES_XATU - 1] = 0x09, + [SPECIES_MAREEP - 1] = 0x00, + [SPECIES_FLAAFFY - 1] = 0x1e, + [SPECIES_AMPHAROS - 1] = 0x2c, + [SPECIES_BELLOSSOM - 1] = 0x0b, + [SPECIES_MARILL - 1] = 0x00, + [SPECIES_AZUMARILL - 1] = 0x4a, + [SPECIES_SUDOWOODO - 1] = 0x46, + [SPECIES_POLITOED - 1] = 0x32, + [SPECIES_HOPPIP - 1] = 0x1c, + [SPECIES_SKIPLOOM - 1] = 0x18, + [SPECIES_JUMPLUFF - 1] = 0x51, + [SPECIES_AIPOM - 1] = 0x32, + [SPECIES_SUNKERN - 1] = 0x52, + [SPECIES_SUNFLORA - 1] = 0x00, + [SPECIES_YANMA - 1] = 0x2b, + [SPECIES_WOOPER - 1] = 0x00, + [SPECIES_QUAGSIRE - 1] = 0x16, + [SPECIES_ESPEON - 1] = 0x09, + [SPECIES_UMBREON - 1] = 0x10, + [SPECIES_MURKROW - 1] = 0x00, + [SPECIES_SLOWKING - 1] = 0x13, + [SPECIES_MISDREAVUS - 1] = 0x1c, + [SPECIES_UNOWN - 1] = 0x0a, + [SPECIES_WOBBUFFET - 1] = 0x30, + [SPECIES_GIRAFARIG - 1] = 0x1e, + [SPECIES_PINECO - 1] = 0x0b, + [SPECIES_FORRETRESS - 1] = 0x10, + [SPECIES_DUNSPARCE - 1] = 0x00, + [SPECIES_GLIGAR - 1] = 0x13, + [SPECIES_STEELIX - 1] = 0x0f, + [SPECIES_SNUBBULL - 1] = 0x17, + [SPECIES_GRANBULL - 1] = 0x10, + [SPECIES_QWILFISH - 1] = 0x3a, + [SPECIES_SCIZOR - 1] = 0x02, + [SPECIES_SHUCKLE - 1] = 0x0b, + [SPECIES_HERACROSS - 1] = 0x41, + [SPECIES_SNEASEL - 1] = 0x16, + [SPECIES_TEDDIURSA - 1] = 0x17, + [SPECIES_URSARING - 1] = 0x10, + [SPECIES_SLUGMA - 1] = 0x17, + [SPECIES_MAGCARGO - 1] = 0x17, + [SPECIES_SWINUB - 1] = 0x00, + [SPECIES_PILOSWINE - 1] = 0x0f, + [SPECIES_CORSOLA - 1] = 0x03, + [SPECIES_REMORAID - 1] = 0x52, + [SPECIES_OCTILLERY - 1] = 0x17, + [SPECIES_DELIBIRD - 1] = 0x52, + [SPECIES_MANTINE - 1] = 0x0d, + [SPECIES_SKARMORY - 1] = 0x17, + [SPECIES_HOUNDOUR - 1] = 0x17, + [SPECIES_HOUNDOOM - 1] = 0x10, + [SPECIES_KINGDRA - 1] = 0x42, + [SPECIES_PHANPY - 1] = 0x32, + [SPECIES_DONPHAN - 1] = 0x19, + [SPECIES_PORYGON2 - 1] = 0x00, + [SPECIES_STANTLER - 1] = 0x00, + [SPECIES_SMEARGLE - 1] = 0x31, + [SPECIES_TYROGUE - 1] = 0x16, + [SPECIES_HITMONTOP - 1] = 0x02, + [SPECIES_SMOOCHUM - 1] = 0x09, + [SPECIES_ELEKID - 1] = 0x2c, + [SPECIES_MAGBY - 1] = 0x00, + [SPECIES_MILTANK - 1] = 0x45, + [SPECIES_BLISSEY - 1] = 0x00, + [SPECIES_RAIKOU - 1] = 0x2c, + [SPECIES_ENTEI - 1] = 0x09, + [SPECIES_SUICUNE - 1] = 0x10, + [SPECIES_LARVITAR - 1] = 0x52, + [SPECIES_PUPITAR - 1] = 0x10, + [SPECIES_TYRANITAR - 1] = 0x0f, + [SPECIES_LUGIA - 1] = 0x3a, + [SPECIES_HO_OH - 1] = 0x09, + [SPECIES_CELEBI - 1] = 0x18, + [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] = 0x17, + [SPECIES_SCEPTILE - 1] = 0x10, + [SPECIES_TORCHIC - 1] = 0x16, + [SPECIES_COMBUSKEN - 1] = 0x06, + [SPECIES_BLAZIKEN - 1] = 0x0f, + [SPECIES_MUDKIP - 1] = 0x01, + [SPECIES_MARSHTOMP - 1] = 0x04, + [SPECIES_SWAMPERT - 1] = 0x1e, + [SPECIES_POOCHYENA - 1] = 0x10, + [SPECIES_MIGHTYENA - 1] = 0x10, + [SPECIES_ZIGZAGOON - 1] = 0x03, + [SPECIES_LINOONE - 1] = 0x09, + [SPECIES_WURMPLE - 1] = 0x00, + [SPECIES_SILCOON - 1] = 0x00, + [SPECIES_BEAUTIFLY - 1] = 0x04, + [SPECIES_CASCOON - 1] = 0x04, + [SPECIES_DUSTOX - 1] = 0x06, + [SPECIES_LOTAD - 1] = 0x00, + [SPECIES_LOMBRE - 1] = 0x00, + [SPECIES_LUDICOLO - 1] = 0x49, + [SPECIES_SEEDOT - 1] = 0x05, + [SPECIES_NUZLEAF - 1] = 0x00, + [SPECIES_SHIFTRY - 1] = 0x02, + [SPECIES_NINCADA - 1] = 0x00, + [SPECIES_NINJASK - 1] = 0x46, + [SPECIES_SHEDINJA - 1] = 0x1c, + [SPECIES_TAILLOW - 1] = 0x1e, + [SPECIES_SWELLOW - 1] = 0x01, + [SPECIES_SHROOMISH - 1] = 0x00, + [SPECIES_BRELOOM - 1] = 0x00, + [SPECIES_SPINDA - 1] = 0x31, + [SPECIES_WINGULL - 1] = 0x1b, + [SPECIES_PELIPPER - 1] = 0x1c, + [SPECIES_SURSKIT - 1] = 0x00, + [SPECIES_MASQUERAIN - 1] = 0x00, + [SPECIES_WAILMER - 1] = 0x01, + [SPECIES_WAILORD - 1] = 0x1c, + [SPECIES_SKITTY - 1] = 0x00, + [SPECIES_DELCATTY - 1] = 0x17, + [SPECIES_KECLEON - 1] = 0x35, + [SPECIES_BALTOY - 1] = 0x1d, + [SPECIES_CLAYDOL - 1] = 0x51, + [SPECIES_NOSEPASS - 1] = 0x49, + [SPECIES_TORKOAL - 1] = 0x17, + [SPECIES_SABLEYE - 1] = 0x15, + [SPECIES_BARBOACH - 1] = 0x49, + [SPECIES_WHISCASH - 1] = 0x49, + [SPECIES_LUVDISC - 1] = 0x1d, + [SPECIES_CORPHISH - 1] = 0x10, + [SPECIES_CRAWDAUNT - 1] = 0x09, + [SPECIES_FEEBAS - 1] = 0x49, + [SPECIES_MILOTIC - 1] = 0x22, + [SPECIES_CARVANHA - 1] = 0x49, + [SPECIES_SHARPEDO - 1] = 0x56, + [SPECIES_TRAPINCH - 1] = 0x10, + [SPECIES_VIBRAVA - 1] = 0x0f, + [SPECIES_FLYGON - 1] = 0x4b, + [SPECIES_MAKUHITA - 1] = 0x0b, + [SPECIES_HARIYAMA - 1] = 0x34, + [SPECIES_ELECTRIKE - 1] = 0x00, + [SPECIES_MANECTRIC - 1] = 0x00, + [SPECIES_NUMEL - 1] = 0x04, + [SPECIES_CAMERUPT - 1] = 0x10, + [SPECIES_SPHEAL - 1] = 0x53, + [SPECIES_SEALEO - 1] = 0x17, + [SPECIES_WALREIN - 1] = 0x0f, + [SPECIES_CACNEA - 1] = 0x49, + [SPECIES_CACTURNE - 1] = 0x04, + [SPECIES_SNORUNT - 1] = 0x45, + [SPECIES_GLALIE - 1] = 0x0a, + [SPECIES_LUNATONE - 1] = 0x0e, + [SPECIES_SOLROCK - 1] = 0x08, + [SPECIES_AZURILL - 1] = 0x00, + [SPECIES_SPOINK - 1] = 0x56, + [SPECIES_GRUMPIG - 1] = 0x32, + [SPECIES_PLUSLE - 1] = 0x00, + [SPECIES_MINUN - 1] = 0x01, + [SPECIES_MAWILE - 1] = 0x00, + [SPECIES_MEDITITE - 1] = 0x05, + [SPECIES_MEDICHAM - 1] = 0x45, + [SPECIES_SWABLU - 1] = 0x04, + [SPECIES_ALTARIA - 1] = 0x16, + [SPECIES_WYNAUT - 1] = 0x32, + [SPECIES_DUSKULL - 1] = 0x0a, + [SPECIES_DUSCLOPS - 1] = 0x02, + [SPECIES_ROSELIA - 1] = 0x45, + [SPECIES_SLAKOTH - 1] = 0x45, + [SPECIES_VIGOROTH - 1] = 0x31, + [SPECIES_SLAKING - 1] = 0x45, + [SPECIES_GULPIN - 1] = 0x00, + [SPECIES_SWALOT - 1] = 0x45, + [SPECIES_TROPIUS - 1] = 0x10, + [SPECIES_WHISMUR - 1] = 0x03, + [SPECIES_LOUDRED - 1] = 0x49, + [SPECIES_EXPLOUD - 1] = 0x19, + [SPECIES_CLAMPERL - 1] = 0x12, + [SPECIES_HUNTAIL - 1] = 0x09, + [SPECIES_GOREBYSS - 1] = 0x1c, + [SPECIES_ABSOL - 1] = 0x11, + [SPECIES_SHUPPET - 1] = 0x1c, + [SPECIES_BANETTE - 1] = 0x0d, + [SPECIES_SEVIPER - 1] = 0x17, + [SPECIES_ZANGOOSE - 1] = 0x09, + [SPECIES_RELICANTH - 1] = 0x1a, + [SPECIES_ARON - 1] = 0x45, + [SPECIES_LAIRON - 1] = 0x00, + [SPECIES_AGGRON - 1] = 0x19, + [SPECIES_CASTFORM - 1] = 0x1d, + [SPECIES_VOLBEAT - 1] = 0x00, + [SPECIES_ILLUMISE - 1] = 0x05, + [SPECIES_LILEEP - 1] = 0x17, + [SPECIES_CRADILY - 1] = 0x19, + [SPECIES_ANORITH - 1] = 0x12, + [SPECIES_ARMALDO - 1] = 0x10, + [SPECIES_RALTS - 1] = 0x45, + [SPECIES_KIRLIA - 1] = 0x00, + [SPECIES_GARDEVOIR - 1] = 0x00, + [SPECIES_BAGON - 1] = 0x19, + [SPECIES_SHELGON - 1] = 0x04, + [SPECIES_SALAMENCE - 1] = 0x0f, + [SPECIES_BELDUM - 1] = 0x0f, + [SPECIES_METANG - 1] = 0x04, + [SPECIES_METAGROSS - 1] = 0x10, + [SPECIES_REGIROCK - 1] = 0x01, + [SPECIES_REGICE - 1] = 0x44, + [SPECIES_REGISTEEL - 1] = 0x09, + [SPECIES_KYOGRE - 1] = 0x2d, + [SPECIES_GROUDON - 1] = 0x10, + [SPECIES_RAYQUAZA - 1] = 0x0f, + [SPECIES_LATIAS - 1] = 0x2d, + [SPECIES_LATIOS - 1] = 0x10, + [SPECIES_JIRACHI - 1] = 0x0d, + [SPECIES_DEOXYS - 1] = 0x1b, + [SPECIES_CHIMECHO - 1] = 0x1d, }; static const u8 sMonAnimationDelayTable[] = { - 0x00, // SPECIES_BULBASAUR - 0x00, // SPECIES_IVYSAUR - 0x00, // SPECIES_VENUSAUR - 0x00, // SPECIES_CHARMANDER - 0x00, // SPECIES_CHARMELEON - 0x00, // SPECIES_CHARIZARD - 0x00, // SPECIES_SQUIRTLE - 0x00, // SPECIES_WARTORTLE - 0x32, // SPECIES_BLASTOISE - 0x00, // SPECIES_CATERPIE - 0x00, // SPECIES_METAPOD - 0x00, // SPECIES_BUTTERFREE - 0x0a, // SPECIES_WEEDLE - 0x14, // SPECIES_KAKUNA - 0x23, // SPECIES_BEEDRILL - 0x00, // SPECIES_PIDGEY - 0x19, // SPECIES_PIDGEOTTO - 0x00, // SPECIES_PIDGEOT - 0x00, // SPECIES_RATTATA - 0x00, // SPECIES_RATICATE - 0x00, // SPECIES_SPEAROW - 0x02, // SPECIES_FEAROW - 0x1e, // SPECIES_EKANS - 0x00, // SPECIES_ARBOK - 0x00, // SPECIES_PIKACHU - 0x00, // SPECIES_RAICHU - 0x00, // SPECIES_SANDSHREW - 0x00, // SPECIES_SANDSLASH - 0x1c, // SPECIES_NIDORAN_F - 0x00, // SPECIES_NIDORINA - 0x00, // SPECIES_NIDOQUEEN - 0x00, // SPECIES_NIDORAN_M - 0x00, // SPECIES_NIDORINO - 0x19, // SPECIES_NIDOKING - 0x00, // SPECIES_CLEFAIRY - 0x00, // SPECIES_CLEFABLE - 0x00, // SPECIES_VULPIX - 0x00, // SPECIES_NINETALES - 0x00, // SPECIES_JIGGLYPUFF - 0x00, // SPECIES_WIGGLYTUFF - 0x00, // SPECIES_ZUBAT - 0x00, // SPECIES_GOLBAT - 0x00, // SPECIES_ODDISH - 0x00, // SPECIES_GLOOM - 0x00, // SPECIES_VILEPLUME - 0x0a, // SPECIES_PARAS - 0x2d, // SPECIES_PARASECT - 0x14, // SPECIES_VENONAT - 0x00, // SPECIES_VENOMOTH - 0x19, // SPECIES_DIGLETT - 0x23, // SPECIES_DUGTRIO - 0x28, // SPECIES_MEOWTH - 0x14, // SPECIES_PERSIAN - 0x00, // SPECIES_PSYDUCK - 0x00, // SPECIES_GOLDUCK - 0x14, // SPECIES_MANKEY - 0x00, // SPECIES_PRIMEAPE - 0x1e, // SPECIES_GROWLITHE - 0x28, // SPECIES_ARCANINE - 0x00, // SPECIES_POLIWAG - 0x05, // SPECIES_POLIWHIRL - 0x00, // SPECIES_POLIWRATH - 0x00, // SPECIES_ABRA - 0x00, // SPECIES_KADABRA - 0x00, // SPECIES_ALAKAZAM - 0x00, // SPECIES_MACHOP - 0x00, // SPECIES_MACHOKE - 0x00, // SPECIES_MACHAMP - 0x00, // SPECIES_BELLSPROUT - 0x03, // SPECIES_WEEPINBELL - 0x00, // SPECIES_VICTREEBEL - 0x00, // SPECIES_TENTACOOL - 0x00, // SPECIES_TENTACRUEL - 0x00, // SPECIES_GEODUDE - 0x00, // SPECIES_GRAVELER - 0x00, // SPECIES_GOLEM - 0x00, // SPECIES_PONYTA - 0x00, // SPECIES_RAPIDASH - 0x00, // SPECIES_SLOWPOKE - 0x00, // SPECIES_SLOWBRO - 0x00, // SPECIES_MAGNEMITE - 0x00, // SPECIES_MAGNETON - 0x00, // SPECIES_FARFETCHD - 0x00, // SPECIES_DODUO - 0x00, // SPECIES_DODRIO - 0x00, // SPECIES_SEEL - 0x00, // SPECIES_DEWGONG - 0x00, // SPECIES_GRIMER - 0x2d, // SPECIES_MUK - 0x14, // SPECIES_SHELLDER - 0x00, // SPECIES_CLOYSTER - 0x00, // SPECIES_GASTLY - 0x17, // SPECIES_HAUNTER - 0x00, // SPECIES_GENGAR - 0x00, // SPECIES_ONIX - 0x30, // SPECIES_DROWZEE - 0x28, // SPECIES_HYPNO - 0x00, // SPECIES_KRABBY - 0x00, // SPECIES_KINGLER - 0x00, // SPECIES_VOLTORB - 0x00, // SPECIES_ELECTRODE - 0x00, // SPECIES_EXEGGCUTE - 0x00, // SPECIES_EXEGGUTOR - 0x00, // SPECIES_CUBONE - 0x00, // SPECIES_MAROWAK - 0x00, // SPECIES_HITMONLEE - 0x19, // SPECIES_HITMONCHAN - 0x00, // SPECIES_LICKITUNG - 0x00, // SPECIES_KOFFING - 0x00, // SPECIES_WEEZING - 0x00, // SPECIES_RHYHORN - 0x00, // SPECIES_RHYDON - 0x00, // SPECIES_CHANSEY - 0x00, // SPECIES_TANGELA - 0x00, // SPECIES_KANGASKHAN - 0x00, // SPECIES_HORSEA - 0x00, // SPECIES_SEADRA - 0x00, // SPECIES_GOLDEEN - 0x00, // SPECIES_SEAKING - 0x00, // SPECIES_STARYU - 0x00, // SPECIES_STARMIE - 0x00, // SPECIES_MR_MIME - 0x0a, // SPECIES_SCYTHER - 0x00, // SPECIES_JYNX - 0x00, // SPECIES_ELECTABUZZ - 0x00, // SPECIES_MAGMAR - 0x00, // SPECIES_PINSIR - 0x0a, // SPECIES_TAUROS - 0x00, // SPECIES_MAGIKARP - 0x00, // SPECIES_GYARADOS - 0x00, // SPECIES_LAPRAS - 0x00, // SPECIES_DITTO - 0x00, // SPECIES_EEVEE - 0x00, // SPECIES_VAPOREON - 0x00, // SPECIES_JOLTEON - 0x00, // SPECIES_FLAREON - 0x00, // SPECIES_PORYGON - 0x00, // SPECIES_OMANYTE - 0x00, // SPECIES_OMASTAR - 0x00, // SPECIES_KABUTO - 0x00, // SPECIES_KABUTOPS - 0x00, // SPECIES_AERODACTYL - 0x00, // SPECIES_SNORLAX - 0x00, // SPECIES_ARTICUNO - 0x00, // SPECIES_ZAPDOS - 0x00, // SPECIES_MOLTRES - 0x00, // SPECIES_DRATINI - 0x00, // SPECIES_DRAGONAIR - 0x00, // SPECIES_DRAGONITE - 0x00, // SPECIES_MEWTWO - 0x00, // SPECIES_MEW - 0x00, // SPECIES_CHIKORITA - 0x00, // SPECIES_BAYLEEF - 0x00, // SPECIES_MEGANIUM - 0x00, // SPECIES_CYNDAQUIL - 0x00, // SPECIES_QUILAVA - 0x14, // SPECIES_TYPHLOSION - 0x00, // SPECIES_TOTODILE - 0x00, // SPECIES_CROCONAW - 0x05, // SPECIES_FERALIGATR - 0x00, // SPECIES_SENTRET - 0x00, // SPECIES_FURRET - 0x00, // SPECIES_HOOTHOOT - 0x00, // SPECIES_NOCTOWL - 0x00, // SPECIES_LEDYBA - 0x00, // SPECIES_LEDIAN - 0x00, // SPECIES_SPINARAK - 0x00, // SPECIES_ARIADOS - 0x00, // SPECIES_CROBAT - 0x00, // SPECIES_CHINCHOU - 0x00, // SPECIES_LANTURN - 0x00, // SPECIES_PICHU - 0x00, // SPECIES_CLEFFA - 0x00, // SPECIES_IGGLYBUFF - 0x00, // SPECIES_TOGEPI - 0x00, // SPECIES_TOGETIC - 0x1e, // SPECIES_NATU - 0x00, // SPECIES_XATU - 0x32, // SPECIES_MAREEP - 0x00, // SPECIES_FLAAFFY - 0x0a, // SPECIES_AMPHAROS - 0x00, // SPECIES_BELLOSSOM - 0x00, // SPECIES_MARILL - 0x00, // SPECIES_AZUMARILL - 0x00, // SPECIES_SUDOWOODO - 0x28, // SPECIES_POLITOED - 0x00, // SPECIES_HOPPIP - 0x00, // SPECIES_SKIPLOOM - 0x00, // SPECIES_JUMPLUFF - 0x00, // SPECIES_AIPOM - 0x00, // SPECIES_SUNKERN - 0x00, // SPECIES_SUNFLORA - 0x00, // SPECIES_YANMA - 0x00, // SPECIES_WOOPER - 0x00, // SPECIES_QUAGSIRE - 0x00, // SPECIES_ESPEON - 0x00, // SPECIES_UMBREON - 0x00, // SPECIES_MURKROW - 0x00, // SPECIES_SLOWKING - 0x00, // SPECIES_MISDREAVUS - 0x00, // SPECIES_UNOWN - 0x00, // SPECIES_WOBBUFFET - 0x00, // SPECIES_GIRAFARIG - 0x00, // SPECIES_PINECO - 0x00, // SPECIES_FORRETRESS - 0x0a, // SPECIES_DUNSPARCE - 0x00, // SPECIES_GLIGAR - 0x2d, // SPECIES_STEELIX - 0x00, // SPECIES_SNUBBULL - 0x00, // SPECIES_GRANBULL - 0x27, // SPECIES_QWILFISH - 0x13, // SPECIES_SCIZOR - 0x00, // SPECIES_SHUCKLE - 0x00, // SPECIES_HERACROSS - 0x00, // SPECIES_SNEASEL - 0x00, // SPECIES_TEDDIURSA - 0x00, // SPECIES_URSARING - 0x00, // SPECIES_SLUGMA - 0x00, // SPECIES_MAGCARGO - 0x00, // SPECIES_SWINUB - 0x00, // SPECIES_PILOSWINE - 0x00, // SPECIES_CORSOLA - 0x00, // SPECIES_REMORAID - 0x14, // SPECIES_OCTILLERY - 0x00, // SPECIES_DELIBIRD - 0x00, // SPECIES_MANTINE - 0x00, // SPECIES_SKARMORY - 0x00, // SPECIES_HOUNDOUR - 0x00, // SPECIES_HOUNDOOM - 0x00, // SPECIES_KINGDRA - 0x00, // SPECIES_PHANPY - 0x00, // SPECIES_DONPHAN - 0x00, // SPECIES_PORYGON2 - 0x00, // SPECIES_STANTLER - 0x00, // SPECIES_SMEARGLE - 0x00, // SPECIES_TYROGUE - 0x00, // SPECIES_HITMONTOP - 0x28, // SPECIES_SMOOCHUM - 0x00, // SPECIES_ELEKID - 0x00, // SPECIES_MAGBY - 0x00, // SPECIES_MILTANK - 0x00, // SPECIES_BLISSEY - 0x00, // SPECIES_RAIKOU - 0x00, // SPECIES_ENTEI - 0x00, // SPECIES_SUICUNE - 0x00, // SPECIES_LARVITAR - 0x00, // SPECIES_PUPITAR - 0x0a, // SPECIES_TYRANITAR - 0x14, // SPECIES_LUGIA - 0x00, // SPECIES_HO_OH - 0x00, // SPECIES_CELEBI - 0x00, // 252 - 0x00, // 253 - 0x00, // 254 - 0x00, // 255 - 0x00, // 256 - 0x00, // 257 - 0x00, // 258 - 0x00, // 259 - 0x00, // 260 - 0x00, // 261 - 0x00, // 262 - 0x00, // 263 - 0x00, // 264 - 0x00, // 265 - 0x00, // 266 - 0x00, // 267 - 0x00, // 268 - 0x00, // 269 - 0x00, // 270 - 0x00, // 271 - 0x00, // 272 - 0x00, // 273 - 0x00, // 274 - 0x00, // 275 - 0x00, // 276 - 0x00, // SPECIES_TREECKO - 0x00, // SPECIES_GROVYLE - 0x00, // SPECIES_SCEPTILE - 0x00, // SPECIES_TORCHIC - 0x00, // SPECIES_COMBUSKEN - 0x00, // SPECIES_BLAZIKEN - 0x00, // SPECIES_MUDKIP - 0x00, // SPECIES_MARSHTOMP - 0x00, // SPECIES_SWAMPERT - 0x00, // SPECIES_POOCHYENA - 0x00, // SPECIES_MIGHTYENA - 0x00, // SPECIES_ZIGZAGOON - 0x00, // SPECIES_LINOONE - 0x00, // SPECIES_WURMPLE - 0x00, // SPECIES_SILCOON - 0x00, // SPECIES_BEAUTIFLY - 0x00, // SPECIES_CASCOON - 0x00, // SPECIES_DUSTOX - 0x00, // SPECIES_LOTAD - 0x00, // SPECIES_LOMBRE - 0x00, // SPECIES_LUDICOLO - 0x00, // SPECIES_SEEDOT - 0x00, // SPECIES_NUZLEAF - 0x00, // SPECIES_SHIFTRY - 0x00, // SPECIES_NINCADA - 0x00, // SPECIES_NINJASK - 0x00, // SPECIES_SHEDINJA - 0x00, // SPECIES_TAILLOW - 0x00, // SPECIES_SWELLOW - 0x00, // SPECIES_SHROOMISH - 0x00, // SPECIES_BRELOOM - 0x00, // SPECIES_SPINDA - 0x00, // SPECIES_WINGULL - 0x00, // SPECIES_PELIPPER - 0x00, // SPECIES_SURSKIT - 0x00, // SPECIES_MASQUERAIN - 0x00, // SPECIES_WAILMER - 0x0a, // SPECIES_WAILORD - 0x00, // SPECIES_SKITTY - 0x00, // SPECIES_DELCATTY - 0x1e, // SPECIES_KECLEON - 0x00, // SPECIES_BALTOY - 0x00, // SPECIES_CLAYDOL - 0x00, // SPECIES_NOSEPASS - 0x00, // SPECIES_TORKOAL - 0x00, // SPECIES_SABLEYE - 0x00, // SPECIES_BARBOACH - 0x00, // SPECIES_WHISCASH - 0x00, // SPECIES_LUVDISC - 0x00, // SPECIES_CORPHISH - 0x00, // SPECIES_CRAWDAUNT - 0x00, // SPECIES_FEEBAS - 0x2d, // SPECIES_MILOTIC - 0x00, // SPECIES_CARVANHA - 0x00, // SPECIES_SHARPEDO - 0x00, // SPECIES_TRAPINCH - 0x00, // SPECIES_VIBRAVA - 0x00, // SPECIES_FLYGON - 0x00, // SPECIES_MAKUHITA - 0x00, // SPECIES_HARIYAMA - 0x00, // SPECIES_ELECTRIKE - 0x00, // SPECIES_MANECTRIC - 0x00, // SPECIES_NUMEL - 0x00, // SPECIES_CAMERUPT - 0x0f, // SPECIES_SPHEAL - 0x00, // SPECIES_SEALEO - 0x00, // SPECIES_WALREIN - 0x00, // SPECIES_CACNEA - 0x00, // SPECIES_CACTURNE - 0x14, // SPECIES_SNORUNT - 0x00, // SPECIES_GLALIE - 0x00, // SPECIES_LUNATONE - 0x00, // SPECIES_SOLROCK - 0x00, // SPECIES_AZURILL - 0x00, // SPECIES_SPOINK - 0x0f, // SPECIES_GRUMPIG - 0x00, // SPECIES_PLUSLE - 0x00, // SPECIES_MINUN - 0x00, // SPECIES_MAWILE - 0x00, // SPECIES_MEDITITE - 0x00, // SPECIES_MEDICHAM - 0x00, // SPECIES_SWABLU - 0x00, // SPECIES_ALTARIA - 0x0f, // SPECIES_WYNAUT - 0x00, // SPECIES_DUSKULL - 0x1e, // SPECIES_DUSCLOPS - 0x00, // SPECIES_ROSELIA - 0x00, // SPECIES_SLAKOTH - 0x00, // SPECIES_VIGOROTH - 0x00, // SPECIES_SLAKING - 0x00, // SPECIES_GULPIN - 0x00, // SPECIES_SWALOT - 0x00, // SPECIES_TROPIUS - 0x00, // SPECIES_WHISMUR - 0x00, // SPECIES_LOUDRED - 0x00, // SPECIES_EXPLOUD - 0x00, // SPECIES_CLAMPERL - 0x00, // SPECIES_HUNTAIL - 0x00, // SPECIES_GOREBYSS - 0x2d, // SPECIES_ABSOL - 0x00, // SPECIES_SHUPPET - 0x00, // SPECIES_BANETTE - 0x00, // SPECIES_SEVIPER - 0x00, // SPECIES_ZANGOOSE - 0x00, // SPECIES_RELICANTH - 0x00, // SPECIES_ARON - 0x00, // SPECIES_LAIRON - 0x00, // SPECIES_AGGRON - 0x00, // SPECIES_CASTFORM - 0x00, // SPECIES_VOLBEAT - 0x00, // SPECIES_ILLUMISE - 0x00, // SPECIES_LILEEP - 0x00, // SPECIES_CRADILY - 0x00, // SPECIES_ANORITH - 0x00, // SPECIES_ARMALDO - 0x00, // SPECIES_RALTS - 0x00, // SPECIES_KIRLIA - 0x00, // SPECIES_GARDEVOIR - 0x00, // SPECIES_BAGON - 0x00, // SPECIES_SHELGON - 0x46, // SPECIES_SALAMENCE - 0x00, // SPECIES_BELDUM - 0x00, // SPECIES_METANG - 0x00, // SPECIES_METAGROSS - 0x00, // SPECIES_REGIROCK - 0x00, // SPECIES_REGICE - 0x00, // SPECIES_REGISTEEL - 0x3c, // SPECIES_KYOGRE - 0x00, // SPECIES_GROUDON - 0x3c, // SPECIES_RAYQUAZA - 0x00, // SPECIES_LATIAS - 0x00, // SPECIES_LATIOS - 0x00, // SPECIES_JIRACHI - 0x00, // SPECIES_DEOXYS - 0x00, // SPECIES_CHIMECHO + [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, + [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 gUnknown_08329D22[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values @@ -2269,9 +2266,9 @@ const u16 gUnknown_08329D54[] = { FACILITY_CLASS_COOLTRAINER_M, FACILITY_CLASS_BLACK_BELT, FACILITY_CLASS_CAMPER, FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_PSYCHIC_M, FACILITY_CLASS_BUG_CATCHER, - FACILITY_CLASS_PKMN_BREEDER_2, FACILITY_CLASS_GUITARIST, FACILITY_CLASS_COOLTRAINER_F, + FACILITY_CLASS_PKMN_BREEDER_M, FACILITY_CLASS_GUITARIST, FACILITY_CLASS_COOLTRAINER_F, FACILITY_CLASS_HEX_MANIAC, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_LASS, - FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_BATTLE_GIRL, FACILITY_CLASS_PKMN_BREEDER_1, + FACILITY_CLASS_PSYCHIC_F, FACILITY_CLASS_BATTLE_GIRL, FACILITY_CLASS_POKEMON_BREEDER_F, FACILITY_CLASS_BEAUTY }; @@ -2456,13 +2453,13 @@ static const struct SpeciesItem sAlteringCaveWildMonHeldItems[] = { {SPECIES_NONE, ITEM_NONE}, {SPECIES_MAREEP, ITEM_GANLON_BERRY}, - {SPECIES_PINECO, ITEM_APICOT_BERRY}, - {SPECIES_HOUNDOUR, ITEM_BIG_MUSHROOM}, - {SPECIES_TEDDIURSA, ITEM_PETAYA_BERRY}, - {SPECIES_AIPOM, ITEM_BERRY_JUICE}, - {SPECIES_SHUCKLE, ITEM_BERRY_JUICE}, - {SPECIES_STANTLER, ITEM_PETAYA_BERRY}, - {SPECIES_SMEARGLE, ITEM_SALAC_BERRY}, + {SPECIES_PINECO, ITEM_APICOT_BERRY}, + {SPECIES_HOUNDOUR, ITEM_BIG_MUSHROOM}, + {SPECIES_TEDDIURSA, ITEM_PETAYA_BERRY}, + {SPECIES_AIPOM, ITEM_BERRY_JUICE}, + {SPECIES_SHUCKLE, ITEM_BERRY_JUICE}, + {SPECIES_STANTLER, ITEM_PETAYA_BERRY}, + {SPECIES_SMEARGLE, ITEM_SALAC_BERRY}, }; static const struct OamData sOamData_8329F20 = @@ -2752,7 +2749,7 @@ void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedI CalculateMonStats(mon); } -void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src) +void sub_806819C(struct Pokemon *mon, struct BattleTowerPokemon *src) { s32 i; u8 nickname[30]; @@ -2806,7 +2803,7 @@ void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src) CalculateMonStats(mon); } -void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50) +void sub_8068338(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50) { s32 i; u8 nickname[30]; @@ -2934,7 +2931,7 @@ void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level, CalculateMonStats(mon); } -void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest) +void sub_80686FC(struct Pokemon *mon, struct BattleTowerPokemon *dest) { s32 i; u16 heldItem; @@ -3285,7 +3282,7 @@ u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move) if (existingMove == move) return -2; } - return -1; + return 0xFFFF; } u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move) @@ -3302,7 +3299,7 @@ u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move) } } - return -1; + return 0xFFFF; } void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot) @@ -5861,10 +5858,10 @@ u16 HoennPokedexNumToSpecies(u16 hoennNum) species = 0; - while (species < 411 && gSpeciesToHoennPokedexNum[species] != hoennNum) + while (species < (NUM_SPECIES - 1) && gSpeciesToHoennPokedexNum[species] != hoennNum) species++; - if (species == 411) + if (species == NUM_SPECIES - 1) return 0; return species + 1; @@ -5879,10 +5876,10 @@ u16 NationalPokedexNumToSpecies(u16 nationalNum) species = 0; - while (species < 411 && gSpeciesToNationalPokedexNum[species] != nationalNum) + while (species < (NUM_SPECIES - 1) && gSpeciesToNationalPokedexNum[species] != nationalNum) species++; - if (species == 411) + if (species == NUM_SPECIES - 1) return 0; return species + 1; @@ -5897,10 +5894,10 @@ u16 NationalToHoennOrder(u16 nationalNum) hoennNum = 0; - while (hoennNum < 411 && gHoennToNationalOrder[hoennNum] != nationalNum) + while (hoennNum < (NUM_SPECIES - 1) && gHoennToNationalOrder[hoennNum] != nationalNum) hoennNum++; - if (hoennNum == 411) + if (hoennNum == NUM_SPECIES - 1) return 0; return hoennNum + 1; @@ -6581,15 +6578,15 @@ u16 SpeciesToPokedexNum(u16 species) else { species = SpeciesToHoennPokedexNum(species); - if (species <= 202) + if (species <= HOENN_DEX_COUNT) return species; return 0xFFFF; } } -bool32 sub_806E3F8(u16 species) +bool32 IsSpeciesInHoennDex(u16 species) { - if (SpeciesToHoennPokedexNum(species) > 202) + if (SpeciesToHoennPokedexNum(species) > HOENN_DEX_COUNT) return FALSE; else return TRUE; @@ -6704,12 +6701,6 @@ const u32 *GetMonFrontSpritePal(struct Pokemon *mon) return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality); } -// Extracts the upper 16 bits of a 32-bit number -#define HIHALF(n) (((n) & 0xFFFF0000) >> 16) - -// Extracts the lower 16 bits of a 32-bit number -#define LOHALF(n) ((n) & 0xFFFF) - const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality) { u32 shinyValue; @@ -7113,9 +7104,9 @@ u16 FacilityClassToPicIndex(u16 facilityClass) u16 PlayerGenderToFrontTrainerPicId(u8 playerGender) { if (playerGender != MALE) - return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_MAY); + return FacilityClassToPicIndex(FACILITY_CLASS_MAY); else - return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN); + return FacilityClassToPicIndex(FACILITY_CLASS_BRENDAN); } void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality) diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 989bce37d..8c468d9f4 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -786,31 +786,31 @@ static const u8 sBackAnimationIds[] = static const u8 sBackAnimNatureModTable[] = { - 0x00, // NATURE_HARDY - 0x02, // NATURE_LONELY - 0x00, // NATURE_BRAVE - 0x00, // NATURE_ADAMANT - 0x00, // NATURE_NAUGHTY - 0x01, // NATURE_BOLD - 0x01, // NATURE_DOCILE - 0x01, // NATURE_RELAXED - 0x00, // NATURE_IMPISH - 0x01, // NATURE_LAX - 0x02, // NATURE_TIMID - 0x00, // NATURE_HASTY - 0x01, // NATURE_SERIOUS - 0x00, // NATURE_JOLLY - 0x00, // NATURE_NAIVE - 0x02, // NATURE_MODEST - 0x02, // NATURE_MILD - 0x02, // NATURE_QUIET - 0x02, // NATURE_BASHFUL - 0x01, // NATURE_RASH - 0x01, // NATURE_CALM - 0x02, // NATURE_GENTLE - 0x01, // NATURE_SASSY - 0x02, // NATURE_CAREFUL - 0x01, // NATURE_QUIRKY + [NATURE_HARDY] = 0x00, + [NATURE_LONELY] = 0x02, + [NATURE_BRAVE] = 0x00, + [NATURE_ADAMANT] = 0x00, + [NATURE_NAUGHTY] = 0x00, + [NATURE_BOLD] = 0x01, + [NATURE_DOCILE] = 0x01, + [NATURE_RELAXED] = 0x01, + [NATURE_IMPISH] = 0x00, + [NATURE_LAX] = 0x01, + [NATURE_TIMID] = 0x02, + [NATURE_HASTY] = 0x00, + [NATURE_SERIOUS] = 0x01, + [NATURE_JOLLY] = 0x00, + [NATURE_NAIVE] = 0x00, + [NATURE_MODEST] = 0x02, + [NATURE_MILD] = 0x02, + [NATURE_QUIET] = 0x02, + [NATURE_BASHFUL] = 0x02, + [NATURE_RASH] = 0x01, + [NATURE_CALM] = 0x01, + [NATURE_GENTLE] = 0x02, + [NATURE_SASSY] = 0x01, + [NATURE_CAREFUL] = 0x02, + [NATURE_QUIRKY] = 0x01, }; static const union AffineAnimCmd sSpriteAffineAnim_860AD48[] = @@ -1164,67 +1164,67 @@ NAKED static void sub_817F9F4(struct Sprite *sprite) { asm(".syntax unified\n\ - push {r4,lr}\n\ - adds r4, r0, 0\n\ - movs r0, 0x32\n\ - ldrsh r1, [r4, r0]\n\ - movs r0, 0xC0\n\ - lsls r0, 1\n\ - cmp r1, r0\n\ - ble _0817FA14\n\ - ldr r0, =SpriteCB_SetDummyOnAnimEnd\n\ - str r0, [r4, 0x1C]\n\ - movs r0, 0\n\ - strh r0, [r4, 0x24]\n\ - b _0817FA5E\n\ - .pool\n\ + push {r4,lr}\n\ + adds r4, r0, 0\n\ + movs r0, 0x32\n\ + ldrsh r1, [r4, r0]\n\ + movs r0, 0xC0\n\ + lsls r0, 1\n\ + cmp r1, r0\n\ + ble _0817FA14\n\ + ldr r0, =SpriteCB_SetDummyOnAnimEnd\n\ + str r0, [r4, 0x1C]\n\ + movs r0, 0\n\ + strh r0, [r4, 0x24]\n\ + b _0817FA5E\n\ + .pool\n\ _0817FA14:\n\ - adds r0, r1, 0\n\ - cmp r1, 0\n\ - bge _0817FA1C\n\ - adds r0, 0x7F\n\ + adds r0, r1, 0\n\ + cmp r1, 0\n\ + bge _0817FA1C\n\ + adds r0, 0x7F\n\ _0817FA1C:\n\ - asrs r2, r0, 7\n\ - lsls r0, r2, 16\n\ - asrs r0, 16\n\ - cmp r0, 0\n\ - blt _0817FA60\n\ - cmp r0, 0x1\n\ - ble _0817FA48\n\ - cmp r0, 0x3\n\ - bgt _0817FA60\n\ - ldr r2, =0xffffff00\n\ - adds r1, r2\n\ - lsls r0, r1, 16\n\ - asrs r0, 16\n\ - movs r1, 0x2E\n\ - ldrsh r2, [r4, r1]\n\ - lsls r1, r2, 1\n\ - adds r1, r2\n\ - lsls r1, 16\n\ - b _0817FA56\n\ - .pool\n\ + asrs r2, r0, 7\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + cmp r0, 0\n\ + blt _0817FA60\n\ + cmp r0, 0x1\n\ + ble _0817FA48\n\ + cmp r0, 0x3\n\ + bgt _0817FA60\n\ + ldr r2, =0xffffff00\n\ + adds r1, r2\n\ + lsls r0, r1, 16\n\ + asrs r0, 16\n\ + movs r1, 0x2E\n\ + ldrsh r2, [r4, r1]\n\ + lsls r1, r2, 1\n\ + adds r1, r2\n\ + lsls r1, 16\n\ + b _0817FA56\n\ + .pool\n\ _0817FA48:\n\ - lsls r0, r2, 7\n\ - subs r0, r1, r0\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - movs r2, 0x2E\n\ - ldrsh r1, [r4, r2]\n\ - lsls r1, 17\n\ + lsls r0, r2, 7\n\ + subs r0, r1, r0\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + movs r2, 0x2E\n\ + ldrsh r1, [r4, r2]\n\ + lsls r1, 17\n\ _0817FA56:\n\ - asrs r1, 16\n\ - bl Sin\n\ - negs r0, r0\n\ + asrs r1, 16\n\ + bl Sin\n\ + negs r0, r0\n\ _0817FA5E:\n\ - strh r0, [r4, 0x26]\n\ + strh r0, [r4, 0x26]\n\ _0817FA60:\n\ - ldrh r0, [r4, 0x32]\n\ - adds r0, 0xC\n\ - strh r0, [r4, 0x32]\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ + ldrh r0, [r4, 0x32]\n\ + adds r0, 0xC\n\ + strh r0, [r4, 0x32]\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided"); } diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 994cc520e..c24c8a898 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -469,446 +469,446 @@ const u8 *const gMonIconTable[] = const u8 gMonIconPaletteIndices[] = { - 0, // ?????????? - 1, // Bulbasaur - 1, // Ivysaur - 1, // Venusaur - 0, // Charmander - 0, // Charmeleon - 0, // Charizard - 0, // Squirtle - 2, // Wartortle - 2, // Blastoise - 1, // Caterpie - 1, // Metapod - 0, // Butterfree - 1, // Weedle - 2, // Kakuna - 2, // Beedrill - 0, // Pidgey - 0, // Pidgeotto - 0, // Pidgeot - 2, // Rattata - 1, // Raticate - 0, // Spearow - 0, // Fearow - 2, // Ekans - 2, // Arbok - 2, // Pikachu - 0, // Raichu - 2, // Sandshrew - 2, // Sandslash - 2, // Nidoran♀ - 2, // Nidorina - 2, // Nidoqueen - 2, // Nidoran♂ - 2, // Nidorino - 2, // Nidoking - 0, // Clefairy - 0, // Clefable - 2, // Vulpix - 1, // Ninetales - 0, // Jigglypuff - 0, // Wigglytuff - 2, // Zubat - 2, // Golbat - 1, // Oddish - 0, // Gloom - 0, // Vileplume - 0, // Paras - 0, // Parasect - 0, // Venonat - 2, // Venomoth - 2, // Diglett - 2, // Dugtrio - 1, // Meowth - 1, // Persian - 1, // Psyduck - 2, // Golduck - 1, // Mankey - 2, // Primeape - 0, // Growlithe - 0, // Arcanine - 0, // Poliwag - 0, // Poliwhirl - 0, // Poliwrath - 2, // Abra - 2, // Kadabra - 2, // Alakazam - 0, // Machop - 2, // Machoke - 0, // Machamp - 1, // Bellsprout - 1, // Weepinbell - 1, // Victreebel - 2, // Tentacool - 2, // Tentacruel - 1, // Geodude - 1, // Graveler - 1, // Golem - 0, // Ponyta - 0, // Rapidash - 0, // Slowpoke - 0, // Slowbro - 0, // Magnemite - 0, // Magneton - 1, // Farfetch'd - 2, // Doduo - 2, // Dodrio - 2, // Seel - 2, // Dewgong - 2, // Grimer - 2, // Muk - 2, // Shellder - 2, // Cloyster - 2, // Gastly - 2, // Haunter - 2, // Gengar - 2, // Onix - 2, // Drowzee - 1, // Hypno - 2, // Krabby - 2, // Kingler - 0, // Voltorb - 0, // Electrode - 0, // Exeggcute - 1, // Exeggutor - 1, // Cubone - 1, // Marowak - 2, // Hitmonlee - 2, // Hitmonchan - 1, // Lickitung - 2, // Koffing - 2, // Weezing - 1, // Rhyhorn - 1, // Rhydon - 0, // Chansey - 0, // Tangela - 1, // Kangaskhan - 0, // Horsea - 0, // Seadra - 0, // Goldeen - 0, // Seaking - 2, // Staryu - 2, // Starmie - 0, // Mr. mime - 1, // Scyther - 2, // Jynx - 1, // Electabuzz - 0, // Magmar - 2, // Pinsir - 2, // Tauros - 0, // Magikarp - 0, // Gyarados - 2, // Lapras - 2, // Ditto - 2, // Eevee - 0, // Vaporeon - 0, // Jolteon - 0, // Flareon - 0, // Porygon - 0, // Omanyte - 0, // Omastar - 2, // Kabuto - 2, // Kabutops - 0, // Aerodactyl - 1, // Snorlax - 0, // Articuno - 0, // Zapdos - 0, // Moltres - 0, // Dratini - 0, // Dragonair - 2, // Dragonite - 2, // Mewtwo - 0, // Mew - 1, // Chikorita - 1, // Bayleef - 1, // Meganium - 1, // Cyndaquil - 1, // Quilava - 1, // Typhlosion - 2, // Totodile - 2, // Croconaw - 2, // Feraligatr - 2, // Sentret - 2, // Furret - 2, // Hoothoot - 2, // Noctowl - 0, // Ledyba - 0, // Ledian - 1, // Spinarak - 0, // Ariados - 2, // Crobat - 2, // Chinchou - 0, // Lanturn - 0, // Pichu - 0, // Cleffa - 1, // Igglybuff - 2, // Togepi - 2, // Togetic - 0, // Natu - 0, // Xatu - 2, // Mareep - 0, // Flaaffy - 0, // Ampharos - 1, // Bellossom - 2, // Marill - 2, // Azumarill - 1, // Sudowoodo - 1, // Politoed - 1, // Hoppip - 1, // Skiploom - 2, // Jumpluff - 2, // Aipom - 1, // Sunkern - 1, // Sunflora - 1, // Yanma - 0, // Wooper - 0, // Quagsire - 2, // Espeon - 2, // Umbreon - 2, // Murkrow - 0, // Slowking - 0, // Misdreavus - 0, // Unown A - 0, // Wobbuffet - 1, // Girafarig - 0, // Pineco - 2, // Forretress - 2, // Dunsparce - 2, // Gligar - 0, // Steelix - 0, // Snubbull - 2, // Granbull - 0, // Qwilfish - 0, // Scizor - 1, // Shuckle - 2, // Heracross - 0, // Sneasel - 0, // Teddiursa - 2, // Ursaring - 0, // Slugma - 0, // Magcargo - 2, // Swinub - 2, // Piloswine - 0, // Corsola - 0, // Remoraid - 0, // Octillery - 0, // Delibird - 2, // Mantine - 0, // Skarmory - 0, // Houndour - 0, // Houndoom - 0, // Kingdra - 0, // Phanpy - 0, // Donphan - 0, // Porygon2 - 2, // Stantler - 1, // Smeargle - 2, // Tyrogue - 2, // Hitmontop - 1, // Smoochum - 1, // Elekid - 1, // Magby - 1, // Miltank - 1, // Blissey - 0, // Raikou - 2, // Entei - 0, // Suicune - 1, // Larvitar - 0, // Pupitar - 1, // Tyranitar - 0, // Lugia - 1, // Ho-Oh - 1, // Celebi - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 0, // ? - 1, // Treecko - 0, // Grovyle - 1, // Sceptile - 0, // Torchic - 0, // Combusken - 0, // Blaziken - 0, // Mudkip - 0, // Marshtomp - 0, // Swampert - 2, // Poochyena - 2, // Mightyena - 2, // Zigzagoon - 2, // Linoone - 0, // Wurmple - 2, // Silcoon - 0, // Beautifly - 2, // Cascoon - 1, // Dustox - 1, // Lotad - 1, // Lombre - 1, // Ludicolo - 1, // Seedot - 1, // Nuzleaf - 0, // Shiftry - 1, // Nincada - 1, // Ninjask - 1, // Shedinja - 2, // Taillow - 2, // Swellow - 1, // Shroomish - 1, // Breloom - 1, // Spinda - 0, // Wingull - 0, // Pelipper - 2, // Surskit - 0, // Masquerain - 2, // Wailmer - 0, // Wailord - 0, // Skitty - 2, // Delcatty - 1, // Kecleon - 1, // Baltoy - 0, // Claydol - 0, // Nosepass - 1, // Torkoal - 2, // Sableye - 0, // Barboach - 0, // Whiscash - 0, // Luvdisc - 0, // Corphish - 0, // Crawdaunt - 2, // Feebas - 0, // Milotic - 0, // Carvanha - 0, // Sharpedo - 1, // Trapinch - 1, // Vibrava - 1, // Flygon - 2, // Makuhita - 1, // Hariyama - 1, // Electrike - 0, // Manectric - 1, // Numel - 0, // Camerupt - 2, // Spheal - 2, // Sealeo - 0, // Walrein - 1, // Cacnea - 1, // Cacturne - 2, // Snorunt - 0, // Glalie - 1, // Lunatone - 0, // Solrock - 2, // Azurill - 0, // Spoink - 2, // Grumpig - 0, // Plusle - 0, // Minun - 2, // Mawile - 0, // Meditite - 0, // Medicham - 0, // Swablu - 0, // Altaria - 0, // Wynaut - 0, // Duskull - 0, // Dusclops - 0, // Roselia - 2, // Slakoth - 2, // Vigoroth - 1, // Slaking - 1, // Gulpin - 2, // Swalot - 1, // Tropius - 0, // Whismur - 2, // Loudred - 2, // Exploud - 0, // Clamperl - 0, // Huntail - 0, // Gorebyss - 0, // Absol - 0, // Shuppet - 0, // Banette - 2, // Seviper - 0, // Zangoose - 1, // Relicanth - 2, // Aron - 2, // Lairon - 2, // Aggron - 0, // Castform - 0, // Volbeat - 2, // Illumise - 2, // Lileep - 0, // Cradily - 0, // Anorith - 0, // Armaldo - 1, // Ralts - 1, // Kirlia - 1, // Gardevoir - 2, // Bagon - 2, // Shelgon - 0, // Salamence - 0, // Beldum - 0, // Metang - 0, // Metagross - 2, // Regirock - 2, // Regice - 2, // Registeel - 2, // Kyogre - 0, // Groudon - 1, // Rayquaza - 0, // Latias - 2, // Latios - 0, // Jirachi - 0, // Deoxys - 0, // Chimecho - 1, // Egg - 0, // Unown B - 0, // Unown C - 0, // Unown D - 0, // Unown E - 0, // Unown F - 0, // Unown G - 0, // Unown H - 0, // Unown I - 0, // Unown J - 0, // Unown K - 0, // Unown L - 0, // Unown M - 0, // Unown N - 0, // Unown O - 0, // Unown P - 0, // Unown Q - 0, // Unown R - 0, // Unown S - 0, // Unown T - 0, // Unown U - 0, // Unown V - 0, // Unown W - 0, // Unown X - 0, // Unown Y - 0, // Unown Z - 0, // Unown Exclamation Mark - 0, // Unown Question Mark + [SPECIES_NONE] = 0, + [SPECIES_BULBASAUR] = 1, + [SPECIES_IVYSAUR] = 1, + [SPECIES_VENUSAUR] = 1, + [SPECIES_CHARMANDER] = 0, + [SPECIES_CHARMELEON] = 0, + [SPECIES_CHARIZARD] = 0, + [SPECIES_SQUIRTLE] = 0, + [SPECIES_WARTORTLE] = 2, + [SPECIES_BLASTOISE] = 2, + [SPECIES_CATERPIE] = 1, + [SPECIES_METAPOD] = 1, + [SPECIES_BUTTERFREE] = 0, + [SPECIES_WEEDLE] = 1, + [SPECIES_KAKUNA] = 2, + [SPECIES_BEEDRILL] = 2, + [SPECIES_PIDGEY] = 0, + [SPECIES_PIDGEOTTO] = 0, + [SPECIES_PIDGEOT] = 0, + [SPECIES_RATTATA] = 2, + [SPECIES_RATICATE] = 1, + [SPECIES_SPEAROW] = 0, + [SPECIES_FEAROW] = 0, + [SPECIES_EKANS] = 2, + [SPECIES_ARBOK] = 2, + [SPECIES_PIKACHU] = 2, + [SPECIES_RAICHU] = 0, + [SPECIES_SANDSHREW] = 2, + [SPECIES_SANDSLASH] = 2, + [SPECIES_NIDORAN_F] = 2, + [SPECIES_NIDORINA] = 2, + [SPECIES_NIDOQUEEN] = 2, + [SPECIES_NIDORAN_M] = 2, + [SPECIES_NIDORINO] = 2, + [SPECIES_NIDOKING] = 2, + [SPECIES_CLEFAIRY] = 0, + [SPECIES_CLEFABLE] = 0, + [SPECIES_VULPIX] = 2, + [SPECIES_NINETALES] = 1, + [SPECIES_JIGGLYPUFF] = 0, + [SPECIES_WIGGLYTUFF] = 0, + [SPECIES_ZUBAT] = 2, + [SPECIES_GOLBAT] = 2, + [SPECIES_ODDISH] = 1, + [SPECIES_GLOOM] = 0, + [SPECIES_VILEPLUME] = 0, + [SPECIES_PARAS] = 0, + [SPECIES_PARASECT] = 0, + [SPECIES_VENONAT] = 0, + [SPECIES_VENOMOTH] = 2, + [SPECIES_DIGLETT] = 2, + [SPECIES_DUGTRIO] = 2, + [SPECIES_MEOWTH] = 1, + [SPECIES_PERSIAN] = 1, + [SPECIES_PSYDUCK] = 1, + [SPECIES_GOLDUCK] = 2, + [SPECIES_MANKEY] = 1, + [SPECIES_PRIMEAPE] = 2, + [SPECIES_GROWLITHE] = 0, + [SPECIES_ARCANINE] = 0, + [SPECIES_POLIWAG] = 0, + [SPECIES_POLIWHIRL] = 0, + [SPECIES_POLIWRATH] = 0, + [SPECIES_ABRA] = 2, + [SPECIES_KADABRA] = 2, + [SPECIES_ALAKAZAM] = 2, + [SPECIES_MACHOP] = 0, + [SPECIES_MACHOKE] = 2, + [SPECIES_MACHAMP] = 0, + [SPECIES_BELLSPROUT] = 1, + [SPECIES_WEEPINBELL] = 1, + [SPECIES_VICTREEBEL] = 1, + [SPECIES_TENTACOOL] = 2, + [SPECIES_TENTACRUEL] = 2, + [SPECIES_GEODUDE] = 1, + [SPECIES_GRAVELER] = 1, + [SPECIES_GOLEM] = 1, + [SPECIES_PONYTA] = 0, + [SPECIES_RAPIDASH] = 0, + [SPECIES_SLOWPOKE] = 0, + [SPECIES_SLOWBRO] = 0, + [SPECIES_MAGNEMITE] = 0, + [SPECIES_MAGNETON] = 0, + [SPECIES_FARFETCHD] = 1, + [SPECIES_DODUO] = 2, + [SPECIES_DODRIO] = 2, + [SPECIES_SEEL] = 2, + [SPECIES_DEWGONG] = 2, + [SPECIES_GRIMER] = 2, + [SPECIES_MUK] = 2, + [SPECIES_SHELLDER] = 2, + [SPECIES_CLOYSTER] = 2, + [SPECIES_GASTLY] = 2, + [SPECIES_HAUNTER] = 2, + [SPECIES_GENGAR] = 2, + [SPECIES_ONIX] = 2, + [SPECIES_DROWZEE] = 2, + [SPECIES_HYPNO] = 1, + [SPECIES_KRABBY] = 2, + [SPECIES_KINGLER] = 2, + [SPECIES_VOLTORB] = 0, + [SPECIES_ELECTRODE] = 0, + [SPECIES_EXEGGCUTE] = 0, + [SPECIES_EXEGGUTOR] = 1, + [SPECIES_CUBONE] = 1, + [SPECIES_MAROWAK] = 1, + [SPECIES_HITMONLEE] = 2, + [SPECIES_HITMONCHAN] = 2, + [SPECIES_LICKITUNG] = 1, + [SPECIES_KOFFING] = 2, + [SPECIES_WEEZING] = 2, + [SPECIES_RHYHORN] = 1, + [SPECIES_RHYDON] = 1, + [SPECIES_CHANSEY] = 0, + [SPECIES_TANGELA] = 0, + [SPECIES_KANGASKHAN] = 1, + [SPECIES_HORSEA] = 0, + [SPECIES_SEADRA] = 0, + [SPECIES_GOLDEEN] = 0, + [SPECIES_SEAKING] = 0, + [SPECIES_STARYU] = 2, + [SPECIES_STARMIE] = 2, + [SPECIES_MR_MIME] = 0, + [SPECIES_SCYTHER] = 1, + [SPECIES_JYNX] = 2, + [SPECIES_ELECTABUZZ] = 1, + [SPECIES_MAGMAR] = 0, + [SPECIES_PINSIR] = 2, + [SPECIES_TAUROS] = 2, + [SPECIES_MAGIKARP] = 0, + [SPECIES_GYARADOS] = 0, + [SPECIES_LAPRAS] = 2, + [SPECIES_DITTO] = 2, + [SPECIES_EEVEE] = 2, + [SPECIES_VAPOREON] = 0, + [SPECIES_JOLTEON] = 0, + [SPECIES_FLAREON] = 0, + [SPECIES_PORYGON] = 0, + [SPECIES_OMANYTE] = 0, + [SPECIES_OMASTAR] = 0, + [SPECIES_KABUTO] = 2, + [SPECIES_KABUTOPS] = 2, + [SPECIES_AERODACTYL] = 0, + [SPECIES_SNORLAX] = 1, + [SPECIES_ARTICUNO] = 0, + [SPECIES_ZAPDOS] = 0, + [SPECIES_MOLTRES] = 0, + [SPECIES_DRATINI] = 0, + [SPECIES_DRAGONAIR] = 0, + [SPECIES_DRAGONITE] = 2, + [SPECIES_MEWTWO] = 2, + [SPECIES_MEW] = 0, + [SPECIES_CHIKORITA] = 1, + [SPECIES_BAYLEEF] = 1, + [SPECIES_MEGANIUM] = 1, + [SPECIES_CYNDAQUIL] = 1, + [SPECIES_QUILAVA] = 1, + [SPECIES_TYPHLOSION] = 1, + [SPECIES_TOTODILE] = 2, + [SPECIES_CROCONAW] = 2, + [SPECIES_FERALIGATR] = 2, + [SPECIES_SENTRET] = 2, + [SPECIES_FURRET] = 2, + [SPECIES_HOOTHOOT] = 2, + [SPECIES_NOCTOWL] = 2, + [SPECIES_LEDYBA] = 0, + [SPECIES_LEDIAN] = 0, + [SPECIES_SPINARAK] = 1, + [SPECIES_ARIADOS] = 0, + [SPECIES_CROBAT] = 2, + [SPECIES_CHINCHOU] = 2, + [SPECIES_LANTURN] = 0, + [SPECIES_PICHU] = 0, + [SPECIES_CLEFFA] = 0, + [SPECIES_IGGLYBUFF] = 1, + [SPECIES_TOGEPI] = 2, + [SPECIES_TOGETIC] = 2, + [SPECIES_NATU] = 0, + [SPECIES_XATU] = 0, + [SPECIES_MAREEP] = 2, + [SPECIES_FLAAFFY] = 0, + [SPECIES_AMPHAROS] = 0, + [SPECIES_BELLOSSOM] = 1, + [SPECIES_MARILL] = 2, + [SPECIES_AZUMARILL] = 2, + [SPECIES_SUDOWOODO] = 1, + [SPECIES_POLITOED] = 1, + [SPECIES_HOPPIP] = 1, + [SPECIES_SKIPLOOM] = 1, + [SPECIES_JUMPLUFF] = 2, + [SPECIES_AIPOM] = 2, + [SPECIES_SUNKERN] = 1, + [SPECIES_SUNFLORA] = 1, + [SPECIES_YANMA] = 1, + [SPECIES_WOOPER] = 0, + [SPECIES_QUAGSIRE] = 0, + [SPECIES_ESPEON] = 2, + [SPECIES_UMBREON] = 2, + [SPECIES_MURKROW] = 2, + [SPECIES_SLOWKING] = 0, + [SPECIES_MISDREAVUS] = 0, + [SPECIES_UNOWN] = 0, + [SPECIES_WOBBUFFET] = 0, + [SPECIES_GIRAFARIG] = 1, + [SPECIES_PINECO] = 0, + [SPECIES_FORRETRESS] = 2, + [SPECIES_DUNSPARCE] = 2, + [SPECIES_GLIGAR] = 2, + [SPECIES_STEELIX] = 0, + [SPECIES_SNUBBULL] = 0, + [SPECIES_GRANBULL] = 2, + [SPECIES_QWILFISH] = 0, + [SPECIES_SCIZOR] = 0, + [SPECIES_SHUCKLE] = 1, + [SPECIES_HERACROSS] = 2, + [SPECIES_SNEASEL] = 0, + [SPECIES_TEDDIURSA] = 0, + [SPECIES_URSARING] = 2, + [SPECIES_SLUGMA] = 0, + [SPECIES_MAGCARGO] = 0, + [SPECIES_SWINUB] = 2, + [SPECIES_PILOSWINE] = 2, + [SPECIES_CORSOLA] = 0, + [SPECIES_REMORAID] = 0, + [SPECIES_OCTILLERY] = 0, + [SPECIES_DELIBIRD] = 0, + [SPECIES_MANTINE] = 2, + [SPECIES_SKARMORY] = 0, + [SPECIES_HOUNDOUR] = 0, + [SPECIES_HOUNDOOM] = 0, + [SPECIES_KINGDRA] = 0, + [SPECIES_PHANPY] = 0, + [SPECIES_DONPHAN] = 0, + [SPECIES_PORYGON2] = 0, + [SPECIES_STANTLER] = 2, + [SPECIES_SMEARGLE] = 1, + [SPECIES_TYROGUE] = 2, + [SPECIES_HITMONTOP] = 2, + [SPECIES_SMOOCHUM] = 1, + [SPECIES_ELEKID] = 1, + [SPECIES_MAGBY] = 1, + [SPECIES_MILTANK] = 1, + [SPECIES_BLISSEY] = 1, + [SPECIES_RAIKOU] = 0, + [SPECIES_ENTEI] = 2, + [SPECIES_SUICUNE] = 0, + [SPECIES_LARVITAR] = 1, + [SPECIES_PUPITAR] = 0, + [SPECIES_TYRANITAR] = 1, + [SPECIES_LUGIA] = 0, + [SPECIES_HO_OH] = 1, + [SPECIES_CELEBI] = 1, + [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] = 1, + [SPECIES_GROVYLE] = 0, + [SPECIES_SCEPTILE] = 1, + [SPECIES_TORCHIC] = 0, + [SPECIES_COMBUSKEN] = 0, + [SPECIES_BLAZIKEN] = 0, + [SPECIES_MUDKIP] = 0, + [SPECIES_MARSHTOMP] = 0, + [SPECIES_SWAMPERT] = 0, + [SPECIES_POOCHYENA] = 2, + [SPECIES_MIGHTYENA] = 2, + [SPECIES_ZIGZAGOON] = 2, + [SPECIES_LINOONE] = 2, + [SPECIES_WURMPLE] = 0, + [SPECIES_SILCOON] = 2, + [SPECIES_BEAUTIFLY] = 0, + [SPECIES_CASCOON] = 2, + [SPECIES_DUSTOX] = 1, + [SPECIES_LOTAD] = 1, + [SPECIES_LOMBRE] = 1, + [SPECIES_LUDICOLO] = 1, + [SPECIES_SEEDOT] = 1, + [SPECIES_NUZLEAF] = 1, + [SPECIES_SHIFTRY] = 0, + [SPECIES_NINCADA] = 1, + [SPECIES_NINJASK] = 1, + [SPECIES_SHEDINJA] = 1, + [SPECIES_TAILLOW] = 2, + [SPECIES_SWELLOW] = 2, + [SPECIES_SHROOMISH] = 1, + [SPECIES_BRELOOM] = 1, + [SPECIES_SPINDA] = 1, + [SPECIES_WINGULL] = 0, + [SPECIES_PELIPPER] = 0, + [SPECIES_SURSKIT] = 2, + [SPECIES_MASQUERAIN] = 0, + [SPECIES_WAILMER] = 2, + [SPECIES_WAILORD] = 0, + [SPECIES_SKITTY] = 0, + [SPECIES_DELCATTY] = 2, + [SPECIES_KECLEON] = 1, + [SPECIES_BALTOY] = 1, + [SPECIES_CLAYDOL] = 0, + [SPECIES_NOSEPASS] = 0, + [SPECIES_TORKOAL] = 1, + [SPECIES_SABLEYE] = 2, + [SPECIES_BARBOACH] = 0, + [SPECIES_WHISCASH] = 0, + [SPECIES_LUVDISC] = 0, + [SPECIES_CORPHISH] = 0, + [SPECIES_CRAWDAUNT] = 0, + [SPECIES_FEEBAS] = 2, + [SPECIES_MILOTIC] = 0, + [SPECIES_CARVANHA] = 0, + [SPECIES_SHARPEDO] = 0, + [SPECIES_TRAPINCH] = 1, + [SPECIES_VIBRAVA] = 1, + [SPECIES_FLYGON] = 1, + [SPECIES_MAKUHITA] = 2, + [SPECIES_HARIYAMA] = 1, + [SPECIES_ELECTRIKE] = 1, + [SPECIES_MANECTRIC] = 0, + [SPECIES_NUMEL] = 1, + [SPECIES_CAMERUPT] = 0, + [SPECIES_SPHEAL] = 2, + [SPECIES_SEALEO] = 2, + [SPECIES_WALREIN] = 0, + [SPECIES_CACNEA] = 1, + [SPECIES_CACTURNE] = 1, + [SPECIES_SNORUNT] = 2, + [SPECIES_GLALIE] = 0, + [SPECIES_LUNATONE] = 1, + [SPECIES_SOLROCK] = 0, + [SPECIES_AZURILL] = 2, + [SPECIES_SPOINK] = 0, + [SPECIES_GRUMPIG] = 2, + [SPECIES_PLUSLE] = 0, + [SPECIES_MINUN] = 0, + [SPECIES_MAWILE] = 2, + [SPECIES_MEDITITE] = 0, + [SPECIES_MEDICHAM] = 0, + [SPECIES_SWABLU] = 0, + [SPECIES_ALTARIA] = 0, + [SPECIES_WYNAUT] = 0, + [SPECIES_DUSKULL] = 0, + [SPECIES_DUSCLOPS] = 0, + [SPECIES_ROSELIA] = 0, + [SPECIES_SLAKOTH] = 2, + [SPECIES_VIGOROTH] = 2, + [SPECIES_SLAKING] = 1, + [SPECIES_GULPIN] = 1, + [SPECIES_SWALOT] = 2, + [SPECIES_TROPIUS] = 1, + [SPECIES_WHISMUR] = 0, + [SPECIES_LOUDRED] = 2, + [SPECIES_EXPLOUD] = 2, + [SPECIES_CLAMPERL] = 0, + [SPECIES_HUNTAIL] = 0, + [SPECIES_GOREBYSS] = 0, + [SPECIES_ABSOL] = 0, + [SPECIES_SHUPPET] = 0, + [SPECIES_BANETTE] = 0, + [SPECIES_SEVIPER] = 2, + [SPECIES_ZANGOOSE] = 0, + [SPECIES_RELICANTH] = 1, + [SPECIES_ARON] = 2, + [SPECIES_LAIRON] = 2, + [SPECIES_AGGRON] = 2, + [SPECIES_CASTFORM] = 0, + [SPECIES_VOLBEAT] = 0, + [SPECIES_ILLUMISE] = 2, + [SPECIES_LILEEP] = 2, + [SPECIES_CRADILY] = 0, + [SPECIES_ANORITH] = 0, + [SPECIES_ARMALDO] = 0, + [SPECIES_RALTS] = 1, + [SPECIES_KIRLIA] = 1, + [SPECIES_GARDEVOIR] = 1, + [SPECIES_BAGON] = 2, + [SPECIES_SHELGON] = 2, + [SPECIES_SALAMENCE] = 0, + [SPECIES_BELDUM] = 0, + [SPECIES_METANG] = 0, + [SPECIES_METAGROSS] = 0, + [SPECIES_REGIROCK] = 2, + [SPECIES_REGICE] = 2, + [SPECIES_REGISTEEL] = 2, + [SPECIES_KYOGRE] = 2, + [SPECIES_GROUDON] = 0, + [SPECIES_RAYQUAZA] = 1, + [SPECIES_LATIAS] = 0, + [SPECIES_LATIOS] = 2, + [SPECIES_JIRACHI] = 0, + [SPECIES_DEOXYS] = 0, + [SPECIES_CHIMECHO] = 0, + [SPECIES_EGG] = 1, + [SPECIES_UNOWN_B] = 0, + [SPECIES_UNOWN_C] = 0, + [SPECIES_UNOWN_D] = 0, + [SPECIES_UNOWN_E] = 0, + [SPECIES_UNOWN_F] = 0, + [SPECIES_UNOWN_G] = 0, + [SPECIES_UNOWN_H] = 0, + [SPECIES_UNOWN_I] = 0, + [SPECIES_UNOWN_J] = 0, + [SPECIES_UNOWN_K] = 0, + [SPECIES_UNOWN_L] = 0, + [SPECIES_UNOWN_M] = 0, + [SPECIES_UNOWN_N] = 0, + [SPECIES_UNOWN_O] = 0, + [SPECIES_UNOWN_P] = 0, + [SPECIES_UNOWN_Q] = 0, + [SPECIES_UNOWN_R] = 0, + [SPECIES_UNOWN_S] = 0, + [SPECIES_UNOWN_T] = 0, + [SPECIES_UNOWN_U] = 0, + [SPECIES_UNOWN_V] = 0, + [SPECIES_UNOWN_W] = 0, + [SPECIES_UNOWN_X] = 0, + [SPECIES_UNOWN_Y] = 0, + [SPECIES_UNOWN_Z] = 0, + [SPECIES_UNOWN_EMARK] = 0, + [SPECIES_UNOWN_QMARK] = 0, }; const struct SpritePalette gMonIconPaletteTable[] = @@ -1211,7 +1211,7 @@ void sub_80D304C(u16 offset) if(offset <= 0xA0) { monIconPalettePtr = gMonIconPaletteTable; - for(i = 5; i >= 0 ; i--) + for(i = 5; i >= 0; i--) { LoadPalette(monIconPalettePtr->data, offset, 0x20); offset += 0x10; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 465b97da2..ad56b1678 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1,7 +1,7 @@ #include "global.h" #include "bg.h" #include "event_data.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "gpu_regs.h" #include "international_string_util.h" diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index f152e70a4..f1c248a1a 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -19,7 +19,7 @@ #include "item.h" #include "link.h" #include "m4a.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "mon_markings.h" diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 4783f73c0..b22e1db32 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -5,7 +5,7 @@ #include "graphics.h" #include "bg.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "palette.h" #include "scanline_effect.h" #include "menu.h" @@ -89,13 +89,13 @@ static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y); // const rom data static const TaskFunc sTasksForAnimations[] = { - Task_DuoFightAnim, // RAY_ANIM_DUO_FIGHT_PRE - Task_DuoFightAnim, // RAY_ANIM_DUO_FIGHT - Task_RayTakesFlightAnim, // RAY_ANIM_TAKES_FLIGHT - Task_RayDescendsAnim, // RAY_ANIM_DESCENDS - Task_RayChargesAnim, // RAY_ANIM_CHARGES - Task_RayChasesAwayAnim, // RAY_ANIM_CHACES_AWAY - Task_EndAfterFadeScreen // RAY_ANIM_END + [RAY_ANIM_DUO_FIGHT_PRE] = Task_DuoFightAnim, + [RAY_ANIM_DUO_FIGHT] = Task_DuoFightAnim, + [RAY_ANIM_TAKES_FLIGHT] = Task_RayTakesFlightAnim, + [RAY_ANIM_DESCENDS] = Task_RayDescendsAnim, + [RAY_ANIM_CHARGES] = Task_RayChargesAnim, + [RAY_ANIM_CHACES_AWAY] = Task_RayChasesAwayAnim, + [RAY_ANIM_END] = Task_EndAfterFadeScreen, }; static const struct OamData sOamData_862A6BC = diff --git a/src/record_mixing.c b/src/record_mixing.c index 5f1aef1df..6d5d49265 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1,5 +1,5 @@ #include "global.h" -#include "malloc.h" +#include "alloc.h" #include "random.h" #include "constants/items.h" #include "text.h" @@ -22,7 +22,7 @@ #include "constants/songs.h" #include "menu.h" #include "overworld.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "fldeff_80F9BCC.h" #include "script.h" #include "event_data.h" @@ -647,7 +647,7 @@ static void ReceiveOldManData(OldMan *oldMan, size_t recordSize, u8 which) static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u8 which) { struct EmeraldBattleTowerRecord *dest; - struct UnknownPokemonStruct *btPokemon; + struct BattleTowerPokemon *btPokemon; u32 mixIndices[4]; s32 i; @@ -1848,7 +1848,7 @@ static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src) if (mail->message.itemId != 0) { if (mail->gameLanguage != LANGUAGE_JAPANESE) - PadNameString(mail->OT_name, 0xFC); + PadNameString(mail->OT_name, EXT_CTRL_CODE_BEGIN); ConvertInternationalString(mail->monName, mail->monLanguage); } @@ -1866,7 +1866,7 @@ static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *ds for (i = 0; i < 4; i++) { - struct UnknownPokemonStruct *towerMon = &dst->party[i]; + struct BattleTowerPokemon *towerMon = &dst->party[i]; if (towerMon->species != 0) StripExtCtrlCodes(towerMon->nickname); } diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 5d79cb789..81935b7c6 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -9,7 +9,7 @@ #include "string_util.h" #include "palette.h" #include "save.h" -#include "malloc.h" +#include "alloc.h" #include "util.h" #include "task.h" #include "text.h" @@ -221,7 +221,7 @@ u8 RecordedBattle_GetBattlerAction(u8 battlerId) ResetPaletteFadeControl(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); SetMainCallback2(CB2_QuitRecordedBattle); - return -1; + return 0xFF; } else { diff --git a/src/region_map.c b/src/region_map.c index c5bcd424b..d7b53d631 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -2,7 +2,7 @@ #include "main.h" #include "text.h" #include "menu.h" -#include "malloc.h" +#include "alloc.h" #include "gpu_regs.h" #include "palette.h" #include "party_menu.h" @@ -34,15 +34,6 @@ // Static type declarations -struct RegionMapLocation -{ - u8 x; - u8 y; - u8 width; - u8 height; - const u8 *name; -}; - // Static RAM declarations static EWRAM_DATA struct RegionMap *gRegionMap = NULL; diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c index 1d90448b2..d7c93a75c 100644 --- a/src/reset_save_heap.c +++ b/src/reset_save_heap.c @@ -6,7 +6,7 @@ #include "save.h" #include "new_game.h" #include "overworld.h" -#include "malloc.h" +#include "alloc.h" void sub_81700F8(void) { diff --git a/src/roamer.c b/src/roamer.c index fbd25bfad..be45642e0 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -1,9 +1,10 @@ #include "global.h" -#include "roamer.h" +#include "event_data.h" #include "pokemon.h" #include "random.h" +#include "roamer.h" +#include "constants/maps.h" #include "constants/species.h" -#include "event_data.h" enum { @@ -16,26 +17,26 @@ EWRAM_DATA static u8 sRoamerLocation[2] = {0}; static const u8 sRoamerLocations[][6] = { - { 0x19, 0x1A, 0x20, 0x21, 0x31, 0xFF }, - { 0x1A, 0x19, 0x20, 0x21, 0xFF, 0xFF }, - { 0x20, 0x1A, 0x19, 0x21, 0xFF, 0xFF }, - { 0x21, 0x20, 0x19, 0x1A, 0x22, 0x26 }, - { 0x22, 0x21, 0x23, 0xFF, 0xFF, 0xFF }, - { 0x23, 0x22, 0x24, 0xFF, 0xFF, 0xFF }, - { 0x24, 0x23, 0x25, 0x26, 0xFF, 0xFF }, - { 0x25, 0x24, 0x26, 0xFF, 0xFF, 0xFF }, - { 0x26, 0x25, 0x21, 0xFF, 0xFF, 0xFF }, - { 0x27, 0x24, 0x28, 0x29, 0xFF, 0xFF }, - { 0x28, 0x27, 0x2A, 0xFF, 0xFF, 0xFF }, - { 0x29, 0x27, 0x2A, 0xFF, 0xFF, 0xFF }, - { 0x2A, 0x28, 0x29, 0x2B, 0xFF, 0xFF }, - { 0x2B, 0x2A, 0x2C, 0xFF, 0xFF, 0xFF }, - { 0x2C, 0x2B, 0x2D, 0xFF, 0xFF, 0xFF }, - { 0x2D, 0x2C, 0x2E, 0xFF, 0xFF, 0xFF }, - { 0x2E, 0x2D, 0x2F, 0xFF, 0xFF, 0xFF }, - { 0x2F, 0x2E, 0x30, 0xFF, 0xFF, 0xFF }, - { 0x30, 0x2F, 0x31, 0xFF, 0xFF, 0xFF }, - { 0x31, 0x30, 0x19, 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE110), MAP_NUM(ROUTE111), MAP_NUM(ROUTE117), MAP_NUM(ROUTE118), MAP_NUM(ROUTE134), 0xFF }, + { MAP_NUM(ROUTE111), MAP_NUM(ROUTE110), MAP_NUM(ROUTE117), MAP_NUM(ROUTE118), 0xFF, 0xFF }, + { MAP_NUM(ROUTE117), MAP_NUM(ROUTE111), MAP_NUM(ROUTE110), MAP_NUM(ROUTE118), 0xFF, 0xFF }, + { MAP_NUM(ROUTE118), MAP_NUM(ROUTE117), MAP_NUM(ROUTE110), MAP_NUM(ROUTE111), MAP_NUM(ROUTE119), MAP_NUM(ROUTE123) }, + { MAP_NUM(ROUTE119), MAP_NUM(ROUTE118), MAP_NUM(ROUTE120), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE120), MAP_NUM(ROUTE119), MAP_NUM(ROUTE121), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE121), MAP_NUM(ROUTE120), MAP_NUM(ROUTE122), MAP_NUM(ROUTE123), 0xFF, 0xFF }, + { MAP_NUM(ROUTE122), MAP_NUM(ROUTE121), MAP_NUM(ROUTE123), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE123), MAP_NUM(ROUTE122), MAP_NUM(ROUTE118), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE124), MAP_NUM(ROUTE121), MAP_NUM(ROUTE125), MAP_NUM(ROUTE126), 0xFF, 0xFF }, + { MAP_NUM(ROUTE125), MAP_NUM(ROUTE124), MAP_NUM(ROUTE127), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE126), MAP_NUM(ROUTE124), MAP_NUM(ROUTE127), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE127), MAP_NUM(ROUTE125), MAP_NUM(ROUTE126), MAP_NUM(ROUTE128), 0xFF, 0xFF }, + { MAP_NUM(ROUTE128), MAP_NUM(ROUTE127), MAP_NUM(ROUTE129), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE129), MAP_NUM(ROUTE128), MAP_NUM(ROUTE130), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE130), MAP_NUM(ROUTE129), MAP_NUM(ROUTE131), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE131), MAP_NUM(ROUTE130), MAP_NUM(ROUTE132), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE132), MAP_NUM(ROUTE131), MAP_NUM(ROUTE133), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE133), MAP_NUM(ROUTE132), MAP_NUM(ROUTE134), 0xFF, 0xFF, 0xFF }, + { MAP_NUM(ROUTE134), MAP_NUM(ROUTE133), MAP_NUM(ROUTE110), 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, }; @@ -79,7 +80,7 @@ static void CreateInitialRoamerMon(bool16 createLatios) (&gSaveBlock1Ptr->roamer)->smart = GetMonData(&gEnemyParty[0], MON_DATA_SMART); (&gSaveBlock1Ptr->roamer)->tough = GetMonData(&gEnemyParty[0], MON_DATA_TOUGH); sRoamerLocation[MAP_GRP] = 0; - sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % 20][0]; + sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0]; } void InitRoamer(void) @@ -103,20 +104,20 @@ void UpdateLocationHistoryForRoamer(void) void RoamerMoveToOtherLocationSet(void) { - u8 val = 0; + u8 mapNum = 0; struct Roamer *roamer = &gSaveBlock1Ptr->roamer; if (!roamer->active) return; - sRoamerLocation[MAP_GRP] = val; + sRoamerLocation[MAP_GRP] = 0; while (1) { - val = sRoamerLocations[Random() % 20][0]; - if (sRoamerLocation[MAP_NUM] != val) + mapNum = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0]; + if (sRoamerLocation[MAP_NUM] != mapNum) { - sRoamerLocation[MAP_NUM] = val; + sRoamerLocation[MAP_NUM] = mapNum; return; } } @@ -137,7 +138,7 @@ void RoamerMove(void) if (!roamer->active) return; - while (locSet < 20) + while (locSet < (ARRAY_COUNT(sRoamerLocations) - 1)) { if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0]) { diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index b7ca087fd..deec55c9d 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -7,7 +7,7 @@ #include "link.h" #include "link_rfu.h" #include "librfu.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "list_menu.h" #include "menu_helpers.h" @@ -32,14 +32,14 @@ #include "decompress.h" #include "start_menu.h" #include "data2.h" -#include "field_screen.h" +#include "field_screen_effect.h" extern void HealPlayerParty(void); struct UnkStruct_Shared { struct UnkLinkRfuStruct_02022B14 field_0; - u8 needingPadding[3]; + u8 needingPadding[2]; u8 playerName[PLAYER_NAME_LENGTH + 1]; }; @@ -63,7 +63,7 @@ struct UnkStruct_x20 struct UnkStruct_Main0 { - struct UnkStruct_x20 arr[5]; + struct UnkStruct_x20 arr[8]; }; struct UnkStruct_Main4 @@ -153,9 +153,7 @@ struct UnkStruct_URoom u16 field_4C[6]; u8 field_58[0x98 - 0x58]; u16 field_98; - u16 field_9A; - u16 field_9C; - u16 field_9E; + u16 field_9A[3]; struct UnkStruct_8019BA8 field_A0[8]; }; @@ -182,17 +180,18 @@ struct TradeUnkStruct }; 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 struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; - +extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; extern u8 gUnknown_03005DB4; +extern u8 gSelectedOrderFromParty[]; +extern struct MailStruct gUnknown_020321C0[PARTY_SIZE]; +extern u8 gUnknown_02032298[2]; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -212,7 +211,7 @@ 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_Main0 *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); @@ -265,7 +264,7 @@ 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); -u32 sub_8017CF8(u32 arg1, struct UnkStruct_Main0 *arg0); +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); @@ -282,7 +281,10 @@ 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 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]; @@ -376,7 +378,9 @@ extern const u8 *const gUnknown_082EE82C[][4]; extern const u8 *const gUnknown_082EE24C[][2]; -extern const struct UnkStruct_Shared gUnknown_082F045C[]; +extern const struct UnkStruct_Shared gUnknown_082F045C; + +extern const u8 *const gUnknown_082F04D8[22]; // code void nullsub_89(void) @@ -484,7 +488,7 @@ void sub_8012780(u8 taskId) data->field_0 = AllocZeroed(0xA0); data->field_8 = AllocZeroed(0xA0); sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0, 5); + 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; @@ -1008,7 +1012,7 @@ u8 sub_8013398(struct UnkStruct_Main0 *arg0) ret = copiedCount; for (; copiedCount < 5; copiedCount++) { - data->field_0->arr[copiedCount].unk = gUnknown_082F045C[0]; + 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; @@ -1068,7 +1072,7 @@ void sub_80134E8(u8 taskId) break; case 2: sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0, 16); + 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); @@ -1370,7 +1374,7 @@ void sub_8013C7C(u8 taskId) break; case 2: sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0, 16); + sub_8017580(data->field_0->arr, 16); data->field_11 = sub_8016FC0(data->field_4, 0xFF); data->field_F = 0; data->state = 3; @@ -1395,8 +1399,6 @@ void sub_8013C7C(u8 taskId) } } -extern const u8 *const gUnknown_082F04D8[22]; - bool32 sub_8013D88(u32 arg0, u32 id) { if (id == 0xFF) @@ -1518,9 +1520,6 @@ u8 sub_8013F78(void) return taskId; } -extern struct MailStruct gUnknown_020321C0[PARTY_SIZE]; -extern u8 gUnknown_02032298[2]; - void sub_8013F90(u8 taskId) { u32 monId = sub_8018120(&gUnknown_02022C40, GetMultiplayerId()); @@ -1784,8 +1783,6 @@ void sub_801440C(u8 taskId) ScriptContext2_Disable(); } -extern u8 gSelectedOrderFromParty[]; - void sub_8014790(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -1934,7 +1931,7 @@ void sub_8014A40(u8 taskId) data->field_0 = AllocZeroed(0xA0); data->field_8 = AllocZeroed(0xA0); sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0, 5); + 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; @@ -2143,7 +2140,7 @@ void sub_8014F48(u8 taskId) break; case 2: sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0, 16); + sub_8017580(data->field_0->arr, 16); data->field_11 = sub_8016FC0(data->field_4, data->field_12 + 7); winTemplate1 = gUnknown_082F0174; @@ -2312,7 +2309,7 @@ void sub_80152F4(u8 taskId) break; case 2: sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0, 16); + sub_8017580(data->field_0->arr, 16); data->field_11 = sub_8016FF0(data->field_4, data->field_12 + 7); if (data->field_13 != 0) @@ -2510,13 +2507,11 @@ void sub_80156C8(struct UnkStruct_URoom *data) memcpy(data->field_0, &gDecompressionBuffer[0x3F00], 0x100); } -// Cannot match, please fix later. -/* void sub_80156E0(u8 taskId) { u32 id = 0; s32 var5 = 0; - u32 playerGender = 0; + s32 playerGender = 0; struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom; s16 *taskData = gTasks[taskId].data; @@ -2527,7 +2522,7 @@ void sub_80156E0(u8 taskId) data->field_C = AllocZeroed(0x70); data->field_0 = AllocZeroed(0x100); data->field_8 = AllocZeroed(0x20); - sub_8017580(data->field_0, 8); + 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); @@ -2545,7 +2540,7 @@ void sub_80156E0(u8 taskId) sub_800B488(); OpenLink(); sub_8011C84(); - sub_8017580(data->field_8, 1); + sub_8017580(&data->field_8->arr[0], 1); sub_80175EC(data->field_4, 4); sub_80175EC(data->field_C, 4); gSpecialVar_Result = 0; @@ -2679,7 +2674,7 @@ void sub_80156E0(u8 taskId) 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; + data->field_12 = id; // Should be just 0, but won't match any other way. data->state = 25; break; case 2: @@ -2730,6 +2725,11 @@ void sub_80156E0(u8 taskId) 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) @@ -2742,16 +2742,15 @@ void sub_80156E0(u8 taskId) { data->field_98 = 0; playerGender = sub_8017CF8(taskData[1], data->field_0); - switch (var5) + if (var5 == -2 || var5 == 0x40) { - case -2: - case 0x40: data->field_4C[0] = 0x40; sub_800FE50(data->field_4C); StringCopy(gStringVar4, gUnknown_082EEB80[gLinkPlayers[0].gender]); data->state = 32; - break; - default: + } + else + { gUnknown_02022C2C = var5; gUnknown_02022C2D = (u32)(var5) >> 8; if (gUnknown_02022C2C == 0x41 && !sub_8018024()) @@ -2764,7 +2763,6 @@ void sub_80156E0(u8 taskId) sub_800FE50(data->field_4C); data->state = 27; } - break; } } } @@ -2823,7 +2821,7 @@ void sub_80156E0(u8 taskId) } } break; - case 5: + case 7: id = sub_80179AC(&data->field_0->arr[taskData[1]]); playerGender = sub_8017CF8(taskData[1], data->field_0); @@ -2835,7 +2833,7 @@ void sub_80156E0(u8 taskId) data->state = 41; sub_800ADF8(); data->field_98 = 0; - data->field_9A = 0; + data->field_9A[0] = 0; } break; case 41: @@ -2919,7 +2917,7 @@ void sub_80156E0(u8 taskId) PlaySE(SE_PINPON); sub_800EF7C(); data->state = 12; - data->field_9A = 0; + data->field_9A[0] = 0; break; case 12: if (sub_8011A80()) @@ -3019,7 +3017,7 @@ void sub_80156E0(u8 taskId) gUnknown_02022C2C = 0x40; sub_8015664(0x25, gStringVar4); memset(data->field_4C, 0, sizeof(data->field_4C)); - data->field_9A = 0; + data->field_9A[0] = 0; data->field_98 = 0; } break; @@ -3262,4 +3260,247 @@ void var_800D_set_xB(void) 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/rom_8034C54.c b/src/rom_8034C54.c index 1ef223c69..e175ecc64 100644 --- a/src/rom_8034C54.c +++ b/src/rom_8034C54.c @@ -1,6 +1,6 @@ #include "global.h" #include "rom_8034C54.h" -#include "malloc.h" +#include "alloc.h" #include "decompress.h" #include "main.h" @@ -31,8 +31,6 @@ struct UnkStruct1 struct UnkStruct2 *array; }; -extern struct UnkStruct1 *gUnknown_02022E10; - extern const struct SpriteTemplate gUnknown_0831AC88; // this file's functions @@ -50,6 +48,9 @@ static IWRAM_DATA s32 gUnknown_03000DD4; static IWRAM_DATA s32 gUnknown_03000DD8; static IWRAM_DATA s32 gUnknown_03000DDC; +// ewram +static EWRAM_DATA struct UnkStruct1 *gUnknown_02022E10 = {0}; + // const rom data static const u8 gUnknown_082FF1C8[][4] = { diff --git a/src/rom_81520A8.c b/src/rom_81520A8.c index f6d14d49c..f06823594 100644 --- a/src/rom_81520A8.c +++ b/src/rom_81520A8.c @@ -1,6 +1,6 @@ #include "global.h" #include "rom_81520A8.h" -#include "malloc.h" +#include "alloc.h" #include "main.h" #include "rom_8034C54.h" diff --git a/src/rotating_gate.c b/src/rotating_gate.c index fcced6c8c..3513f092e 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -2,10 +2,11 @@ #include "bike.h" #include "event_data.h" #include "event_object_movement.h" -#include "constants/maps.h" -#include "constants/songs.h" +#include "fieldmap.h" #include "sound.h" #include "sprite.h" +#include "constants/maps.h" +#include "constants/songs.h" #define ROTATING_GATE_TILE_TAG 0x1300 #define ROTATING_GATE_PUZZLE_MAX 12 @@ -638,9 +639,7 @@ static s32 GetCurrentMapRotatingGatePuzzleType(void) static void RotatingGate_ResetAllGateOrientations(void) { s32 i; - u8 *ptr; - - ptr = (u8 *)GetVarPointer(VAR_TEMP_0); + u8 *ptr = (u8 *)GetVarPointer(VAR_TEMP_0); for (i = 0; i < gRotatingGate_PuzzleCount; i++) { @@ -715,12 +714,10 @@ static void RotatingGate_CreateGatesWithinViewport(s16 deltaX, s16 deltaY) s16 y = gSaveBlock1Ptr->pos.y - 2; s16 y2 = gSaveBlock1Ptr->pos.y + 0xe; - s16 x3, y3; - for (i = 0; i < gRotatingGate_PuzzleCount; i++) { - x3 = gRotatingGate_PuzzleConfig[i].x + 7; - y3 = gRotatingGate_PuzzleConfig[i].y + 7; + s16 x3 = gRotatingGate_PuzzleConfig[i].x + 7; + s16 y3 = gRotatingGate_PuzzleConfig[i].y + 7; if (y <= y3 && y2 >= y3 && x <= x3 && x2 >= x3 && gRotatingGate_GateSpriteIds[i] == MAX_SPRITES) @@ -734,11 +731,10 @@ static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY) { struct Sprite *sprite; struct SpriteTemplate template; - const struct RotatingGatePuzzle *gate; u8 spriteId; s16 x, y; - gate = &gRotatingGate_PuzzleConfig[gateId]; + const struct RotatingGatePuzzle *gate = &gRotatingGate_PuzzleConfig[gateId]; if (gate->shape == GATE_SHAPE_L1 || gate->shape == GATE_SHAPE_T1) template = sSpriteTemplate_RotatingGateRegular; @@ -767,12 +763,9 @@ static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY) static void SpriteCallback_RotatingGate(struct Sprite *sprite) { - u8 rotationDirection; - u8 orientation; u8 affineAnimation; - - rotationDirection = sprite->data[1]; - orientation = sprite->data[2]; + u8 rotationDirection = sprite->data[1]; + u8 orientation = sprite->data[2]; RotatingGate_HideGatesOutsideViewport(sprite); @@ -802,10 +795,8 @@ static void SpriteCallback_RotatingGate(struct Sprite *sprite) static void RotatingGate_HideGatesOutsideViewport(struct Sprite *sprite) { - u16 x; - s16 x2; - u16 y; - s16 y2; + u16 x, y; + s16 x2, y2; sprite->invisible = FALSE; x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX; @@ -830,35 +821,27 @@ static void LoadRotatingGatePics(void) LoadSpriteSheets(sRotatingGatesGraphicsTable); } -/* -static*/ void RotatingGate_DestroyGatesOutsideViewport(void) +static void RotatingGate_DestroyGatesOutsideViewport(void) { - s16 x; - s16 x2; - s16 y; - s16 y2; - s16 xGate; - s16 yGate; s32 i; - struct Sprite *sprite; // Same as RotatingGate_CreateGatesWithinViewport - x = gSaveBlock1Ptr->pos.x - 2; - x2 = gSaveBlock1Ptr->pos.x + 0x11; - y = gSaveBlock1Ptr->pos.y - 2; - y2 = gSaveBlock1Ptr->pos.y + 0xe; + s16 x = gSaveBlock1Ptr->pos.x - 2; + s16 x2 = gSaveBlock1Ptr->pos.x + 0x11; + s16 y = gSaveBlock1Ptr->pos.y - 2; + s16 y2 = gSaveBlock1Ptr->pos.y + 0xe; for (i = 0; i < gRotatingGate_PuzzleCount; i++) { - xGate = gRotatingGate_PuzzleConfig[i].x + 7; - yGate = gRotatingGate_PuzzleConfig[i].y + 7; + s16 xGate = gRotatingGate_PuzzleConfig[i].x + 7; + s16 yGate = gRotatingGate_PuzzleConfig[i].y + 7; if (gRotatingGate_GateSpriteIds[i] == MAX_SPRITES) continue; if (xGate < x || xGate > x2 || yGate < y || yGate > y2) { - sprite = &gSprites[gRotatingGate_GateSpriteIds[i]]; + struct Sprite *sprite = &gSprites[gRotatingGate_GateSpriteIds[i]]; FreeSpriteOamMatrix(sprite); DestroySprite(sprite); gRotatingGate_GateSpriteIds[i] = MAX_SPRITES; @@ -866,23 +849,13 @@ static*/ void RotatingGate_DestroyGatesOutsideViewport(void) } } - -#ifdef NONMATCHING -bool8 MapGridIsImpassableAt(s32, s32); //fool the compiler - -static s32 RotatingGate_CanRotate(u8 gateId, s16 rotationDirection) +static s32 RotatingGate_CanRotate(u8 gateId, s32 rotationDirection) { const struct Coords8 *armPos; u8 orientation; - s16 x; - s16 y; + s16 x, y; u8 shape; - u32 shape8; - s32 i; - s32 j; - s32 armOrientation; - const u8 *gateArmCollisionData; - u8 armIndex; + s32 i, j; if (rotationDirection == ROTATE_ANTICLOCKWISE) armPos = sRotatingGate_ArmPositionsAntiClockwiseRotation; @@ -897,166 +870,40 @@ static s32 RotatingGate_CanRotate(u8 gateId, s16 rotationDirection) x = gRotatingGate_PuzzleConfig[gateId].x + 7; y = gRotatingGate_PuzzleConfig[gateId].y + 7; - // Loop through the gate's "arms" clockwise (north, south, east, west) - for (i = GATE_ARM_NORTH, shape8 = shape* 4*2 ; i <= GATE_ARM_WEST; i++) + for (i = GATE_ARM_NORTH; i <= GATE_ARM_WEST; i++) { // Ensure that no part of the arm collides with the map - for (j = 0, armOrientation = orientation + i, gateArmCollisionData = (u8 *)((u32)sRotatingGate_ArmLayout + shape8 + 2*i); j < GATE_ARM_MAX_LENGTH; j++) + for (j = 0; j < GATE_ARM_MAX_LENGTH; j++) { - armIndex = 2 * (armOrientation % 4) + j; + u8 armIndex = 2 * ((orientation + i) % 4) + j; - if (*gateArmCollisionData) + if (sRotatingGate_ArmLayout[shape][2 * i + j]) { - if (MapGridIsImpassableAt(x + armPos[armIndex].deltaX, y + armPos[armIndex].deltaY) == TRUE) + if (MapGridIsImpassableAt(x + armPos[armIndex].x, y + armPos[armIndex].y) == TRUE) return FALSE; } - gateArmCollisionData++; } } return TRUE; } -#else -NAKED -static s32 RotatingGate_CanRotate(u8 a, s16 rotationDirection) -{ - 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, 0xC\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r1, 0x1\n\ - bne _080FBCFC\n\ - ldr r0, =sRotatingGate_ArmPositionsAntiClockwiseRotation\n\ - mov r10, r0\n\ - b _080FBD08\n\ - .pool\n\ -_080FBCFC:\n\ - cmp r1, 0x2\n\ - beq _080FBD04\n\ -_080FBD00:\n\ - movs r0, 0\n\ - b _080FBD98\n\ -_080FBD04:\n\ - ldr r1, =sRotatingGate_ArmPositionsClockwiseRotation\n\ - mov r10, r1\n\ -_080FBD08:\n\ - adds r0, r4, 0\n\ - bl RotatingGate_GetGateOrientation\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp]\n\ - ldr r0, =gRotatingGate_PuzzleConfig\n\ - ldr r1, [r0]\n\ - lsls r0, r4, 3\n\ - adds r0, r1\n\ - ldrb r2, [r0, 0x4]\n\ - ldrh r1, [r0]\n\ - adds r1, 0x7\n\ - ldrh r0, [r0, 0x2]\n\ - adds r0, 0x7\n\ - movs r3, 0\n\ - lsls r2, 3\n\ - str r2, [sp, 0x4]\n\ - lsls r1, 16\n\ - asrs r1, 16\n\ - mov r9, r1\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - mov r8, r0\n\ -_080FBD38:\n\ - movs r6, 0\n\ - ldr r2, [sp]\n\ - adds r7, r2, r3\n\ - lsls r0, r3, 1\n\ - adds r5, r7, 0\n\ - ldr r1, [sp, 0x4]\n\ - adds r0, r1\n\ - ldr r2, =sRotatingGate_ArmLayout\n\ - adds r4, r0, r2\n\ -_080FBD4A:\n\ - adds r0, r5, 0\n\ - cmp r5, 0\n\ - bge _080FBD52\n\ - adds r0, r7, 0x3\n\ -_080FBD52:\n\ - asrs r0, 2\n\ - lsls r0, 2\n\ - subs r0, r5, r0\n\ - lsls r0, 1\n\ - adds r0, r6\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - ldrb r0, [r4]\n\ - cmp r0, 0\n\ - beq _080FBD88\n\ - lsls r1, 2\n\ - add r1, r10\n\ - movs r0, 0\n\ - ldrsb r0, [r1, r0]\n\ - add r0, r9\n\ - ldrb r1, [r1, 0x1]\n\ - lsls r1, 24\n\ - asrs r1, 24\n\ - add r1, r8\n\ - str r3, [sp, 0x8]\n\ - bl MapGridIsImpassableAt\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r3, [sp, 0x8]\n\ - cmp r0, 0x1\n\ - beq _080FBD00\n\ -_080FBD88:\n\ - adds r4, 0x1\n\ - adds r6, 0x1\n\ - cmp r6, 0x1\n\ - ble _080FBD4A\n\ - adds r3, 0x1\n\ - cmp r3, 0x3\n\ - ble _080FBD38\n\ - movs r0, 0x1\n\ -_080FBD98:\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 {r1}\n\ - bx r1\n\ - .pool\n\ -.syntax divided\n"); -} -#endif - static s32 RotatingGate_HasArm(u8 gateId, u8 armInfo) { - s32 isLongArm; - s8 armOrientation; - s32 arm; - s32 shape; - - arm = armInfo >> 1; - isLongArm = armInfo & 1; + s32 arm = armInfo / 2; + s32 isLongArm = armInfo % 2; - armOrientation = (arm - RotatingGate_GetGateOrientation(gateId) + 4) % 4; - shape = gRotatingGate_PuzzleConfig[gateId].shape; + s8 armOrientation = (arm - RotatingGate_GetGateOrientation(gateId) + 4) % 4; + s32 shape = gRotatingGate_PuzzleConfig[gateId].shape; return sRotatingGate_ArmLayout[shape][armOrientation * 2 + isLongArm]; } static void RotatingGate_TriggerRotationAnimation(u8 gateId, s32 rotationDirection) { - struct Sprite *sprite; - if (gRotatingGate_GateSpriteIds[gateId] != MAX_SPRITES) { - sprite = &gSprites[gRotatingGate_GateSpriteIds[gateId]]; + struct Sprite *sprite = &gSprites[gRotatingGate_GateSpriteIds[gateId]]; sprite->data[1] = rotationDirection; sprite->data[2] = RotatingGate_GetGateOrientation(gateId); } @@ -1064,7 +911,7 @@ static void RotatingGate_TriggerRotationAnimation(u8 gateId, s32 rotationDirecti static u8 RotatingGate_GetRotationInfo(u8 direction, s16 x, s16 y) { - register const u8 *ptr; + const u8 *ptr; if (direction == DIR_NORTH) ptr = sRotatingGate_RotationInfoNorth; diff --git a/src/roulette_util.c b/src/roulette_util.c new file mode 100755 index 000000000..a197cfa09 --- /dev/null +++ b/src/roulette_util.c @@ -0,0 +1,700 @@ +#include "global.h" +#include "palette.h" +#include "roulette.h" +#include "roulette_util.h" +#include "util.h" + +void sub_8151678(struct UnkStruct0 *r0) +{ + r0->var00 = 0; + r0->var02 = 0; + memset(&r0->var04, 0, sizeof(r0->var04)); +} + +u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, struct UnkStruct1 *r2) +{ + if (!(r1 < 16) || (r0->var04[r1].var00_7)) + return 0xFF; + + r0->var04[r1].var04.var00 = r2->var00; + r0->var04[r1].var04.var02 = r2->var02; + r0->var04[r1].var04.var04 = r2->var04; + r0->var04[r1].var04.var05 = r2->var05; + r0->var04[r1].var04.var06 = r2->var06; + r0->var04[r1].var04.var07_0 = r2->var07_0; + r0->var04[r1].var04.var07_5 = r2->var07_5; + r0->var04[r1].var04.var07_7 = r2->var07_7; + r0->var04[r1].var00_0 = 0; + r0->var04[r1].var00_7 = 1; + r0->var04[r1].var02 = 0; + r0->var04[r1].var01 = 0; + if (r0->var04[r1].var04.var07_7 < 0) + r0->var04[r1].var03 = 0xFF; + else + r0->var04[r1].var03 = 1; + + return r1; +} + +u8 sub_8151710(struct UnkStruct0 *r0, u8 r1) +{ + if (r1 >= 16) + return 0xFF; + if (!r0->var04[r1].var00_7) + return 0xFF; + + memset(&r0->var04[r1], 0, sizeof(r0->var04[r1])); + return r1; +} + +u8 sub_8151744(struct UnkStruct3 *r0) +{ + u8 i; + u8 returnval; + + for (i = 0; i < r0->var04.var04; i++) + { + struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[r0->var04.var02 + i]; + struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[r0->var04.var02 + i]; + + switch (r0->var00_0) + { + case 1: + if (faded->r + r0->var03 >= 0 && faded->r + r0->var03 < 32) + faded->r += r0->var03; + if (faded->g + r0->var03 >= 0 && faded->g + r0->var03 < 32) + faded->g += r0->var03; + if (faded->b + r0->var03 >= 0 && faded->b + r0->var03 < 32) + faded->b += r0->var03; + break; + case 2: + if (r0->var03 < 0) + { + if (faded->r + r0->var03 >= unfaded->r) + faded->r += r0->var03; + if (faded->g + r0->var03 >= unfaded->g) + faded->g += r0->var03; + if (faded->b + r0->var03 >= unfaded->b) + faded->b += r0->var03; + } + else + { + if (faded->r + r0->var03 <= unfaded->r) + faded->r += r0->var03; + if (faded->g + r0->var03 <= unfaded->g) + faded->g += r0->var03; + if (faded->b + r0->var03 <= unfaded->b) + faded->b += r0->var03; + } + break; + } + } + if ((u32)r0->var02++ != r0->var04.var07_0) + { + returnval = 0; + } + else + { + r0->var02 = 0; + r0->var03 *= -1; + if (r0->var00_0 == 1) + r0->var00_0++; + else + r0->var00_0--; + returnval = 1; + } + return returnval; +} + +u8 sub_815194C(struct UnkStruct3 *r0) +{ + u8 rg2 = 0; + + switch (r0->var00_0) + { + case 1: + for (rg2 = 0; rg2 < r0->var04.var04; rg2++) + gPlttBufferFaded[r0->var04.var02 + rg2] = r0->var04.var00; + r0->var00_0++; + break; + case 2: + for (rg2 = 0; rg2 < r0->var04.var04; rg2++) + gPlttBufferFaded[r0->var04.var02 + rg2] = gPlttBufferUnfaded[r0->var04.var02 + rg2]; + r0->var00_0--; + break; + } + return 1; +} + +void task_tutorial_controls_fadein(struct UnkStruct0 *r0) +{ + u8 i = 0; + + if (r0->var00) + { + for (i = 0; i < 16; i++) + { + if ((r0->var02 >> i) & 1) + { + if (--r0->var04[i].var01 == 0xFF) // if underflow ? + { + if (r0->var04[i].var04.var00 & 0x8000) // PlttData->unused_15 ? + sub_8151744(&r0->var04[i]); + else + sub_815194C(&r0->var04[i]); + + r0->var04[i].var01 = r0->var04[i].var04.var05; + } + } + } + } +} + +void sub_8151A48(struct UnkStruct0 *r0, u16 r1) +{ + u8 i = 0; + + r0->var00++; + for (i = 0; i < 16; i++) + { + if ((r1 >> i) & 1) + { + if (r0->var04[i].var00_7) + { + r0->var02 |= 1 << i; + r0->var04[i].var00_0 = 1; + } + } + } +} + +void sub_8151A9C(struct UnkStruct0 *r0, u16 r1) +{ + u8 i; + + for (i = 0; i < 16; i++) + { + if ((r0->var02 >> i) & 1) + { + if (r0->var04[i].var00_7) + { + if ((r1 >> i) & 1) + { + u32 offset = r0->var04[i].var04.var02; + u16 *faded = &gPlttBufferFaded[offset]; + u16 *unfaded = &gPlttBufferUnfaded[offset]; + memcpy(faded, unfaded, r0->var04[i].var04.var04 * 2); + r0->var04[i].var00_0 = 0; + r0->var04[i].var02 = 0; + r0->var04[i].var01 = 0; + if (r0->var04[i].var04.var07_7 < 0) + r0->var04[i].var03 = 0xFF; + else + r0->var04[i].var03 = 0x1; + } + } + } + } + if (r1 == 0xFFFF) + { + r0->var00 = 0; + r0->var02 = 0; + } + else + { + r0->var02 = r0->var02 & ~r1; + } +} + +void sub_8151B3C(struct InnerStruct203CF18 *arg0) +{ + u8 i = 0; + arg0->unk0 = 0; + memset(&arg0->unk4, 0, sizeof(arg0->unk4)); + for (; i < 16; i++) + { + arg0->unk4[i].unk0 = i; + } +} + +int sub_8151B68(struct InnerStruct203CF18 *arg0, const struct InnerStruct203CF18_3 *arg1) +{ + u8 i = 0; + struct InnerStruct203CF18_2 *r4 = NULL; + + if (!arg0->unk4[0].unk1_7) + { + r4 = &arg0->unk4[0]; + } + else + { + while (++i < 16) + { + if (!arg0->unk4[i].unk1_7) + { + r4 = &arg0->unk4[i]; + break; + } + } + } + + if (r4 == 0) + return 0xFF; + + r4->unk1_0 = 0; + r4->unk1_4 = 0; + r4->unk1_6 = 1; + r4->unk1_7 = 1; + r4->unk2 = 0; + r4->unk3 = 0; + memcpy(&r4->unk4, arg1, sizeof(*arg1)); + return i; +} + +void sub_8151BD4(struct InnerStruct203CF18_2 *arg0) +{ + u16 i; + + if (!arg0->unk1_6 && arg0->unk4.unk7_6) + { + for (i = arg0->unk4.unk2; i < arg0->unk4.unk2 + arg0->unk4.unk4; i++) + gPlttBufferFaded[i] = gPlttBufferUnfaded[i]; + } + + memset(&arg0->unk4, 0, sizeof(arg0->unk4)); + arg0->unk1_0 = 0; + arg0->unk1_4 = 0; + arg0->unk1_5 = 0; + arg0->unk1_6 = 1; + arg0->unk1_7 = 0; + arg0->unk3 = 0; + arg0->unk2 = 0; +} + +void sub_8151C50(struct InnerStruct203CF18 *arg0, u16 arg1, u8 arg2) +{ + u16 i = 0; + + if (!arg2) + { + sub_8151BD4(&arg0->unk4[arg1 & 0xF]); + } + else + { + for (i = 0; i < 16; i++) + { + if ((arg1 & 1) && arg0->unk4[i].unk1_7) + sub_8151BD4(&arg0->unk4[i]); + + arg1 >>= 1; + } + } +} + +// there seems to be a temp var involved inside the first if block +void sub_8151CA8(struct InnerStruct203CF18 *arg0, u16 arg1, u8 arg2) +{ + u8 i = 0; + + if (!arg2) + { + i = arg1 & 0xF; + arg0->unk4[i].unk1_6 = 0; + arg0->unk0 |= 1 << i; + } + else + { + for (i = 0; i < 16; i++) + { + if (!(arg1 & 1) || !arg0->unk4[i].unk1_7 || !arg0->unk4[i].unk1_6) + { + arg1 <<= 1; + } + else + { + arg0->unk4[i].unk1_6 = 0; + arg0->unk0 |= 1 << i; + } + } + } +} + +void sub_8151D28(struct InnerStruct203CF18 *arg0, u16 arg1, u8 arg2) +{ + u16 i; + struct InnerStruct203CF18_2 *var0; + u8 j = 0; + + if (!arg2) + { + var0 = &arg0->unk4[arg1 & 0xF]; + if (!var0->unk1_6 && var0->unk1_7) + { + if (var0->unk4.unk7_6) + { + for (i = var0->unk4.unk2; i < var0->unk4.unk2 + var0->unk4.unk4; i++) + gPlttBufferFaded[i] = gPlttBufferUnfaded[i]; + } + + var0->unk1_6 = 1; + arg0->unk0 &= ~(1 << j); + } + } + else + { + for (j = 0; j < 16; j++) + { + var0 = &arg0->unk4[j]; + if (!(arg1 & 1) || var0->unk1_6 || !var0->unk1_7) + { + arg1 <<= 1; + } + else + { + if (var0->unk4.unk7_6) + { + for (i = var0->unk4.unk2; i < var0->unk4.unk2 + var0->unk4.unk4; i++) + gPlttBufferFaded[i] = gPlttBufferUnfaded[i]; + } + + var0->unk1_6 = 1; + arg0->unk0 &= ~(1 << j); + } + } + } +} + +#ifdef NONMATCHING +void sub_8151E50(struct InnerStruct203CF18 *arg0) +{ + struct InnerStruct203CF18_2 *var0; + u8 i = 0; + + if (arg0->unk0) + { + for (i = 0; i < 16; i++) + { + var0 = &arg0->unk4[i]; + if ((!var0->unk1_6 && var0->unk1_7) && (!gPaletteFade.active || !var0->unk4.unk7_7)) + { + if (--var0->unk2 == 0xFF) + { + var0->unk2 = var0->unk4.unk5; + BlendPalette(var0->unk4.unk2, var0->unk4.unk4, var0->unk1_0, var0->unk4.unk0); + switch (var0->unk4.unk7_4) + { + case 0: + if (var0->unk1_0++ == var0->unk4.unk7_0) + { + var0->unk3++; + var0->unk1_0 = 0; + } + break; + case 1: + if (var0->unk1_4) + { + if (--var0->unk1_0 == 0) + { + var0->unk3++; + var0->unk1_4 ^= 1; + } + } + else + { + if (var0->unk1_0++ == var0->unk4.unk7_0 - 1) + { + var0->unk3++; + var0->unk1_4 ^= 1; + } + } + break; + case 2: + if (var0->unk1_4) + var0->unk1_0 = 0; + else + var0->unk1_0 = var0->unk4.unk7_0; + + var0->unk1_4 ^= 1; + var0->unk3++; + break; + } + + if (var0->unk4.unk6 != 0xFF && var0->unk3 == 0xFF) + sub_8151D28(arg0, var0->unk0, 0); + } + } + } + } +} +#else +NAKED +void sub_8151E50(struct InnerStruct203CF18 *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, 0x4\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + mov r10, r0\n\ + ldr r1, [sp]\n\ + ldrh r0, [r1]\n\ + cmp r0, 0\n\ + bne _08151E6C\n\ + b _08151FF6\n\ +_08151E6C:\n\ + movs r2, 0xF\n\ + mov r9, r2\n\ + movs r3, 0x10\n\ + negs r3, r3\n\ + mov r8, r3\n\ + movs r7, 0x1\n\ +_08151E78:\n\ + mov r5, r10\n\ + lsls r0, r5, 1\n\ + add r0, r10\n\ + lsls r0, 2\n\ + adds r0, 0x4\n\ + ldr r1, [sp]\n\ + adds r4, r1, r0\n\ + ldrb r2, [r4, 0x1]\n\ + movs r3, 0xC0\n\ + ands r3, r2\n\ + cmp r3, 0x80\n\ + beq _08151E92\n\ + b _08151FE6\n\ +_08151E92:\n\ + ldr r0, =gPaletteFade\n\ + ldrb r1, [r0, 0x7]\n\ + adds r0, r3, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08151EA8\n\ + ldrb r0, [r4, 0xB]\n\ + ands r3, r0\n\ + cmp r3, 0\n\ + beq _08151EA8\n\ + b _08151FE6\n\ +_08151EA8:\n\ + ldrb r0, [r4, 0x2]\n\ + subs r0, 0x1\n\ + strb r0, [r4, 0x2]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xFF\n\ + beq _08151EB8\n\ + b _08151FE6\n\ +_08151EB8:\n\ + ldrb r0, [r4, 0x9]\n\ + strb r0, [r4, 0x2]\n\ + ldrh r0, [r4, 0x6]\n\ + ldrb r1, [r4, 0x8]\n\ + lsls r2, 28\n\ + lsrs r2, 28\n\ + ldrh r3, [r4, 0x4]\n\ + bl BlendPalette\n\ + ldrb r5, [r4, 0xB]\n\ + lsls r0, r5, 26\n\ + asrs r0, 30\n\ + cmp r0, 0x1\n\ + beq _08151F16\n\ + cmp r0, 0x1\n\ + bgt _08151EE4\n\ + cmp r0, 0\n\ + beq _08151EEA\n\ + b _08151FD0\n\ + .pool\n\ +_08151EE4:\n\ + cmp r0, 0x2\n\ + beq _08151F92\n\ + b _08151FD0\n\ +_08151EEA:\n\ + ldrb r2, [r4, 0x1]\n\ + lsls r1, r2, 28\n\ + lsrs r0, r1, 28\n\ + adds r0, 0x1\n\ + mov r3, r9\n\ + ands r0, r3\n\ + mov r6, r8\n\ + adds r3, r6, 0\n\ + ands r3, r2\n\ + orrs r3, r0\n\ + strb r3, [r4, 0x1]\n\ + lsrs r1, 28\n\ + lsls r0, r5, 28\n\ + asrs r0, 28\n\ + cmp r1, r0\n\ + bne _08151FD0\n\ + ldrb r0, [r4, 0x3]\n\ + adds r0, 0x1\n\ + strb r0, [r4, 0x3]\n\ + ands r3, r6\n\ + strb r3, [r4, 0x1]\n\ + b _08151FD0\n\ +_08151F16:\n\ + ldrb r3, [r4, 0x1]\n\ + movs r0, 0x10\n\ + ands r0, r3\n\ + cmp r0, 0\n\ + beq _08151F54\n\ + lsls r0, r3, 28\n\ + lsrs r0, 28\n\ + subs r0, 0x1\n\ + mov r5, r9\n\ + ands r0, r5\n\ + mov r2, r8\n\ + ands r2, r3\n\ + orrs r2, r0\n\ + strb r2, [r4, 0x1]\n\ + cmp r0, 0\n\ + bne _08151FD0\n\ + ldrb r0, [r4, 0x3]\n\ + adds r0, 0x1\n\ + strb r0, [r4, 0x3]\n\ + lsls r0, r2, 27\n\ + lsrs r0, 31\n\ + eors r0, r7\n\ + ands r0, r7\n\ + lsls r0, 4\n\ + movs r3, 0x11\n\ + negs r3, r3\n\ + adds r1, r3, 0\n\ + ands r2, r1\n\ + orrs r2, r0\n\ + strb r2, [r4, 0x1]\n\ + b _08151FD0\n\ +_08151F54:\n\ + lsls r0, r5, 28\n\ + asrs r0, 28\n\ + subs r0, 0x1\n\ + mov r5, r9\n\ + ands r0, r5\n\ + lsls r2, r3, 28\n\ + lsrs r1, r2, 28\n\ + adds r1, 0x1\n\ + ands r1, r5\n\ + mov r5, r8\n\ + ands r3, r5\n\ + orrs r3, r1\n\ + strb r3, [r4, 0x1]\n\ + lsrs r2, 28\n\ + cmp r2, r0\n\ + bne _08151FD0\n\ + ldrb r0, [r4, 0x3]\n\ + adds r0, 0x1\n\ + strb r0, [r4, 0x3]\n\ + lsls r0, r3, 27\n\ + lsrs r0, 31\n\ + eors r0, r7\n\ + ands r0, r7\n\ + lsls r0, 4\n\ + movs r2, 0x11\n\ + negs r2, r2\n\ + adds r1, r2, 0\n\ + ands r3, r1\n\ + orrs r3, r0\n\ + strb r3, [r4, 0x1]\n\ + b _08151FD0\n\ +_08151F92:\n\ + ldrb r2, [r4, 0x1]\n\ + movs r0, 0x10\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _08151FA2\n\ + mov r0, r8\n\ + ands r0, r2\n\ + b _08151FB0\n\ +_08151FA2:\n\ + lsls r1, r5, 28\n\ + asrs r1, 28\n\ + mov r3, r9\n\ + ands r1, r3\n\ + mov r0, r8\n\ + ands r0, r2\n\ + orrs r0, r1\n\ +_08151FB0:\n\ + strb r0, [r4, 0x1]\n\ + ldrb r2, [r4, 0x1]\n\ + lsls r0, r2, 27\n\ + lsrs r0, 31\n\ + eors r0, r7\n\ + ands r0, r7\n\ + lsls r0, 4\n\ + movs r5, 0x11\n\ + negs r5, r5\n\ + adds r1, r5, 0\n\ + ands r2, r1\n\ + orrs r2, r0\n\ + strb r2, [r4, 0x1]\n\ + ldrb r0, [r4, 0x3]\n\ + adds r0, 0x1\n\ + strb r0, [r4, 0x3]\n\ +_08151FD0:\n\ + ldrb r1, [r4, 0xA]\n\ + cmp r1, 0xFF\n\ + beq _08151FE6\n\ + ldrb r0, [r4, 0x3]\n\ + cmp r0, r1\n\ + bne _08151FE6\n\ + ldrb r1, [r4]\n\ + ldr r0, [sp]\n\ + movs r2, 0\n\ + bl sub_8151D28\n\ +_08151FE6:\n\ + mov r0, r10\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + cmp r0, 0xF\n\ + bhi _08151FF6\n\ + b _08151E78\n\ +_08151FF6:\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0"); +} +#endif // NONMATCHING + +void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) +{ + u16 *_dest; + u8 i; + u8 j; + i = 0; + dest = &dest[top * 32 + left]; + for (; i < height; i++) + { + _dest = dest + i * 32; + for (j = 0; j < width; j++) + { + *_dest++ = src; + } + } +} + +void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) +{ + u16 *_dest; + u16 *_src = src; + u8 i; + u8 j; + i = 0; + dest = &dest[top * 32 + left]; + for (; i < height; i++) + { + _dest = dest + i * 32; + for (j = 0; j < width; j++) + { + *_dest++ = *_src++; + } + } +} @@ -344,4 +344,3 @@ u16 RtcGetLocalDayCount(void) { return RtcGetDayCount(&sRtc); } - diff --git a/src/safari_zone.c b/src/safari_zone.c index 427a5ceb8..accf94981 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -1,11 +1,15 @@ #include "global.h" -#include "safari_zone.h" +#include "battle.h" #include "event_data.h" -#include "constants/game_stat.h" +#include "field_player_avatar.h" +#include "overworld.h" #include "main.h" -#include "battle.h" -#include "string_util.h" #include "pokeblock.h" +#include "safari_zone.h" +#include "script.h" +#include "string_util.h" +#include "tv.h" +#include "constants/game_stat.h" struct PokeblockFeeder { @@ -18,26 +22,12 @@ struct PokeblockFeeder #define NUM_POKEBLOCK_FEEDERS 10 -extern u8 gBattleOutcome; -extern void* gFieldCallback; - -extern u8 EventScript_2A4B8A[]; -extern u8 EventScript_2A4B6F[]; -extern u8 EventScript_2A4B4C[]; -extern u8 EventScript_2A4B9B[]; - -extern void sub_80EE44C(u8, u8); -extern void IncrementGameStat(u8 index); -extern void ScriptContext1_SetupScript(u8*); -extern void ScriptContext2_RunNewScript(u8*); -extern void CB2_ReturnToField(void); -extern void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); -extern void CB2_LoadMap(void); +extern const u8 EventScript_2A4B8A[]; +extern const u8 EventScript_2A4B6F[]; +extern const u8 EventScript_2A4B4C[]; +extern const u8 EventScript_2A4B9B[]; + extern void sub_80AF6F0(void); -extern void ScriptContext1_Stop(void); -extern void WarpIntoMap(void); -extern void GetXYCoordsOneStepInFrontOfPlayer(s16* x, s16* y); -extern void PlayerGetDestCoords(s16* x, s16* y); EWRAM_DATA u8 gNumSafariBalls = 0; EWRAM_DATA static u16 sSafariZoneStepCounter = 0; diff --git a/src/scrcmd.c b/src/scrcmd.c index 310387337..e699bfeab 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -13,7 +13,6 @@ #include "event_data.h" #include "field_door.h" #include "field_effect.h" -#include "field_fadetransition.h" #include "event_object_movement.h" #include "field_message_box.h" #include "field_player_avatar.h" @@ -2238,8 +2237,8 @@ bool8 ScrCmd_warpD1(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); - sub_808D074(GetPlayerFacingDirection()); - sub_80B0244(); + sub_808D074(GetPlayerFacingDirection()); + sub_80B0244(); ResetInitialPlayerAvatarState(); return TRUE; } @@ -2292,7 +2291,7 @@ bool8 ScrCmd_warpE0(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); - sub_80AF79C(); + sub_80AF79C(); ResetInitialPlayerAvatarState(); return TRUE; } diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 7fc61f953..fc5a06024 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -220,7 +220,7 @@ static void ShowContestWinnerCleanup(void) void ShowContestWinner(void) { - SetMainCallback2(sub_812FDEC); + SetMainCallback2(CB2_ContestPainting); gMain.savedCallback = ShowContestWinnerCleanup; } @@ -563,8 +563,8 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u { case 0: case 1: - GetSetPokedexFlag(nationalDexNum, 2); - GetSetPokedexFlag(nationalDexNum, 3); + GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); + GetSetPokedexFlag(nationalDexNum, FLAG_SET_CAUGHT); break; } return sentToPc; diff --git a/src/secret_base.c b/src/secret_base.c index d50ad94bb..39377e9df 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1,9 +1,7 @@ - -// Includes #include "global.h" #include "constants/bg_event_constants.h" #include "constants/decorations.h" -#include "malloc.h" +#include "alloc.h" #include "main.h" #include "task.h" #include "palette.h" @@ -19,7 +17,7 @@ #include "fieldmap.h" #include "field_camera.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "event_object_movement.h" #include "field_effect.h" diff --git a/src/shop.c b/src/shop.c index a0eddee01..c44cbca12 100755 --- a/src/shop.c +++ b/src/shop.c @@ -6,7 +6,7 @@ #include "decoration_inventory.h" #include "event_object_movement.h" #include "field_player_avatar.h" -#include "field_screen.h" +#include "field_screen_effect.h" #include "field_weather.h" #include "fieldmap.h" #include "gpu_regs.h" @@ -17,7 +17,7 @@ #include "item_menu.h" #include "list_menu.h" #include "main.h" -#include "malloc.h" +#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "money.h" @@ -447,8 +447,8 @@ static void CB2_InitBuyMenu(void) clear_scheduled_bg_copies_to_vram(); gShopDataPtr = AllocZeroed(sizeof(struct ShopData)); gShopDataPtr->scrollIndicatorsTaskId = 0xFF; - gShopDataPtr->itemSpriteIds[0] = -1; - gShopDataPtr->itemSpriteIds[1] = -1; + gShopDataPtr->itemSpriteIds[0] = 0xFF; + gShopDataPtr->itemSpriteIds[1] = 0xFF; BuyMenuBuildListMenuTemplate(); BuyMenuInitBgs(); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); diff --git a/src/slot_machine.c b/src/slot_machine.c index 01ef6d85c..0871506cd 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -14,7 +14,7 @@ #include "util.h" #include "text.h" #include "menu.h" -#include "malloc.h" +#include "alloc.h" #include "bg.h" #include "gpu_regs.h" #include "coins.h" @@ -1637,7 +1637,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) /*static */bool8 sub_8102A44(void) { - if (FindTaskIdByFunc(sub_8102A64) == 0xff) + if (FindTaskIdByFunc(sub_8102A64) == 0xFF) return TRUE; else return FALSE; @@ -4201,74 +4201,74 @@ extern const u16 gSlotMachineMenu_Pal[]; /*static */void SlotMachineSetup_8_0(void) { gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; - gUnknown_0203AAF4[0].size = 0x600; - - gUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF8[0].data = gUnknown_0203AAD4 + 0x600; - gUnknown_0203AAF8[0].size = 0x200; - - gUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAFC[0].data = gUnknown_0203AAD4 + 0x800; - gUnknown_0203AAFC[0].size = 0x200; - - gUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB00[0].data = gUnknown_0203AAD4 + 0xA00; - gUnknown_0203AB00[0].size = 0x200; - - gUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB04[0].data = gUnknown_0203AAD4 + 0xC00; - gUnknown_0203AB04[0].size = 0x300; - - gUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB08[0].data = gUnknown_0203AAD4 + 0x1000; - gUnknown_0203AB08[0].size = 0x400; - - gUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB0C[0].data = gUnknown_0203AAD4 + 0x1400; - gUnknown_0203AB0C[0].size = 0x200; - - gUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB10[0].data = gUnknown_0203AAD4 + 0x1600; - gUnknown_0203AB10[0].size = 0x300; - - gUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB14[0].data = gUnknown_0203AAD4 + 0x1900; - gUnknown_0203AB14[0].size = 0x300; - - gUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB18[0].data = gUnknown_0203AAD4 + 0x1C00; - gUnknown_0203AB18[0].size = 0x200; - gUnknown_0203AB18[1].data = gUnknown_0203AAD4 + 0x1E00; - gUnknown_0203AB18[1].size = 0x200; - - gUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB1C[0].data = gUnknown_0203AAD4 + 0x2000; - gUnknown_0203AB1C[0].size = 640; - - gUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - gUnknown_0203AB20[0].data = gUnknown_0203AAD4 + 0x2280; - gUnknown_0203AB20[0].size = 0x80; - gUnknown_0203AB20[1].data = gUnknown_0203AAD4 + 0x2300; - gUnknown_0203AB20[1].size = 0x80; - gUnknown_0203AB20[2].data = gUnknown_0203AAD4 + 0x2380; - gUnknown_0203AB20[2].size = 0x80; - gUnknown_0203AB20[3].data = gUnknown_0203AAD4 + 0x2400; - gUnknown_0203AB20[3].size = 0x80; - gUnknown_0203AB20[4].data = gUnknown_0203AAD4 + 0x2480; - gUnknown_0203AB20[4].size = 0x80; - - gUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB24[0].data = gUnknown_0203AAD4 + 0x2600; - gUnknown_0203AB24[0].size = 0x480; - gUnknown_0203AB24[1].data = gUnknown_0203AAD4 + 10880; - gUnknown_0203AB24[1].size = 0x480; - - gUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB28[0].data = gUnknown_0203AAD4 + 0x2F00; - gUnknown_0203AB28[0].size = 0x180; - gUnknown_0203AB28[1].data = gUnknown_0203AAD4 + 0x3080; - gUnknown_0203AB28[1].size = 0x180; + gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; + gUnknown_0203AAF4[0].size = 0x600; + + gUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAF8[0].data = gUnknown_0203AAD4 + 0x600; + gUnknown_0203AAF8[0].size = 0x200; + + gUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAFC[0].data = gUnknown_0203AAD4 + 0x800; + gUnknown_0203AAFC[0].size = 0x200; + + gUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB00[0].data = gUnknown_0203AAD4 + 0xA00; + gUnknown_0203AB00[0].size = 0x200; + + gUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB04[0].data = gUnknown_0203AAD4 + 0xC00; + gUnknown_0203AB04[0].size = 0x300; + + gUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB08[0].data = gUnknown_0203AAD4 + 0x1000; + gUnknown_0203AB08[0].size = 0x400; + + gUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB0C[0].data = gUnknown_0203AAD4 + 0x1400; + gUnknown_0203AB0C[0].size = 0x200; + + gUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB10[0].data = gUnknown_0203AAD4 + 0x1600; + gUnknown_0203AB10[0].size = 0x300; + + gUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB14[0].data = gUnknown_0203AAD4 + 0x1900; + gUnknown_0203AB14[0].size = 0x300; + + gUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB18[0].data = gUnknown_0203AAD4 + 0x1C00; + gUnknown_0203AB18[0].size = 0x200; + gUnknown_0203AB18[1].data = gUnknown_0203AAD4 + 0x1E00; + gUnknown_0203AB18[1].size = 0x200; + + gUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB1C[0].data = gUnknown_0203AAD4 + 0x2000; + gUnknown_0203AB1C[0].size = 640; + + gUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + gUnknown_0203AB20[0].data = gUnknown_0203AAD4 + 0x2280; + gUnknown_0203AB20[0].size = 0x80; + gUnknown_0203AB20[1].data = gUnknown_0203AAD4 + 0x2300; + gUnknown_0203AB20[1].size = 0x80; + gUnknown_0203AB20[2].data = gUnknown_0203AAD4 + 0x2380; + gUnknown_0203AB20[2].size = 0x80; + gUnknown_0203AB20[3].data = gUnknown_0203AAD4 + 0x2400; + gUnknown_0203AB20[3].size = 0x80; + gUnknown_0203AB20[4].data = gUnknown_0203AAD4 + 0x2480; + gUnknown_0203AB20[4].size = 0x80; + + gUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB24[0].data = gUnknown_0203AAD4 + 0x2600; + gUnknown_0203AB24[0].size = 0x480; + gUnknown_0203AB24[1].data = gUnknown_0203AAD4 + 10880; + gUnknown_0203AB24[1].size = 0x480; + + gUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB28[0].data = gUnknown_0203AAD4 + 0x2F00; + gUnknown_0203AB28[0].size = 0x180; + gUnknown_0203AB28[1].data = gUnknown_0203AAD4 + 0x3080; + gUnknown_0203AB28[1].size = 0x180; } const u8 sReelSymbols[][21] = diff --git a/src/start_menu.c b/src/start_menu.c index 455d26509..0e52f05fb 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -87,8 +87,8 @@ extern u8 gUnknown_03005DB4; extern void sub_80AF688(void); extern void var_800D_set_xB(void); extern void sub_808B864(void); -extern void sub_80BB534(void); -extern void play_some_sound(void); +extern void CB2_Pokedex(void); +extern void PlayRainSoundEffect(void); extern void CB2_PartyMenuFromStartMenu(void); extern void CB2_PokeNav(void); extern void sub_80C4DDC(void (*)(void)); @@ -621,10 +621,10 @@ static bool8 StartMenuPokedexCallback(void) if (!gPaletteFade.active) { IncrementGameStat(GAME_STAT_CHECKED_POKEDEX); - play_some_sound(); + PlayRainSoundEffect(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); - SetMainCallback2(sub_80BB534); // Display pokedex + SetMainCallback2(CB2_Pokedex); return TRUE; } @@ -636,7 +636,7 @@ static bool8 StartMenuPokemonCallback(void) { if (!gPaletteFade.active) { - play_some_sound(); + PlayRainSoundEffect(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); SetMainCallback2(CB2_PartyMenuFromStartMenu); // Display party menu @@ -651,7 +651,7 @@ static bool8 StartMenuBagCallback(void) { if (!gPaletteFade.active) { - play_some_sound(); + PlayRainSoundEffect(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); SetMainCallback2(CB2_BagMenuFromStartMenu); // Display bag menu @@ -666,7 +666,7 @@ static bool8 StartMenuPokeNavCallback(void) { if (!gPaletteFade.active) { - play_some_sound(); + PlayRainSoundEffect(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); SetMainCallback2(CB2_PokeNav); // Display PokeNav @@ -681,7 +681,7 @@ static bool8 StartMenuPlayerNameCallback(void) { if (!gPaletteFade.active) { - play_some_sound(); + PlayRainSoundEffect(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); @@ -720,7 +720,7 @@ static bool8 StartMenuOptionCallback(void) { if (!gPaletteFade.active) { - play_some_sound(); + PlayRainSoundEffect(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); SetMainCallback2(CB2_InitOptionMenu); // Display option menu @@ -753,7 +753,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { if (!gPaletteFade.active) { - play_some_sound(); + PlayRainSoundEffect(); overworld_free_bg_tilemaps(); TrainerCard_ShowLinkCard(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu); @@ -782,7 +782,7 @@ static bool8 StartMenuBattlePyramidBagCallback(void) { if (!gPaletteFade.active) { - play_some_sound(); + PlayRainSoundEffect(); RemoveExtraStartMenuWindows(); overworld_free_bg_tilemaps(); SetMainCallback2(CB2_PyramidBagMenuFromStartMenu); diff --git a/src/strings.c b/src/strings.c index 1198835cb..bd8c766de 100644 --- a/src/strings.c +++ b/src/strings.c @@ -26,8 +26,8 @@ const u8 gText_MainMenuMysteryGift[] = _("MYSTERY GIFT"); const u8 gText_MainMenuMysteryGift2[] = _("MYSTERY GIFT"); const u8 gText_MainMenuMysteryEvents[] = _("MYSTERY EVENTS"); const u8 gText_WirelessNotConnected[] = _("The Wireless Adapter is not\nconnected."); -const u8 gText_MysteryGiftCantUse[] = _("MYSTERY GIFT can’t be used while\nthe Wireless Adapter is attached."); -const u8 gText_MysteryEventsCantUse[] = _("MYSTERY EVENTS can’t be used while\nthe Wireless Adapter is attached."); +const u8 gText_MysteryGiftCantUse[] = _("MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached."); +const u8 gText_MysteryEventsCantUse[] = _("MYSTERY EVENTS can't be used while\nthe Wireless Adapter is attached."); const u8 gUnknown_085E836D[] = _("Updating save file using external\ndata. Please wait."); const u8 gUnknown_085E83A2[] = _("The save file has been updated."); const u8 gText_SaveFileCorrupted[] = _("The save file is corrupted. The\nprevious save file will be loaded."); @@ -97,10 +97,10 @@ const u8 gText_DefaultNameLucy[] = _("LUCY"); const u8 gText_DefaultNameHalie[] = _("HALIE"); const u8 gText_ThisIsAPokemon[] = _("This is what we call a “POKéMON.”{PAUSE 96}\p"); const u8 gText_5MarksPokemon[] = _("????? POKéMON"); -const u8 gText_UnkHeight[] = _("{CLEAR_TO 0x0C}??’??”"); +const u8 gText_UnkHeight[] = _("{CLEAR_TO 0x0C}??'??”"); const u8 gText_UnkWeight[] = _("????.? lbs."); const u8 gUnknown_085E86DC[] = _(" POKéMON"); -const u8 gUnknown_085E86FB[] = _("{CLEAR_TO 0x0C} ’ ”"); +const u8 gUnknown_085E86FB[] = _("{CLEAR_TO 0x0C} ' ”"); const u8 gUnknown_085E8709[] = _(" . lbs."); const u8 gUnknown_085E871A[] = _(""); const u8 gText_CryOf[] = _("CRY OF"); @@ -121,49 +121,49 @@ const u8 gUnknown_085E8840[] = _("List by the first letter in the name.\nSpotted const u8 gUnknown_085E887C[] = _("List by body color.\nSpotted POKéMON only."); const u8 gUnknown_085E88A6[] = _("List by type.\nOwned POKéMON only."); const u8 gUnknown_085E88C8[] = _("Execute search/switch."); -const u8 gUnknown_085E88DF[] = _("HOENN DEX"); -const u8 gUnknown_085E88E9[] = _("NATIONAL DEX"); -const u8 gUnknown_085E88F6[] = _("NUMERICAL MODE"); -const u8 gUnknown_085E8905[] = _("A TO Z MODE"); -const u8 gUnknown_085E8911[] = _("HEAVIEST MODE"); -const u8 gUnknown_085E891F[] = _("LIGHTEST MODE"); -const u8 gUnknown_085E892D[] = _("TALLEST MODE"); -const u8 gUnknown_085E893A[] = _("SMALLEST MODE"); -const u8 gUnknown_085E8948[] = _("ABC"); -const u8 gUnknown_085E894C[] = _("DEF"); -const u8 gUnknown_085E8950[] = _("GHI"); -const u8 gUnknown_085E8954[] = _("JKL"); -const u8 gUnknown_085E8958[] = _("MNO"); -const u8 gUnknown_085E895C[] = _("PQR"); -const u8 gUnknown_085E8960[] = _("STU"); -const u8 gUnknown_085E8964[] = _("VWX"); -const u8 gUnknown_085E8968[] = _("YZ"); -const u8 gUnknown_085E896B[] = _("RED"); -const u8 gUnknown_085E896F[] = _("BLUE"); -const u8 gUnknown_085E8974[] = _("YELLOW"); -const u8 gUnknown_085E897B[] = _("GREEN"); -const u8 gUnknown_085E8981[] = _("BLACK"); -const u8 gUnknown_085E8987[] = _("BROWN"); -const u8 gUnknown_085E898D[] = _("PURPLE"); -const u8 gUnknown_085E8994[] = _("GRAY"); -const u8 gUnknown_085E8999[] = _("WHITE"); -const u8 gUnknown_085E899F[] = _("PINK"); -const u8 gUnknown_085E89A4[] = _("HOENN region’s POKéDEX"); -const u8 gUnknown_085E89BB[] = _("National edition POKéDEX"); -const u8 gUnknown_085E89D4[] = _("POKéMON are listed according to their\nnumber."); -const u8 gUnknown_085E8A02[] = _("Spotted and owned POKéMON are listed\nalphabetically."); -const u8 gUnknown_085E8A37[] = _("Owned POKéMON are listed from the\nheaviest to the lightest."); -const u8 gUnknown_085E8A73[] = _("Owned POKéMON are listed from the\nlightest to the heaviest."); -const u8 gUnknown_085E8AAF[] = _("Owned POKéMON are listed from the\ntallest to the smallest."); -const u8 gUnknown_085E8AEA[] = _("Owned POKéMON are listed from the\nsmallest to the tallest."); -const u8 gUnknown_085E8B25[] = _(""); -const u8 gUnknown_085E8B26[] = _("DON’T SPECIFY."); -const u8 gUnknown_085E8B35[] = _("NONE"); +const u8 gText_DexHoennTitle[] = _("HOENN DEX"); +const u8 gText_DexNatTitle[] = _("NATIONAL DEX"); +const u8 gText_DexSortNumericalTitle[] = _("NUMERICAL MODE"); +const u8 gText_DexSortAtoZTitle[] = _("A TO Z MODE"); +const u8 gText_DexSortHeaviestTitle[] = _("HEAVIEST MODE"); +const u8 gText_DexSortLightestTitle[] = _("LIGHTEST MODE"); +const u8 gText_DexSortTallestTitle[] = _("TALLEST MODE"); +const u8 gText_DexSortSmallestTitle[] = _("SMALLEST MODE"); +const u8 gText_DexSearchAlphaABC[] = _("ABC"); +const u8 gText_DexSearchAlphaDEF[] = _("DEF"); +const u8 gText_DexSearchAlphaGHI[] = _("GHI"); +const u8 gText_DexSearchAlphaJKL[] = _("JKL"); +const u8 gText_DexSearchAlphaMNO[] = _("MNO"); +const u8 gText_DexSearchAlphaPQR[] = _("PQR"); +const u8 gText_DexSearchAlphaSTU[] = _("STU"); +const u8 gText_DexSearchAlphaVWX[] = _("VWX"); +const u8 gText_DexSearchAlphaYZ[] = _("YZ"); +const u8 gText_DexSearchColorRed[] = _("RED"); +const u8 gText_DexSearchColorBlue[] = _("BLUE"); +const u8 gText_DexSearchColorYellow[] = _("YELLOW"); +const u8 gText_DexSearchColorGreen[] = _("GREEN"); +const u8 gText_DexSearchColorBlack[] = _("BLACK"); +const u8 gText_DexSearchColorBrown[] = _("BROWN"); +const u8 gText_DexSearchColorPurple[] = _("PURPLE"); +const u8 gText_DexSearchColorGray[] = _("GRAY"); +const u8 gText_DexSearchColorWhite[] = _("WHITE"); +const u8 gText_DexSearchColorPink[] = _("PINK"); +const u8 gText_DexHoennDescription[] = _("HOENN region's POKéDEX"); +const u8 gText_DexNatDescription[] = _("National edition POKéDEX"); +const u8 gText_DexSortNumericalDescription[] = _("POKéMON are listed according to their\nnumber."); +const u8 gText_DexSortAtoZDescription[] = _("Spotted and owned POKéMON are listed\nalphabetically."); +const u8 gText_DexSortHeaviestDescription[] = _("Owned POKéMON are listed from the\nheaviest to the lightest."); +const u8 gText_DexSortLightestDescription[] = _("Owned POKéMON are listed from the\nlightest to the heaviest."); +const u8 gText_DexSortTallestDescription[] = _("Owned POKéMON are listed from the\ntallest to the smallest."); +const u8 gText_DexSortSmallestDescription[] = _("Owned POKéMON are listed from the\nsmallest to the tallest."); +const u8 gText_DexEmptyString[] = _(""); +const u8 gText_DexSearchDontSpecify[] = _("DON'T SPECIFY."); +const u8 gText_DexSearchTypeNone[] = _("NONE"); const u8 gText_SelectorArrow[] = _("▶"); const u8 gUnknown_085E8B3C[] = _(" "); const u8 gText_WelcomeToHOF[] = _("Welcome to the HALL OF FAME!"); -const u8 gUnknown_085E8B5B[] = _("Spotted POKéMON: {STR_VAR_1}!\nOwned POKéMON: {STR_VAR_2}!\pPROF. BIRCH’s POKéDEX rating!\pPROF. BIRCH: Let’s see…\p"); -const u8 gUnknown_085E8BBA[] = _("SAVING…\nDON’T TURN OFF THE POWER."); +const u8 gUnknown_085E8B5B[] = _("Spotted POKéMON: {STR_VAR_1}!\nOwned POKéMON: {STR_VAR_2}!\pPROF. BIRCH's POKéDEX rating!\pPROF. BIRCH: Let's see…\p"); +const u8 gUnknown_085E8BBA[] = _("SAVING…\nDON'T TURN OFF THE POWER."); const u8 gText_HOFCorrupted[] = _("The HALL OF FAME data is corrupted."); const u8 gText_HOFNumber[] = _("HALL OF FAME No. {STR_VAR_1}"); const u8 gText_LeagueChamp[] = _("LEAGUE CHAMPION!\nCONGRATULATIONS!"); @@ -218,24 +218,24 @@ const u8 gUnknown_085E8DA4[] = _(" BERRY"); const u8 gText_Coins[] = _("{STR_VAR_1} COINS"); const u8 gText_CloseBag[] = _("CLOSE BAG"); const u8 gText_Var1IsSelected[] = _("{STR_VAR_1} is\nselected."); -const u8 gText_CantWriteMail[] = _("You can’t write\nMAIL here."); +const u8 gText_CantWriteMail[] = _("You can't write\nMAIL here."); const u8 gText_NoPokemon[] = _("There is no\nPOKéMON."); const u8 gText_MoveVar1Where[] = _("Move the\n{STR_VAR_1}\nwhere?"); -const u8 gText_Var1CantBeHeld[] = _("The {STR_VAR_1} can’t be held."); -const u8 gText_Var1CantBeHeldHere[] = _("The {STR_VAR_1} can’t be held\nhere."); +const u8 gText_Var1CantBeHeld[] = _("The {STR_VAR_1} can't be held."); +const u8 gText_Var1CantBeHeldHere[] = _("The {STR_VAR_1} can't be held\nhere."); const u8 gText_DepositHowManyVar1[] = _("Deposit how many\n{STR_VAR_1}(s)?"); const u8 gText_DepositedVar2Var1s[] = _("Deposited {STR_VAR_2}\n{STR_VAR_1}(s)."); -const u8 gText_NoRoomForItems[] = _("There’s no room to\nstore items."); -const u8 gText_CantStoreImportantItems[] = _("Important items\ncan’t be stored in\nthe PC!"); -const u8 gText_TooImportantToToss[] = _("That’s much too\nimportant to toss\nout!"); +const u8 gText_NoRoomForItems[] = _("There's no room to\nstore items."); +const u8 gText_CantStoreImportantItems[] = _("Important items\ncan't be stored in\nthe PC!"); +const u8 gText_TooImportantToToss[] = _("That's much too\nimportant to toss\nout!"); const u8 gText_TossHowManyVar1s[] = _("Toss out how many\n{STR_VAR_1}(s)?"); const u8 gText_ThrewAwayVar2Var1s[] = _("Threw away {STR_VAR_2}\n{STR_VAR_1}(s)."); const u8 gText_ConfirmTossItems[] = _("Is it okay to\nthrow away {STR_VAR_2}\n{STR_VAR_1}(s)?"); -const u8 gText_DadsAdvice[] = _("DAD’s advice…\n{PLAYER}, there’s a time and place for\leverything!{PAUSE_UNTIL_PRESS}"); -const u8 gText_CantDismountBike[] = _("You can’t dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); -const u8 gText_ItemFinderNearby[] = _("Huh?\nThe ITEMFINDER’s responding!\pThere’s an item buried around here!{PAUSE_UNTIL_PRESS}"); -const u8 gText_ItemFinderOnTop[] = _("Oh!\nThe ITEMFINDER’s shaking wildly!{PAUSE_UNTIL_PRESS}"); -const u8 gText_ItemFinderNothing[] = _("… … … …Nope!\nThere’s no response.{PAUSE_UNTIL_PRESS}"); +const u8 gText_DadsAdvice[] = _("DAD's advice…\n{PLAYER}, there's a time and place for\leverything!{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantDismountBike[] = _("You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); +const u8 gText_ItemFinderNearby[] = _("Huh?\nThe ITEMFINDER's responding!\pThere's an item buried around here!{PAUSE_UNTIL_PRESS}"); +const u8 gText_ItemFinderOnTop[] = _("Oh!\nThe ITEMFINDER's shaking wildly!{PAUSE_UNTIL_PRESS}"); +const u8 gText_ItemFinderNothing[] = _("… … … …Nope!\nThere's no response.{PAUSE_UNTIL_PRESS}"); const u8 gText_CoinCase[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); const u8 gText_BootedUpTM[] = _("Booted up a TM."); const u8 gText_BootedUpHM[] = _("Booted up an HM."); @@ -255,25 +255,25 @@ const u8 gText_ThePC[] = _("the PC"); const u8 *const gReturnToXStringsTable[] = { gText_TheField, - gText_TheBattle, - gText_ThePokemonList, - gText_TheShop, - gText_TheField, - gText_TheField, - gText_ThePC, - gText_TheField, - gText_TheField, - gText_TheField, - gText_TheBattle, - gText_ThePC + gText_TheBattle, + gText_ThePokemonList, + gText_TheShop, + gText_TheField, + gText_TheField, + gText_ThePC, + gText_TheField, + gText_TheField, + gText_TheField, + gText_TheBattle, + gText_ThePC }; const u8 *const gReturnToXStringsTable2[] = { gText_TheField, - gText_TheBattle, - gText_ThePokemonList, - gText_TheField + gText_TheBattle, + gText_ThePokemonList, + gText_TheField }; const u8 gText_ReturnToVar1[] = _("Return to\n{STR_VAR_1}."); @@ -286,10 +286,10 @@ const u8 gText_KeyItemsPocket[] = _("KEY ITEMS"); const u8 *const gPocketNamesStringsTable[] = { gText_ItemsPocket, - gText_PokeBallsPocket, - gText_TMHMPocket, - gText_BerriesPocket, - gText_KeyItemsPocket + gText_PokeBallsPocket, + gText_TMHMPocket, + gText_BerriesPocket, + gText_KeyItemsPocket }; const u8 gText_UnkF908Var1Clear7Var2[] = _("{NO}{STR_VAR_1}{CLEAR 0x07}{STR_VAR_2}"); @@ -343,18 +343,18 @@ const u8 gText_QuitShopping[] = _("Quit shopping."); const u8 gText_Var1CertainlyHowMany[] = _("{STR_VAR_1}? Certainly.\nHow many would you like?"); const u8 gText_Var1CertainlyHowMany2[] = _("{STR_VAR_1}? Certainly.\nHow many would you like?"); const u8 gText_Var1AndYouWantedVar2[] = _("{STR_VAR_1}? And you wanted {STR_VAR_2}?\nThat will be ¥{STR_VAR_3}."); -const u8 gText_Var1IsItThatllBeVar2[] = _("{STR_VAR_1}, is it?\nThat’ll be ¥{STR_VAR_2}. Do you want it?"); -const u8 gText_YouWantedVar1ThatllBeVar2[] = _("You wanted {STR_VAR_1}?\nThat’ll be ¥{STR_VAR_2}. Will that be okay?"); +const u8 gText_Var1IsItThatllBeVar2[] = _("{STR_VAR_1}, is it?\nThat'll be ¥{STR_VAR_2}. Do you want it?"); +const u8 gText_YouWantedVar1ThatllBeVar2[] = _("You wanted {STR_VAR_1}?\nThat'll be ¥{STR_VAR_2}. Will that be okay?"); const u8 gText_HereYouGoThankYou[] = _("Here you go!\nThank you very much."); -const u8 gText_ThankYouIllSendItHome[] = _("Thank you!\nI’ll send it to your home PC."); -const u8 gText_ThanksIllSendItHome[] = _("Thanks!\nI’ll send it to your PC at home."); -const u8 gText_YouDontHaveMoney[] = _("You don’t have enough money.{PAUSE_UNTIL_PRESS}"); +const u8 gText_ThankYouIllSendItHome[] = _("Thank you!\nI'll send it to your home PC."); +const u8 gText_ThanksIllSendItHome[] = _("Thanks!\nI'll send it to your PC at home."); +const u8 gText_YouDontHaveMoney[] = _("You don't have enough money.{PAUSE_UNTIL_PRESS}"); const u8 gText_NoMoreRoomForThis[] = _("You have no more room for this\nitem.{PAUSE_UNTIL_PRESS}"); const u8 gText_SpaceForVar1Full[] = _("The space for {STR_VAR_1} is full.{PAUSE_UNTIL_PRESS}"); const u8 gText_AnythingElseICanHelp[] = _("Is there anything else I can help\nyou with?"); const u8 gText_CanIHelpWithAnythingElse[] = _("Can I help you with anything else?"); -const u8 gText_ThrowInPremierBall[] = _("I’ll throw in a PREMIER BALL, too.{PAUSE_UNTIL_PRESS}"); -const u8 gText_CantBuyKeyItem[] = _("{STR_VAR_2}? Oh, no.\nI can’t buy that.{PAUSE_UNTIL_PRESS}"); +const u8 gText_ThrowInPremierBall[] = _("I'll throw in a PREMIER BALL, too.{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantBuyKeyItem[] = _("{STR_VAR_2}? Oh, no.\nI can't buy that.{PAUSE_UNTIL_PRESS}"); const u8 gText_HowManyToSell[] = _("{STR_VAR_2}?\nHow many would you like to sell?"); const u8 gText_ICanPayVar1[] = _("I can pay ¥{STR_VAR_1}.\nWould that be okay?"); const u8 gText_TurnedOverVar1ForVar2[] = _("Turned over the {STR_VAR_2}\nand received ¥{STR_VAR_1}."); @@ -372,53 +372,53 @@ const u8 gText_Trade4[] = _("TRADE"); const u8 gText_HP3[] = _("HP"); const u8 gText_SpAtk3[] = _("SP. ATK"); const u8 gText_SpDef3[] = _("SP. DEF"); -const u8 gText_WontHaveEffect[] = _("It won’t have any effect.{PAUSE_UNTIL_PRESS}"); -const u8 gText_CantBeUsedOnPkmn[] = _("This can’t be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); -const u8 gText_PkmnCantSwitchOut[] = _("{STR_VAR_1} can’t be switched\nout!{PAUSE_UNTIL_PRESS}"); +const u8 gText_WontHaveEffect[] = _("It won't have any effect.{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantBeUsedOnPkmn[] = _("This can't be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnCantSwitchOut[] = _("{STR_VAR_1} can't be switched\nout!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyInBattle[] = _("{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadySelected[] = _("{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnHasNoEnergy[] = _("{STR_VAR_1} has no energy\nleft to battle!{PAUSE_UNTIL_PRESS}"); -const u8 gText_CantSwitchWithAlly[] = _("You can’t switch {STR_VAR_1}’s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}"); -const u8 gText_EggCantBattle[] = _("An EGG can’t battle!{PAUSE_UNTIL_PRESS}"); -const u8 gText_CantUseUntilNewBadge[] = _("This can’t be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantSwitchWithAlly[] = _("You can't switch {STR_VAR_1}'s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}"); +const u8 gText_EggCantBattle[] = _("An EGG can't battle!{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantUseUntilNewBadge[] = _("This can't be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}"); const u8 gText_NoMoreThanVar1Pkmn[] = _("No more than {STR_VAR_1} POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); const u8 gText_SendMailToPC[] = _("Send the removed MAIL to\nyour PC?"); const u8 gText_MailSentToPC[] = _("The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}"); -const u8 gText_PCMailboxFull[] = _("Your PC’s MAILBOX is full.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PCMailboxFull[] = _("Your PC's MAILBOX is full.{PAUSE_UNTIL_PRESS}"); const u8 gText_MailMessageWillBeLost[] = _("If the MAIL is removed, the\nmessage will be lost. Okay?"); const u8 gText_RemoveMailBeforeItem[] = _("MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnWasGivenItem[] = _("{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}"); const u8 gText_SwitchPkmnItem[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?"); -const u8 gText_PkmnNotHolding[] = _("{STR_VAR_1} isn’t holding\nanything.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnNotHolding[] = _("{STR_VAR_1} isn't holding\nanything.{PAUSE_UNTIL_PRESS}"); const u8 gText_RecievedItemFromPkmn[] = _("Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}"); const u8 gText_MailTakenFromPkmn[] = _("MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}"); const u8 gText_SwitchedPkmnItem[] = _("The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnHoldingItemCantHoldMail[] = _("This POKéMON is holding an\nitem. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}"); const u8 gText_MailTransferredFromMailbox[] = _("MAIL was transferred from\nthe MAILBOX.{PAUSE_UNTIL_PRESS}"); -const u8 gText_BagFullCouldNotRemoveItem[] = _("The BAG is full. The POKéMON’s\nitem could not be removed.{PAUSE_UNTIL_PRESS}"); +const u8 gText_BagFullCouldNotRemoveItem[] = _("The BAG is full. The POKéMON's\nitem could not be removed.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnLearnedMove3[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); -const u8 gText_PkmnCantLearnMove[] = _("{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can’t be\nlearned.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnCantLearnMove[] = _("{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can't be\nlearned.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnNeedsToReplaceMove[] = _("{STR_VAR_1} wants to learn the\nmove {STR_VAR_2}.\pHowever, {STR_VAR_1} already\nknows four moves.\pShould a move be deleted and\nreplaced with {STR_VAR_2}?"); const u8 gText_StopLearningMove2[] = _("Stop trying to teach\n{STR_VAR_2}?"); const u8 gText_MoveNotLearned[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_WhichMoveToForget[] = _("Which move should be forgotten?{PAUSE_UNTIL_PRESS}"); const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyKnows[] = _("{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); -const u8 gText_PkmnHPRestoredByVar2[] = _("{STR_VAR_1}’s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnHPRestoredByVar2[] = _("{STR_VAR_1}'s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCuredOfPoison[] = _("{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCuredOfParalysis[] = _("{STR_VAR_1} was cured of\nparalysis.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnWokeUp2[] = _("{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}"); -const u8 gText_PkmnBurnHealed[] = _("{STR_VAR_1}’s burn was healed.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnBurnHealed[] = _("{STR_VAR_1}'s burn was healed.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnThawedOut[] = _("{STR_VAR_1} was thawed out.{PAUSE_UNTIL_PRESS}"); const u8 gText_PPWasRestored[] = _("PP was restored.{PAUSE_UNTIL_PRESS}"); const u8 gUnknown_085E9CCA[] = _("{STR_VAR_1} regained health.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnBecameHealthy[] = _("{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}"); -const u8 gText_MovesPPIncreased[] = _("{STR_VAR_1}’s PP increased.{PAUSE_UNTIL_PRESS}"); +const u8 gText_MovesPPIncreased[] = _("{STR_VAR_1}'s PP increased.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnElevatedToLvVar2[] = _("{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}."); -const u8 gText_PkmnBaseVar2StatIncreased[] = _("{STR_VAR_1}’s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnBaseVar2StatIncreased[] = _("{STR_VAR_1}'s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnFriendlyBaseVar2Fell[] = _("{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAdoresBaseVar2Fell[] = _("{STR_VAR_1} adores you!\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}"); -const u8 gText_PkmnFriendlyBaseVar2CantFall[] = _("{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} can’t fall!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnFriendlyBaseVar2CantFall[] = _("{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} can't fall!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnSnappedOutOfConfusion[] = _("{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnGotOverInfatuation[] = _("{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}"); const u8 gText_ThrowAwayItem[] = _("Throw away this\n{STR_VAR_1}?"); @@ -430,10 +430,10 @@ const u8 gUnknown_085E9E64[] = _("Teach which POKéMON?"); const u8 gUnknown_085E9E79[] = _("Use on which POKéMON?"); const u8 gUnknown_085E9E8F[] = _("Give to which POKéMON?"); const u8 gUnknown_085E9EA6[] = _("Do what with this {PKMN}?"); -const u8 gUnknown_085E9EBC[] = _("There’s nothing to CUT."); -const u8 gUnknown_085E9ED4[] = _("You can’t SURF here."); -const u8 gUnknown_085E9EE9[] = _("You’re already SURFING."); -const u8 gUnknown_085E9F01[] = _("Can’t use that here."); +const u8 gUnknown_085E9EBC[] = _("There's nothing to CUT."); +const u8 gUnknown_085E9ED4[] = _("You can't SURF here."); +const u8 gUnknown_085E9EE9[] = _("You're already SURFING."); +const u8 gUnknown_085E9F01[] = _("Can't use that here."); const u8 gUnknown_085E9F16[] = _("Restore which move?"); const u8 gUnknown_085E9F2A[] = _("Boost PP of which move?"); const u8 gUnknown_085E9F42[] = _("Do what with an item?"); @@ -441,13 +441,13 @@ const u8 gUnknown_085E9F58[] = _("No POKéMON for battle!"); const u8 gUnknown_085E9F6F[] = _("Choose a POKéMON."); const u8 gUnknown_085E9F81[] = _("Not enough HP…"); const u8 gUnknown_085E9F90[] = _("{STR_VAR_1} POKéMON are needed."); -const u8 gUnknown_085E9FA7[] = _("POKéMON can’t be the same."); +const u8 gUnknown_085E9FA7[] = _("POKéMON can't be the same."); const u8 gUnknown_085E9FC2[] = _("No identical hold items."); const u8 gUnknown_085E9FDB[] = _("The current is much too fast!"); const u8 gUnknown_085E9FF9[] = _("Do what with the MAIL?"); const u8 gUnknown_085EA010[] = _("Choose POKéMON or CANCEL."); const u8 gUnknown_085EA02A[] = _("Choose POKéMON and confirm."); -const u8 gUnknown_085EA046[] = _("Let’s enjoy cycling!"); +const u8 gUnknown_085EA046[] = _("Let's enjoy cycling!"); const u8 gUnknown_085EA05B[] = _("This is in use already."); const u8 gUnknown_085EA073[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}."); const u8 gUnknown_085EA091[] = _("No use."); @@ -461,9 +461,9 @@ const u8 gUnknown_085EA0BF[] = _("ABLE!"); const u8 gUnknown_085EA0C5[] = _("NOT ABLE!"); const u8 gUnknown_085EA0CF[] = _("LEARNED"); const u8 gUnknown_085EA0D7[] = _("HAVE"); -const u8 gUnknown_085EA0DC[] = _("DON’T HAVE"); +const u8 gUnknown_085EA0DC[] = _("DON'T HAVE"); const u8 gUnknown_085EA0E7[] = _("FOURTH"); -const u8 gText_PkmnCantParticipate[] = _("That POKéMON can’t participate.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnCantParticipate[] = _("That POKéMON can't participate.{PAUSE_UNTIL_PRESS}"); const u8 gText_CancelParticipation[] = _("Cancel participation?"); const u8 gText_CancelBattle[] = _("Cancel the battle?"); const u8 gText_ReturnToWaitingRoom[] = _("Return to the WAITING ROOM?"); @@ -472,14 +472,14 @@ const u8 gText_EscapeFromHere[] = _("Want to escape from here and return\nto {ST const u8 gText_ReturnToHealingSpot[] = _("Want to return to the healing spot\nused last in {STR_VAR_1}?"); const u8 gText_PauseUntilPress[] = _("{PAUSE_UNTIL_PRESS}"); const u8 gJPText_PutVar1IntoSpinner[] = _("{STR_VAR_1}を ぐるぐるこうかんに\nだして よろしいですか?"); -ALIGNED(4) const u8 gText_OnlyPkmnForBattle[] = _("That’s your only\nPOKéMON for battle."); -ALIGNED(4) const u8 gText_PkmnCantBeTradedNow[] = _("That POKéMON can’t be traded\nnow."); -ALIGNED(4) const u8 gText_EggCantBeTradedNow[] = _("An EGG can’t be traded now."); -ALIGNED(4) const u8 gText_OtherTrainersPkmnCantBeTraded[] = _("The other TRAINER’s POKéMON\ncan’t be traded now."); -ALIGNED(4) const u8 gText_OtherTrainerCantAcceptPkmn[] = _("The other TRAINER can’t accept\nthat POKéMON now."); -ALIGNED(4) const u8 gText_CantTradeWithTrainer[] = _("You can’t trade with that\nTRAINER now."); -ALIGNED(4) const u8 gText_NotPkmnOtherTrainerWants[] = _("That isn’t the type of POKéMON\nthat the other TRAINER wants."); -ALIGNED(4) const u8 gText_ThatIsntAnEgg[] = _("That isn’t an EGG."); +ALIGNED(4) const u8 gText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle."); +ALIGNED(4) const u8 gText_PkmnCantBeTradedNow[] = _("That POKéMON can't be traded\nnow."); +ALIGNED(4) const u8 gText_EggCantBeTradedNow[] = _("An EGG can't be traded now."); +ALIGNED(4) const u8 gText_OtherTrainersPkmnCantBeTraded[] = _("The other TRAINER's POKéMON\ncan't be traded now."); +ALIGNED(4) const u8 gText_OtherTrainerCantAcceptPkmn[] = _("The other TRAINER can't accept\nthat POKéMON now."); +ALIGNED(4) const u8 gText_CantTradeWithTrainer[] = _("You can't trade with that\nTRAINER now."); +ALIGNED(4) const u8 gText_NotPkmnOtherTrainerWants[] = _("That isn't the type of POKéMON\nthat the other TRAINER wants."); +ALIGNED(4) const u8 gText_ThatIsntAnEgg[] = _("That isn't an EGG."); const u8 gText_Register[] = _("REGISTER"); const u8 gText_Attack3[] = _("ATTACK"); const u8 gText_Defense3[] = _("DEFENSE"); @@ -510,8 +510,8 @@ const u8 gText_Info[] = _("INFO"); const u8 gText_EggWillTakeALongTime[] = _("It looks like this EGG will\ntake a long time to hatch."); const u8 gText_EggWillTakeSomeTime[] = _("What will hatch from this?\nIt will take some time."); const u8 gText_EggWillHatchSoon[] = _("It moves occasionally.\nIt should hatch soon."); -const u8 gText_EggAboutToHatch[] = _("It’s making sounds.\nIt’s about to hatch!"); -const u8 gText_HMMovesCantBeForgotten2[] = _("HM moves can’t be\nforgotten now."); +const u8 gText_EggAboutToHatch[] = _("It's making sounds.\nIt's about to hatch!"); +const u8 gText_HMMovesCantBeForgotten2[] = _("HM moves can't be\nforgotten now."); const u8 gText_XNatureMetAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nmet at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); const u8 gText_XNatureHatchedAtYZ[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nhatched at {LV_2}{SPECIAL_F7 0x00}{SPECIAL_F7 0x03}{SPECIAL_F7 0x01},\n{SPECIAL_F7 0x00}{SPECIAL_F7 0x04}{SPECIAL_F7 0x01}."); const u8 gText_XNatureObtainedInTrade[] = _("{SPECIAL_F7 0x00}{SPECIAL_F7 0x02}{SPECIAL_F7 0x01}{SPECIAL_F7 0x05} nature,\nobtained in a trade."); @@ -525,7 +525,7 @@ const u8 gText_PeculiarEggNicePlace[] = _("A peculiar POKéMON EGG\nobtained at const u8 gText_PeculiarEggTrade[] = _("A peculiar POKéMON EGG\nobtained in a trade."); const u8 gText_EggFromHotSprings[] = _("A POKéMON EGG obtained\nat the hot springs."); const u8 gText_EggFromTraveler[] = _("An odd POKéMON EGG\nobtained from a traveler."); -const u8 gText_ApostropheSBase[] = _("’s BASE"); +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}"); @@ -550,14 +550,14 @@ const u8 gText_Cushion[] = _("CUSHION"); const u8 gText_Gold[] = _("GOLD"); const u8 gText_Silver[] = _("SILVER"); const u8 gText_PlaceItHere[] = _("Place it here?"); -const u8 gText_CantBePlacedHere[] = _("It can’t be placed here."); +const u8 gText_CantBePlacedHere[] = _("It can't be placed here."); const u8 gText_CancelDecorating[] = _("Cancel decorating?"); const u8 gText_InUseAlready[] = _("This is in use already."); const u8 gText_NoMoreDecorations[] = _("No more decorations can be placed.\nThe most that can be placed are {STR_VAR_1}."); const u8 gText_NoMoreDecorations2[] = _("No more decorations can be placed.\nThe most that can be placed are {STR_VAR_1}."); -const u8 gUnknown_085EA978[] = _("This can’t be placed here.\nIt must be on a DESK, etc."); -const u8 gText_CantPlaceInRoom[] = _("This decoration can’t be placed in\nyour own room."); -const u8 gText_CantThrowAwayInUse[] = _("This decoration is in use.\nIt can’t be thrown away."); +const u8 gUnknown_085EA978[] = _("This can't be placed here.\nIt must be on a DESK, etc."); +const u8 gText_CantPlaceInRoom[] = _("This decoration can't be placed in\nyour own room."); +const u8 gText_CantThrowAwayInUse[] = _("This decoration is in use.\nIt can't be thrown away."); const u8 gText_DecorationWillBeDiscarded[] = _("This {STR_VAR_1} will be discarded.\nIs that okay?"); const u8 gText_DecorationThrownAway[] = _("The decoration item was thrown away."); const u8 gText_StopPuttingAwayDecorations[] = _("Stop putting away decorations?"); @@ -586,8 +586,8 @@ const u8 gText_WithdrawXItems[] = _("Withdrew {STR_VAR_2}\n{STR_VAR_1}(s)."); const u8 gText_Read[] = _("READ"); const u8 gText_MoveToBag[] = _("MOVE TO BAG"); const u8 gText_Give2[] = _("GIVE"); -const u8 gText_NoMailHere[] = _("There’s no MAIL here.{PAUSE_UNTIL_PRESS}"); -const u8 gText_WhatToDoWithVar1sMail[] = _("What would you like to do with\n{STR_VAR_1}’s MAIL?"); +const u8 gText_NoMailHere[] = _("There's no MAIL here.{PAUSE_UNTIL_PRESS}"); +const u8 gText_WhatToDoWithVar1sMail[] = _("What would you like to do with\n{STR_VAR_1}'s MAIL?"); const u8 gText_MessageWillBeLost[] = _("The message will be lost.\nIs that okay?"); const u8 gText_BagIsFull[] = _("The BAG is full.{PAUSE_UNTIL_PRESS}"); const u8 gText_MailToBagMessageErased[] = _("The MAIL was returned to the BAG\nwith its message erased.{PAUSE_UNTIL_PRESS}"); @@ -606,7 +606,7 @@ const u8 gUnknown_085EAD56[] = _("LILYCOVE"); const u8 gUnknown_085EAD5F[] = _("DEWFORD"); const u8 gUnknown_085EAD67[] = _("ENTER"); const u8 gUnknown_085EAD6D[] = _("INFO"); -const u8 gUnknown_085EAD72[] = _("What’s a CONTEST?"); +const u8 gUnknown_085EAD72[] = _("What's a CONTEST?"); const u8 gUnknown_085EAD84[] = _("Types of CONTESTS"); const u8 gUnknown_085EAD96[] = _("Ranks"); const u8 gUnknown_085EAD9C[] = _("Judging"); @@ -701,9 +701,9 @@ const u8 gText_Key_Items[] = _("KEY ITEMS"); const u8 gText_Poke_Balls[] = _("POKé BALLS"); const u8 gText_TMs_Hms[] = _("TMs & HMs"); const u8 gText_Berries2[] = _("BERRIES"); -const u8 gText_SomeonesPC[] = _("SOMEONE’S PC"); -const u8 gText_LanettesPC[] = _("LANETTE’S PC"); -const u8 gText_PlayersPC[] = _("{PLAYER}’s PC"); +const u8 gText_SomeonesPC[] = _("SOMEONE'S PC"); +const u8 gText_LanettesPC[] = _("LANETTE'S PC"); +const u8 gText_PlayersPC[] = _("{PLAYER}'s PC"); const u8 gText_HallOfFame[] = _("HALL OF FAME"); const u8 gText_LogOff[] = _("LOG OFF"); const u8 gText_Opponent[] = _("OPPONENT"); @@ -745,10 +745,10 @@ const u8 gText_NavelRock[] = _("NAVEL ROCK"); const u8 gUnknown_085EB2E4[] = _("CLAW FOSSIL"); const u8 gUnknown_085EB2F0[] = _("ROOT FOSSIL"); const u8 gUnknown_085EB2FC[] = _("NO"); -const u8 gUnknown_085EB2FF[] = _("I’ll battle now!"); +const u8 gUnknown_085EB2FF[] = _("I'll battle now!"); const u8 gUnknown_085EB310[] = _("I won!"); const u8 gUnknown_085EB317[] = _("I lost!"); -const u8 gUnknown_085EB31F[] = _("I won’t tell."); +const u8 gUnknown_085EB31F[] = _("I won't tell."); const u8 gUnknown_085EB32D[] = _("NORMAL TAG MATCH"); const u8 gUnknown_085EB33E[] = _("VARIETY TAG MATCH"); const u8 gUnknown_085EB350[] = _("UNIQUE TAG MATCH"); @@ -856,7 +856,7 @@ const u8 gText_SlateportCity[] = _("SLATEPORT CITY"); const u8 gText_CaveOfOrigin[] = _("CAVE OF ORIGIN"); const u8 gText_MtPyre[] = _("MT. PYRE"); const u8 gText_SkyPillar[] = _("SKY PILLAR"); -const u8 gText_DontRemember[] = _("Don’t remember"); +const u8 gText_DontRemember[] = _("Don't remember"); const u8 gText_Exit[] = _("EXIT"); const u8 gText_ExitFromBox[] = _("Exit from the BOX?"); const u8 gText_WhatDoYouWantToDo[] = _("What do you want to do?"); @@ -871,11 +871,11 @@ const u8 gText_ReleaseThisPokemon[] = _("Release this POKéMON?"); const u8 gText_PkmnWasReleased[] = _("{SPECIAL_F7 0x00} was released."); const u8 gText_ByeByePkmn[] = _("Bye-bye, {SPECIAL_F7 0x00}!"); const u8 gText_MarkYourPkmn[] = _("Mark your POKéMON."); -const u8 gText_ThatsYourLastPkmn[] = _("That’s your last POKéMON!"); -const u8 gText_YourPartysFull[] = _("Your party’s full!"); -const u8 gText_YoureHoldingAPkmn[] = _("You’re holding a POKéMON!"); +const u8 gText_ThatsYourLastPkmn[] = _("That's your last POKéMON!"); +const u8 gText_YourPartysFull[] = _("Your party's full!"); +const u8 gText_YoureHoldingAPkmn[] = _("You're holding a POKéMON!"); const u8 gText_WhichOneWillYouTake[] = _("Which one will you take?"); -const u8 gText_YouCantReleaseAnEgg[] = _("You can’t release an EGG."); +const u8 gText_YouCantReleaseAnEgg[] = _("You can't release an EGG."); const u8 gText_ContinueBoxOperations[] = _("Continue BOX operations?"); const u8 gText_PkmnCameBack[] = _("{SPECIAL_F7 0x00} came back!"); const u8 gText_WasItWorriedAboutYou[] = _("Was it worried about you?"); @@ -887,7 +887,7 @@ const u8 gText_BagIsFull2[] = _("The BAG is full."); const u8 gText_PutItemInBag[] = _("Put this item in the BAG?"); const u8 gText_ItemIsNowHeld[] = _("{SPECIAL_F7 0x00} is now held."); const u8 gText_ChangedToNewItem[] = _("Changed to {SPECIAL_F7 0x00}."); -const u8 gText_MailCantBeStored[] = _("MAIL can’t be stored!"); +const u8 gText_MailCantBeStored[] = _("MAIL can't be stored!"); const u8 gPCText_Cancel[] = _("CANCEL"); const u8 gPCText_Store[] = _("STORE"); const u8 gPCText_Withdraw[] = _("WITHDRAW"); @@ -961,9 +961,9 @@ const u8 gText_NumberOfBattles[] = _("No. of battles"); const u8 gUnknown_085EBE7D[] = _("DETAIL"); const u8 gUnknown_085EBE84[] = _("CALL"); const u8 gUnknown_085EBE89[] = _("EXIT"); -const u8 gUnknown_085EBE8E[] = _("Can’t call opponent here."); +const u8 gUnknown_085EBE8E[] = _("Can't call opponent here."); const u8 gUnknown_085EBEA8[] = _("STRATEGY"); -const u8 gUnknown_085EBEB1[] = _("TRAINER’S POKéMON"); +const u8 gUnknown_085EBEB1[] = _("TRAINER'S POKéMON"); const u8 gUnknown_085EBEC3[] = _("SELF-INTRODUCTION"); const u8 gUnknown_085EBED5[] = _("{CLEAR 0x80}"); const u8 gUnknown_085EBED9[] = _("{A_BUTTON}ZOOM {B_BUTTON}CANCEL"); @@ -1004,9 +1004,9 @@ const u8 gUnknown_085EC104[] = _("With four phrases,"); const u8 gText_CombineNineWordsOrPhrases[] = _("Combine nine words or phrases"); const u8 gText_AndMakeAMessage2[] = _("and make a message."); const u8 gText_ChangeJustOneWordOrPhrase[] = _("Change just one word or phrase"); -const u8 gText_AndImproveTheBardsSong[] = _("and improve the BARD’s song."); +const u8 gText_AndImproveTheBardsSong[] = _("and improve the BARD's song."); const u8 gText_YourProfile[] = _("Your profile"); -const u8 gText_YourFeelingAtTheBattlesStart[] = _("Your feeling at the battle’s start"); +const u8 gText_YourFeelingAtTheBattlesStart[] = _("Your feeling at the battle's start"); const u8 gText_WhatYouSayIfYouWin[] = _("What you say if you win a battle"); const u8 gText_WhatYouSayIfYouLose[] = _("What you say if you lose a battle"); const u8 gText_TheAnswer[] = _("The answer"); @@ -1020,7 +1020,7 @@ const u8 gText_IsAsShownOkay[] = _("is as shown. Okay?"); const u8 gText_CombineTwoWordsOrPhrases2[] = _("Combine two words or phrases"); const u8 gText_ToTeachHerAGoodSaying[] = _("to teach her a good saying."); const u8 gText_FindWordsWhichFit[] = _("Find words which fit"); -const u8 gText_TheTrainersImage[] = _("the TRAINER’s image."); +const u8 gText_TheTrainersImage[] = _("the TRAINER's image."); const u8 gText_TheImage[] = _("The image:"); const u8 gText_OutOfTheListedChoices[] = _("Out of the listed choices,"); const u8 gText_SelectTheAnswerToTheQuiz[] = _("select the answer to the quiz!"); @@ -1029,21 +1029,21 @@ const u8 gText_PickAWordOrPhraseAnd[] = _("Pick a word or phrase and"); const u8 gText_SetTheQuizAnswer[] = _("set the quiz answer."); const u8 gText_TheAnswerColon[] = _("The answer:"); const u8 gUnknown_085EC387[] = _("The quiz:"); -const u8 gText_ApprenticePhrase[] = _("Apprentice’s phrase:"); +const u8 gText_ApprenticePhrase[] = _("Apprentice's phrase:"); const u8 gText_QuitEditing[] = _("Quit editing?"); const u8 gText_StopGivingPkmnMail[] = _("Stop giving the POKéMON MAIL?"); const u8 gText_AndFillOutTheQuestionnaire[] = _("and fill out the questionnaire."); -const u8 gText_LetsReplyToTheInterview[] = _("Let’s reply to the interview!"); +const u8 gText_LetsReplyToTheInterview[] = _("Let's reply to the interview!"); const u8 gText_AllTextBeingEditedWill[] = _("All the text being edited will"); const u8 gText_BeDeletedThatOkay[] = _("be deleted. Is that okay?"); const u8 gUnknown_085EC449[] = _("Quit editing?"); const u8 gUnknown_085EC457[] = _("The edited text will not be saved."); const u8 gUnknown_085EC47A[] = _("Is that okay?"); const u8 gUnknown_085EC488[] = _("Please enter a phrase or word."); -const u8 gUnknown_085EC4A7[] = _("The entire text can’t be deleted."); +const u8 gUnknown_085EC4A7[] = _("The entire text can't be deleted."); const u8 gText_OnlyOnePhrase[] = _("Only one phrase may be changed."); const u8 gText_OriginalSongWillBeUsed[] = _("The original song will be used."); -const u8 gUnknown_085EC509[] = _("That’s trendy already!"); +const u8 gUnknown_085EC509[] = _("That's trendy already!"); const u8 gText_CombineTwoWordsOrPhrases3[] = _("Combine two words or phrases."); const u8 gUnknown_085EC53E[] = _("Quit giving information?"); const u8 gUnknown_085EC557[] = _("Stop giving the POKéMON MAIL?"); @@ -1051,20 +1051,20 @@ const u8 gUnknown_085EC575[] = _("Create a quiz!"); const u8 gUnknown_085EC584[] = _("Set the answer!"); const u8 gUnknown_085EC594[] = _("Cancel the selection?"); const u8 gText_Profile[] = _("PROFILE"); -const u8 gText_AtTheBattlesStart[] = _("At the battle’s start:"); +const u8 gText_AtTheBattlesStart[] = _("At the battle's start:"); const u8 gText_UponWinningABattle[] = _("Upon winning a battle:"); const u8 gText_UponLosingABattle[] = _("Upon losing a battle:"); -const u8 gText_TheBardsSong[] = _("The BARD’s Song"); -const u8 gText_WhatsHipAndHappening[] = _("What’s hip and happening?"); +const u8 gText_TheBardsSong[] = _("The BARD's Song"); +const u8 gText_WhatsHipAndHappening[] = _("What's hip and happening?"); const u8 gText_Interview[] = _("Interview"); const u8 gText_GoodSaying[] = _("Good saying"); -const u8 gText_FansQuestion[] = _("Fan’s question"); +const u8 gText_FansQuestion[] = _("Fan's question"); const u8 gUnknown_085EC645[] = _("クイズの こたえは?"); -const u8 gText_ApprenticesPhrase[] = _("Apprentice’s phrase"); +const u8 gText_ApprenticesPhrase[] = _("Apprentice's phrase"); const u8 gText_Questionnaire[] = _("QUESTIONNAIRE"); const u8 gText_YouCannotQuitHere[] = _("You cannot quit here."); const u8 gText_SectionMustBeCompleted[] = _("This section must be completed."); -const u8 gText_F700sQuiz[] = _("{SPECIAL_F7 0x00}’s quiz"); +const u8 gText_F700sQuiz[] = _("{SPECIAL_F7 0x00}'s quiz"); const u8 gText_Lady[] = _("Lady"); const u8 gText_AfterYouHaveReadTheQuiz[] = _("After you have read the quiz"); const u8 gText_QuestionPressTheAButton[] = _("question, press the A Button."); @@ -1074,7 +1074,7 @@ const u8 gText_ChallengeQuestionMark[] = _("challenge?"); const u8 gText_IsThisQuizOK[] = _("Is this quiz OK?"); const u8 gText_CreateAQuiz[] = _("Create a quiz!"); const u8 gText_SelectTheAnswer[] = _("Select the answer!"); -const u8 gText_LyricsCantBeDeleted[] = _("The lyrics can’t be deleted."); +const u8 gText_LyricsCantBeDeleted[] = _("The lyrics can't be deleted."); const u8 gText_PokemonLeague[] = _("POKéMON LEAGUE"); const u8 gText_PokemonCenter[] = _("POKéMON CENTER"); const u8 gText_GetsAPokeBlockQuestion[] = _(" gets a {POKEBLOCK}?"); @@ -1085,7 +1085,7 @@ const u8 gText_Smartness[] = _("Smartness "); const u8 gText_Toughness[] = _("Toughness "); const u8 gText_WasEnhanced[] = _("was enhanced!"); const u8 gText_NothingChanged[] = _("Nothing changed!"); -const u8 gText_WontEatAnymore[] = _("It won’t eat anymore…"); +const u8 gText_WontEatAnymore[] = _("It won't eat anymore…"); const u8 gText_SaveFailedCheckingBackup[] = _("Save failed. Checking the backup\nmemory… Please wait.\n{COLOR RED}“Time required: about 1 minute”"); const u8 gText_BackupMemoryDamaged[] = _("The backup memory is damaged, or\nthe internal battery has run dry.\nYou can still play, but not save."); const u8 gText_GamePlayCannotBeContinued[] = _("{COLOR RED}“Game play cannot be continued.\nReturning to the title screen…”"); @@ -1102,7 +1102,7 @@ const u8 gText_PleaseResetTime[] = _("Please reset the time."); const u8 gText_ClockHasBeenReset[] = _("The clock has been reset.\nData will be saved. Please wait."); const u8 gText_SaveCompleted[] = _("Save completed."); const u8 gText_SaveFailed[] = _("Save failed…"); -const u8 gText_NoSaveFileCantSetTime[] = _("There is no save file, so the time\ncan’t be set."); +const u8 gText_NoSaveFileCantSetTime[] = _("There is no save file, so the time\ncan't be set."); const u8 gText_InGameClockUsable[] = _("The in-game clock adjustment system\nis now useable."); const u8 gText_Slots[] = _("SLOTS"); const u8 gText_Roulette[] = _("ROULETTE"); @@ -1162,7 +1162,7 @@ const u8 gText_QuickClaw48BP[] = _("QUICK CLAW{CLEAR_TO 0x5E}48BP"); const u8 gText_MentalHerb48BP[] = _("MENTAL HERB{CLEAR_TO 0x5E}48BP"); const u8 gText_BrightPowder64BP[] = _("BRIGHTPOWDER{CLEAR_TO 0x5E}64BP"); const u8 gText_ChoiceBand64BP[] = _("CHOICE BAND{CLEAR_TO 0x5E}64BP"); -const u8 gText_KingsRock64BP[] = _("KING’S ROCK{CLEAR_TO 0x5E}64BP"); +const u8 gText_KingsRock64BP[] = _("KING'S ROCK{CLEAR_TO 0x5E}64BP"); const u8 gText_FocusBand64BP[] = _("FOCUS BAND{CLEAR_TO 0x5E}64BP"); const u8 gText_ScopeLens64BP[] = _("SCOPE LENS{CLEAR_TO 0x5E}64BP"); const u8 gText_Softboiled16BP[] = _("SOFTBOILED{CLEAR_TO 0x4E}16BP"); @@ -1197,7 +1197,7 @@ const u8 gText_Colon2[] = _(":"); const u8 gUnknown_085ECF91[] = _(" points"); const u8 gText_TrainerCardTime[] = _("TIME"); const u8 gUnknown_085ECF9E[] = _("ゲ-ムポイント"); -const u8 gText_Var1sTrainerCard[] = _("{STR_VAR_1}’s TRAINER CARD"); +const u8 gText_Var1sTrainerCard[] = _("{STR_VAR_1}'s TRAINER CARD"); const u8 gText_HallOfFameDebut[] = _("HALL OF FAME DEBUT "); const u8 gText_LinkBattles[] = _("LINK BATTLES"); const u8 gText_LinkCableBattles[] = _("LINK CABLE BATTLES"); @@ -1220,11 +1220,13 @@ const u8 gText_BattleFactory[] = _("BATTLE FACTORY"); const u8 gText_BattleArena[] = _("BATTLE ARENA"); const u8 gText_BattlePike[] = _("BATTLE PIKE"); const u8 gText_BattlePyramid[] = _("BATTLE PYRAMID"); + ALIGNED(4) const u8 gUnknown_085ED164[] = _("{STR_VAR_1} SINGLE"); ALIGNED(4) const u8 gUnknown_085ED170[] = _("{STR_VAR_1} DOUBLE"); ALIGNED(4) const u8 gUnknown_085ED17C[] = _("{STR_VAR_1} MULTI"); ALIGNED(4) const u8 gUnknown_085ED188[] = _("{STR_VAR_1} LINK"); ALIGNED(4) const u8 gUnknown_085ED190[] = _("{STR_VAR_1}"); + const u8 gText_Give[] = _("Give"); const u8 gText_NoNeed[] = _("No need"); const u8 gText_ColorLightShadowDarkGrey[] = _("{COLOR LIGHT_GREY}{SHADOW DARK_GREY}"); @@ -1235,7 +1237,7 @@ const u8 gText_BDot[] = _("B."); const u8 gText_AnnouncingResults[] = _("Announcing the results!"); const u8 gText_PreliminaryResults[] = _("The preliminary results!"); const u8 gText_Round2Results[] = _("Round 2 results!"); -const u8 gText_Var1sVar2Won[] = _("{STR_VAR_1}’s {STR_VAR_2} won!"); +const u8 gText_Var1sVar2Won[] = _("{STR_VAR_1}'s {STR_VAR_2} won!"); const u8 gText_CommunicationStandby[] = _("Communication standby…"); const u8 gText_ColorDarkGrey[] = _("{COLOR DARK_GREY}"); const u8 gUnknown_085ED222[] = _("{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR6 WHITE DYNAMIC_COLOR5}"); @@ -1262,14 +1264,14 @@ const u8 gText_ExitingChat[] = _("Exiting the chat…"); const u8 gText_LeaderLeftEndingChat[] = _("The LEADER, {SPECIAL_F7 0x00}, has\nleft, ending the chat."); const u8 gText_RegisteredTextChanged[] = _("The registered text has been changed.\nIs it okay to save the game?"); const u8 gText_AlreadySavedFile_Unused[] = _("There is already a saved file.\nIs it okay to overwrite it?"); -const u8 gText_SavingDontTurnOff_Unused[] = _("SAVING…\nDON’T TURN OFF THE POWER."); +const u8 gText_SavingDontTurnOff_Unused[] = _("SAVING…\nDON'T TURN OFF THE POWER."); const u8 gText_PlayerSavedGame_Unused[] = _("{SPECIAL_F7 0x00} saved the game."); const u8 gText_IfLeaderLeavesChatEnds[] = _("If the LEADER leaves, the chat\nwill end. Is that okay?"); const u8 gText_Hello[] = _("HELLO"); const u8 gText_Pokemon2[] = _("POKéMON"); const u8 gText_Trade[] = _("TRADE"); const u8 gText_Battle[] = _("BATTLE"); -const u8 gText_Lets[] = _("LET’S"); +const u8 gText_Lets[] = _("LET'S"); const u8 gText_Ok[] = _("OK!"); const u8 gText_Sorry[] = _("SORRY"); const u8 gText_YayUnkF9F9[] = _("YAY{EMOJI_BIGSMILE}"); @@ -1277,18 +1279,18 @@ const u8 gText_ThankYou[] = _("THANK YOU"); const u8 gText_ByeBye[] = _("BYE-BYE!"); const u8 gMatchCallStevenStrategyText[] = _("Attack the weak points!"); const u8 gMatchCall_StevenTrainersPokemonText[] = _("Ultimate STEEL POKéMON."); -const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[] = _("I’d climb even waterfalls"); +const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[] = _("I'd climb even waterfalls"); const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[] = _("to find a rare stone!"); -const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[] = _("I’m the strongest and most"); +const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[] = _("I'm the strongest and most"); const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[] = _("energetic after all!"); const u8 gMatchCall_BrendanStrategyText[] = _("Battle with knowledge!"); const u8 gMatchCall_BrendanTrainersPokemonText[] = _("I will use various POKéMON."); -const u8 gMatchCall_BrendanSelfIntroductionText_Line1[] = _("I’ll be a better POKéMON"); +const u8 gMatchCall_BrendanSelfIntroductionText_Line1[] = _("I'll be a better POKéMON"); const u8 gMatchCall_BrendanSelfIntroductionText_Line2[] = _("prof than my father is!"); -const u8 gMatchCall_MayStrategyText[] = _("I’m not so good at battles."); -const u8 gMatchCall_MayTrainersPokemonText[] = _("I’ll use any POKéMON!"); +const u8 gMatchCall_MayStrategyText[] = _("I'm not so good at battles."); +const u8 gMatchCall_MayTrainersPokemonText[] = _("I'll use any POKéMON!"); const u8 gMatchCall_MaySelfIntroductionText_Line1[] = _("My POKéMON and I help"); -const u8 gMatchCall_MaySelfIntroductionText_Line2[] = _("my father’s research."); +const u8 gMatchCall_MaySelfIntroductionText_Line2[] = _("my father's research."); const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!"); const u8 gText_NickHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?"); ALIGNED(4) const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p"); @@ -1298,7 +1300,7 @@ ALIGNED(4) const u8 gText_RecordingGameResults[] = _("Recording your game result ALIGNED(4) const u8 gText_PlayBerryCrushAgain[] = _("Want to play BERRY CRUSH again?"); ALIGNED(4) const u8 gText_YouHaveNoBerries[] = _("You have no BERRIES.\nThe game will be canceled."); ALIGNED(4) const u8 gText_MemberDroppedOut[] = _("A member dropped out.\nThe game will be canceled."); -ALIGNED(4) const u8 gText_TimesUpNoGoodPowder[] = _("Time’s up.\pGood BERRY POWDER could not be\nmade…\p"); +ALIGNED(4) const u8 gText_TimesUpNoGoodPowder[] = _("Time's up.\pGood BERRY POWDER could not be\nmade…\p"); ALIGNED(4) const u8 gText_CommunicationStandby2[] = _("Communication standby…"); ALIGNED(4) const u8 gText_1DotBlueF700[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{SPECIAL_F7 0x00}"); ALIGNED(4) const u8 gText_1DotF700[] = _("1. {SPECIAL_F7 0x00}"); @@ -1375,7 +1377,7 @@ const u8 gText_3Colon[] = _("3:"); const u8 gText_4Colon[] = _("4:"); const u8 gText_5Colon[] = _("5:"); const u8 gText_FirstPlacePrize[] = _("The first-place winner gets\nthis {SPECIAL_F7 0x00}!"); -const u8 gText_CantHoldAnyMore[] = _("You can’t hold any more!"); +const u8 gText_CantHoldAnyMore[] = _("You can't hold any more!"); const u8 gText_FilledStorageSpace[] = _("It filled its storage space."); const u8 gText_WantToPlayAgain[] = _("Want to play again?"); const u8 gText_SomeoneDroppedOut[] = _("Somebody dropped out.\nThe link will be canceled."); @@ -1387,13 +1389,13 @@ const u8 gText_PkmnJumpRecords[] = _("POKéMON JUMP RECORDS"); const u8 gText_JumpsInARow[] = _("Jumps in a row:"); const u8 gText_BestScore2[] = _("Best score:"); const u8 gText_ExcellentsInARow[] = _("EXCELLENTS in a row:"); -const u8 gText_AwesomeWonF701F700[] = _("Awesome score! You’ve\nwon {SPECIAL_F7 0x01} {SPECIAL_F7 0x00}!"); +const u8 gText_AwesomeWonF701F700[] = _("Awesome score! You've\nwon {SPECIAL_F7 0x01} {SPECIAL_F7 0x00}!"); const u8 gText_FilledStorageSpace2[] = _("It filled its storage space."); -const u8 gText_CantHoldMore[] = _("You can’t hold any more!"); +const u8 gText_CantHoldMore[] = _("You can't hold any more!"); const u8 gText_WantToPlayAgain2[] = _("Want to play again?"); const u8 gText_SomeoneDroppedOut2[] = _("Somebody dropped out.\nThe link will be canceled."); const u8 gText_CommunicationStandby4[] = _("Communication standby…"); -const u8 gText_LinkContestResults[] = _("{PLAYER}’s Link Contest Results"); +const u8 gText_LinkContestResults[] = _("{PLAYER}'s Link Contest Results"); const u8 gText_1st[] = _("1st"); const u8 gText_2nd[] = _("2nd"); const u8 gText_3rd[] = _("3rd"); @@ -1403,9 +1405,9 @@ const u8 gUnknown_085EDFB7[] = _("POKeMON"); const u8 gJPText_MysteryGift[] = _("ふしぎなもらいもの"); const u8 gJPText_DecideStop[] = _("{A_BUTTON}けってい {B_BUTTON}やめる"); const u8 gUnknown_085EDFD6[] = _("カードeリーダー{PLUS} で\nふしぎなもらいものを よみこみます"); -const u8 gUnknown_085EDFF5[] = _("カードeリーダー{PLUS}の メニューから\n‘つうしん’を えらび"); -const u8 gUnknown_085EE014[] = _("‘ゲームボーイアドバンスとつうしん’\nを せんたく してください"); -const u8 gUnknown_085EE035[] = _("カードeリーダー{PLUS}の ‘つうしん’を\nえらんで Aボタンを おしてください"); +const u8 gUnknown_085EDFF5[] = _("カードeリーダー{PLUS}の メニューから\n‘つうしん'を えらび"); +const u8 gUnknown_085EE014[] = _("‘ゲームボーイアドバンスとつうしん'\nを せんたく してください"); +const u8 gUnknown_085EE035[] = _("カードeリーダー{PLUS}の ‘つうしん'を\nえらんで Aボタンを おしてください"); const u8 gUnknown_085EE05C[] = _("せつぞくが まちがっています"); const u8 gUnknown_085EE06B[] = _("カードの よみこみを\nちゅうし しました"); const u8 gUnknown_085EE080[] = _("カードeリーダー{PLUS}と\nつうしん できません"); @@ -1420,19 +1422,19 @@ const u8 gUnknown_085EE12D[] = _("かきこみ エラー です\nデータ const u8 gUnknown_085EE14B[] = _("RED"); const u8 gUnknown_085EE14F[] = _("BLUE"); const u8 gUnknown_085EE154[] = _("---"); -const u8 gText_SingleBattleRoomResults[] = _("{PLAYER}’s Single Battle Room Results"); -const u8 gText_DoubleBattleRoomResults[] = _("{PLAYER}’s Double Battle Room Results"); -const u8 gText_MultiBattleRoomResults[] = _("{PLAYER}’s Multi Battle Room Results"); -const u8 gText_LinkMultiBattleRoomResults[] = _("{PLAYER}’s Link Multi Battle Room Results"); -const u8 gText_SingleBattleTourneyResults[] = _("{PLAYER}’s Single Battle Tourney Results"); -const u8 gText_DoubleBattleTourneyResults[] = _("{PLAYER}’s Double Battle Tourney Results"); -const u8 gText_SingleBattleHallResults[] = _("{PLAYER}’s Single Battle Hall Results"); -const u8 gText_DoubleBattleHallResults[] = _("{PLAYER}’s Double Battle Hall Results"); -const u8 gText_BattleChoiceResults[] = _("{PLAYER}’s Battle Choice Results"); -const u8 gText_SetKOTourneyResults[] = _("{PLAYER}’s Set KO Tourney Results"); -const u8 gText_BattleSwapSingleResults[] = _("{PLAYER}’s Battle Swap Single Results"); -const u8 gText_BattleSwapDoubleResults[] = _("{PLAYER}’s Battle Swap Double Results"); -const u8 gText_BattleQuestResults[] = _("{PLAYER}’s Battle Quest Results"); +const u8 gText_SingleBattleRoomResults[] = _("{PLAYER}'s Single Battle Room Results"); +const u8 gText_DoubleBattleRoomResults[] = _("{PLAYER}'s Double Battle Room Results"); +const u8 gText_MultiBattleRoomResults[] = _("{PLAYER}'s Multi Battle Room Results"); +const u8 gText_LinkMultiBattleRoomResults[] = _("{PLAYER}'s Link Multi Battle Room Results"); +const u8 gText_SingleBattleTourneyResults[] = _("{PLAYER}'s Single Battle Tourney Results"); +const u8 gText_DoubleBattleTourneyResults[] = _("{PLAYER}'s Double Battle Tourney Results"); +const u8 gText_SingleBattleHallResults[] = _("{PLAYER}'s Single Battle Hall Results"); +const u8 gText_DoubleBattleHallResults[] = _("{PLAYER}'s Double Battle Hall Results"); +const u8 gText_BattleChoiceResults[] = _("{PLAYER}'s Battle Choice Results"); +const u8 gText_SetKOTourneyResults[] = _("{PLAYER}'s Set KO Tourney Results"); +const u8 gText_BattleSwapSingleResults[] = _("{PLAYER}'s Battle Swap Single Results"); +const u8 gText_BattleSwapDoubleResults[] = _("{PLAYER}'s Battle Swap Double Results"); +const u8 gText_BattleQuestResults[] = _("{PLAYER}'s Battle Quest Results"); const u8 gText_Lv502[] = _("LV. 50"); const u8 gText_OpenLv[] = _("OPEN LV."); const u8 gText_WinStreak[] = _("Win streak: {STR_VAR_1}"); @@ -1448,15 +1450,17 @@ const u8 gText_TimesCleared[] = _("Times cleared:{CLEAR 0x05}{STR_VAR_1}"); const u8 gText_KOsInARow[] = _("KOs in a row: {STR_VAR_1}"); const u8 gText_TimesVar1[] = _("Times: {STR_VAR_1}"); const u8 gText_FloorsCleared[] = _("Floors cleared: {STR_VAR_1}"); -ALIGNED(4) const u8 gUnknown_085EE3B0[] = _("LV. 50"); -ALIGNED(4) const u8 gUnknown_085EE3B8[] = _("OPEN LEVEL"); -ALIGNED(4) const u8 gUnknown_085EE3C4[] = _("Win streak: {STR_VAR_2}"); -ALIGNED(4) const u8 gUnknown_085EE3D4[] = _("Clear streak: {STR_VAR_2}"); -ALIGNED(4) const u8 gUnknown_085EE3E8[] = _("Rooms cleared: {STR_VAR_2}"); -ALIGNED(4) const u8 gUnknown_085EE3FC[] = _("KOs in a row: {STR_VAR_2}"); -ALIGNED(4) const u8 gUnknown_085EE410[] = _("Floors cleared: {STR_VAR_2}"); + +ALIGNED(4) const u8 gText_RecordsLv50[] = _("LV. 50"); +ALIGNED(4) const u8 gText_RecordsOpenLevel[] = _("OPEN LEVEL"); +ALIGNED(4) const u8 gText_FrontierFacilityWinStreak[] = _("Win streak: {STR_VAR_2}"); +ALIGNED(4) const u8 gText_FrontierFacilityClearStreak[] = _("Clear streak: {STR_VAR_2}"); +ALIGNED(4) const u8 gText_FrontierFacilityRoomsCleared[] = _("Rooms cleared: {STR_VAR_2}"); +ALIGNED(4) const u8 gText_FrontierFacilityKOsStreak[] = _("KOs in a row: {STR_VAR_2}"); +ALIGNED(4) const u8 gText_FrontierFacilityFloorsCleared[] = _("Floors cleared: {STR_VAR_2}"); ALIGNED(4) const u8 gText_123Dot[][3] = {_("1."), _("2."), _("3.")}; -const u8 gText_SavingDontTurnOff2[] = _("SAVING…\nDON’T TURN OFF THE POWER."); + +const u8 gText_SavingDontTurnOff2[] = _("SAVING…\nDON'T TURN OFF THE POWER."); const u8 gText_BlenderMaxSpeedRecord[] = _("BERRY BLENDER\nMAXIMUM SPEED RECORD!"); const u8 gText_234Players[] = _("2 PLAYERS\n3 PLAYERS\n4 PLAYERS"); const u8 gText_YesNo[] = _("YES\nNO"); @@ -1525,7 +1529,7 @@ const u8 gText_Peak[] = _("Peak"); const u8 gText_LinkStandby2[] = _("Link standby…\n… … B Button: Cancel"); const u8 gText_PressAToLoadEvent[] = _("Press the A Button to load event.\n… … B Button: Cancel"); const u8 gText_LoadingEvent[] = _("Loading event…"); -const u8 gText_DontRemoveCableTurnOff[] = _("Don’t remove the Game Link cable.\nDon’t turn off the power."); +const u8 gText_DontRemoveCableTurnOff[] = _("Don't remove the Game Link cable.\nDon't turn off the power."); const u8 gText_EventSafelyLoaded[] = _("The event was safely loaded."); const u8 gText_LoadErrorEndingSession[] = _("Loading error.\nEnding session."); const u8 gUnknown_085EE846[] = _("プレイヤー"); @@ -1537,7 +1541,7 @@ const u8 gUnknown_085EE8DC[] = _("{COLOR RED}{SHADOW LIGHT_RED}ゲ-ムフリ-ク const u8 gUnknown_085EE8EA[] = _("{COLOR RED}{SHADOW LIGHT_RED}"); const u8 gText_Hoenn[] = _("HOENN"); const u8 gText_OhABite[] = _("Oh! A bite!"); -const u8 gText_PokemonOnHook[] = _("A POKéMON’s on the hook!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PokemonOnHook[] = _("A POKéMON's on the hook!{PAUSE_UNTIL_PRESS}"); const u8 gText_NotEvenANibble[] = _("Not even a nibble…{PAUSE_UNTIL_PRESS}"); const u8 gText_ItGotAway[] = _("It got away…{PAUSE_UNTIL_PRESS}"); const u8 gText_XWillBeSentToY[] = _("{STR_VAR_2} will be\nsent to {STR_VAR_1}."); @@ -1583,10 +1587,10 @@ const u8 gText_MixingRecords[] = _("Mixing records…"); const u8 gText_RecordMixingComplete[] = _("Record mixing completed.\nThank you for waiting."); const u8 gText_YourName[] = _("YOUR NAME?"); const u8 gText_BoxName[] = _("BOX NAME?"); -const u8 gText_PkmnsNickname[] = _("{STR_VAR_1}’s nickname?"); +const u8 gText_PkmnsNickname[] = _("{STR_VAR_1}'s nickname?"); const u8 gText_TellHimTheWords[] = _("Tell him the words."); const u8 gText_MoveOkBack[] = _("{DPAD_NONE}MOVE {A_BUTTON}OK {B_BUTTON}BACK"); -const u8 gText_CallCantBeMadeHere[] = _("A call can’t be made from here."); +const u8 gText_CallCantBeMadeHere[] = _("A call can't be made from here."); const u8 gUnknown_085EEB2B[] = _("HANDSOME"); const u8 gUnknown_085EEB34[] = _("VINNY"); const u8 gUnknown_085EEB3A[] = _("MOREME"); @@ -1615,7 +1619,7 @@ const u8 gText_Deselect[] = _("DESELECT"); const u8 gText_TheseThreePkmnOkay[] = _("Are these three POKéMON OK?"); const u8 gText_Yes2[] = _("YES"); const u8 gText_No2[] = _("NO"); -const u8 gText_CantSelectSamePkmn[] = _("Can’t select same {PKMN}."); +const u8 gText_CantSelectSamePkmn[] = _("Can't select same {PKMN}."); const u8 gText_PkmnSwap[] = _("POKéMON SWAP"); const u8 gText_SelectPkmnToSwap[] = _("Select POKéMON to swap."); const u8 gText_SelectPkmnToAccept[] = _("Select POKéMON to accept."); @@ -1666,8 +1670,8 @@ ALIGNED(4) const u8 gText_VarietyOfEventsImportedWireless[] = _("A variety of ev ALIGNED(4) const u8 gText_WonderCardsInPossession[] = _("Read the WONDER CARDS in your\npossession."); ALIGNED(4) const u8 gText_ReadNewsThatArrived[] = _("Read the NEWS that arrived."); ALIGNED(4) const u8 gText_ReturnToTitle[] = _("Return to the title screen."); -ALIGNED(4) const u8 gText_DontHaveCardNewOneInput[] = _("You don’t have a WONDER CARD,\nso a new CARD will be input."); -ALIGNED(4) const u8 gText_DontHaveNewsNewOneInput[] = _("You don’t have any WONDER NEWS,\nso new NEWS will be input."); +ALIGNED(4) const u8 gText_DontHaveCardNewOneInput[] = _("You don't have a WONDER CARD,\nso a new CARD will be input."); +ALIGNED(4) const u8 gText_DontHaveNewsNewOneInput[] = _("You don't have any WONDER NEWS,\nso new NEWS will be input."); ALIGNED(4) const u8 gText_WhereShouldCardBeAccessed[] = _("Where should the WONDER CARD\nbe accessed?"); ALIGNED(4) const u8 gText_WhereShouldNewsBeAccessed[] = _("Where should the WONDER NEWS\nbe accessed?"); ALIGNED(4) const u8 gUnknown_085EEFC0[] = _("Communication standby…\nB Button: Cancel"); @@ -1676,7 +1680,7 @@ ALIGNED(4) const u8 gText_CommunicationCompleted[] = _("Communication completed. ALIGNED(4) const u8 gText_CommunicationError[] = _("Communication error."); ALIGNED(4) const u8 gText_CommunicationCanceled[] = _("Communication has been canceled."); ALIGNED(4) const u8 gText_ThrowAwayWonderCard[] = _("Throw away the WONDER CARD\nand input a new CARD?"); -ALIGNED(4) const u8 gText_HaventReceivedCardsGift[] = _("You haven’t received the CARD’s gift\nyet. Input a new CARD anyway?"); +ALIGNED(4) const u8 gText_HaventReceivedCardsGift[] = _("You haven't received the CARD's gift\nyet. Input a new CARD anyway?"); ALIGNED(4) const u8 gText_WonderCardReceivedFrom[] = _("A WONDER CARD has been received\nfrom {STR_VAR_1}."); ALIGNED(4) const u8 gText_WonderNewsReceivedFrom[] = _("A WONDER NEWS item has been\nreceived from {STR_VAR_1}."); ALIGNED(4) const u8 gText_WonderCardReceived[] = _("A new WONDER CARD has been\nreceived."); @@ -1686,10 +1690,10 @@ ALIGNED(4) const u8 gText_NewTrainerReceived[] = _("A new TRAINER has arrived.") ALIGNED(4) const u8 gText_AlreadyHadCard[] = _("You already had that\nWONDER CARD."); ALIGNED(4) const u8 gText_AlreadyHadNews[] = _("You already had that\nWONDER NEWS item."); ALIGNED(4) const u8 gText_AlreadyHadStamp[] = _("You already had that\nSTAMP."); -ALIGNED(4) const u8 gText_NoMoreRoomForStamps[] = _("There’s no more room for adding\nSTAMPS."); +ALIGNED(4) const u8 gText_NoMoreRoomForStamps[] = _("There's no more room for adding\nSTAMPS."); ALIGNED(4) const u8 gText_RecordUploadedViaWireless[] = _("Your record has been uploaded via\nWIRELESS COMMUNICATION."); -ALIGNED(4) const u8 gText_CantAcceptCardFromTrainer[] = _("You can’t accept a WONDER CARD\nfrom this TRAINER."); -ALIGNED(4) const u8 gText_CantAcceptNewsFromTrainer[] = _("You can’t accept WONDER NEWS\nfrom this TRAINER."); +ALIGNED(4) const u8 gText_CantAcceptCardFromTrainer[] = _("You can't accept a WONDER CARD\nfrom this TRAINER."); +ALIGNED(4) const u8 gText_CantAcceptNewsFromTrainer[] = _("You can't accept WONDER NEWS\nfrom this TRAINER."); ALIGNED(4) const u8 gText_NothingSentOver[] = _("Nothing was sent over…"); ALIGNED(4) const u8 gText_WhatToDoWithCards[] = _("What would you like to do\nwith the WONDER CARDS?"); ALIGNED(4) const u8 gText_WhatToDoWithNews[] = _("What would you like to do\nwith the WONDER NEWS?"); @@ -1703,10 +1707,10 @@ ALIGNED(4) const u8 gText_OtherTrainerHasCard[] = _("The other TRAINER has the s ALIGNED(4) const u8 gText_OtherTrainerHasNews[] = _("The other TRAINER has the same\nWONDER NEWS already."); ALIGNED(4) const u8 gText_OtherTrainerHasStamp[] = _("The other TRAINER has the same\nSTAMP already."); ALIGNED(4) const u8 gText_OtherTrainerCanceled[] = _("The other TRAINER canceled\ncommunication."); -ALIGNED(4) const u8 gText_CantSendGiftToTrainer[] = _("You can’t send a MYSTERY GIFT to\nthis TRAINER."); -ALIGNED(4) const u8 gText_IfThrowAwayCardEventWontHappen[] = _("If you throw away the CARD,\nits event won’t happen. Okay?"); +ALIGNED(4) const u8 gText_CantSendGiftToTrainer[] = _("You can't send a MYSTERY GIFT to\nthis TRAINER."); +ALIGNED(4) const u8 gText_IfThrowAwayCardEventWontHappen[] = _("If you throw away the CARD,\nits event won't happen. Okay?"); ALIGNED(4) const u8 gText_OkayToDiscardNews[] = _("Is it okay to discard this\nNEWS item?"); -ALIGNED(4) const u8 gText_HaventReceivedGiftOkayToDiscard[] = _("You haven’t received the\nGIFT. Is it okay to discard?"); +ALIGNED(4) const u8 gText_HaventReceivedGiftOkayToDiscard[] = _("You haven't received the\nGIFT. Is it okay to discard?"); ALIGNED(4) const u8 gText_DataWillBeSaved[] = _("Data will be saved.\nPlease wait."); ALIGNED(4) const u8 gText_SaveCompletedPressA[] = _("Save completed.\nPlease press the A Button."); ALIGNED(4) const u8 gText_WonderCardThrownAway[] = _("The WONDER CARD was thrown away."); @@ -1714,18 +1718,18 @@ ALIGNED(4) const u8 gText_WonderNewsThrownAway[] = _("The WONDER NEWS was thrown ALIGNED(4) const u8 gText_MysteryGift[] = _("MYSTERY GIFT"); ALIGNED(4) const u8 gText_PickOKExit[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK {B_BUTTON}EXIT"); ALIGNED(4) const u8 gText_PickOKCancel[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK {B_BUTTON}CANCEL"); -const u8 gText_PlayersBattleResults[] = _("{PLAYER}’s BATTLE RESULTS"); +const u8 gText_PlayersBattleResults[] = _("{PLAYER}'s BATTLE RESULTS"); const u8 gText_TotalRecordWLD[] = _("TOTAL RECORD W:{STR_VAR_1} L:{STR_VAR_2} D:{STR_VAR_3}"); const u8 gText_WinLoseDraw[] = _("{CLEAR_TO 0x53}WIN{CLEAR_TO 0x80}LOSE{CLEAR_TO 0xB0}DRAW"); const u8 gText_CommunicationStandby5[] = _("Communication standby…"); const u8 gText_QuitTheGame[] = _("Quit the game?"); -const u8 gText_YouveGot9999Coins[] = _("You’ve got 9,999 COINS."); -const u8 gText_YouveRunOutOfCoins[] = _("You’ve run out of COINS.\nGame over!"); -const u8 gText_YouDontHaveThreeCoins[] = _("You don’t have three COINS."); -const u8 gText_ReelTimeHelp[] = _("REEL TIME\nHere’s your chance to take\naim and nail marks!\nReel Time continues for the\nawarded number of spins.\nIt all ends on a Big Bonus."); +const u8 gText_YouveGot9999Coins[] = _("You've got 9,999 COINS."); +const u8 gText_YouveRunOutOfCoins[] = _("You've run out of COINS.\nGame over!"); +const u8 gText_YouDontHaveThreeCoins[] = _("You don't have three COINS."); +const u8 gText_ReelTimeHelp[] = _("REEL TIME\nHere's your chance to take\naim and nail marks!\nReel Time continues for the\nawarded number of spins.\nIt all ends on a Big Bonus."); const u8 gDaycareText_GetAlongVeryWell[] = _("The two seem to get along\nvery well."); const u8 gDaycareText_GetAlong[] = _("The two seem to get along."); -const u8 gDaycareText_DontLikeOther[] = _("The two don’t seem to like\neach other much."); +const u8 gDaycareText_DontLikeOther[] = _("The two don't seem to like\neach other much."); const u8 gDaycareText_PlayOther[] = _("The two prefer to play with other\nPOKéMON than each other."); const u8 gText_NewLine2[] = _("\n"); const u8 gText_Exit4[] = _("EXIT"); @@ -1740,7 +1744,7 @@ const u8 gUnknown_085EF8BF[] = _("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_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}."); @@ -1778,7 +1782,7 @@ const u8 gNormanMatchCallName[] = _("DAD"); const u8 gMomMatchCallName[] = _("MOM"); const u8 gScottMatchCallDesc[] = _("ELUSIVE EYES"); const u8 gScottMatchCallName[] = _("SCOTT"); -const u8 gRoxanneMatchCallDesc[] = _("ROCKIN’ WHIZ"); +const u8 gRoxanneMatchCallDesc[] = _("ROCKIN' WHIZ"); const u8 gBrawlyMatchCallDesc[] = _("THE BIG HIT"); const u8 gWattsonMatchCallDesc[] = _("SWELL SHOCK"); const u8 gFlanneryMatchCallDesc[] = _("PASSION BURN"); diff --git a/src/task.c b/src/task.c index f067e21b4..14b97a361 100644 --- a/src/task.c +++ b/src/task.c @@ -186,7 +186,7 @@ u8 FindTaskIdByFunc(TaskFunc func) if (gTasks[i].isActive == TRUE && gTasks[i].func == func) return (u8)i; - return -1; + return 0xFF; } u8 GetTaskCount(void) diff --git a/src/text.c b/src/text.c index ecd3a3095..07c15596e 100644 --- a/src/text.c +++ b/src/text.c @@ -1539,7 +1539,7 @@ u16 RenderText(struct TextPrinter *textPrinter) subStruct->glyphId = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 7: + case EXT_CTRL_CODE_UNKNOWN_7: return 2; case 8: textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar; @@ -1591,7 +1591,7 @@ u16 RenderText(struct TextPrinter *textPrinter) case 24: m4aMPlayContinue(&gMPlayInfo_BGM); return 2; - case 17: + case EXT_CTRL_CODE_CLEAR: width = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; if (width > 0) @@ -1622,10 +1622,10 @@ u16 RenderText(struct TextPrinter *textPrinter) case 20: textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++; return 2; - case 21: + case EXT_CTRL_CODE_JPN: textPrinter->japanese = 1; return 2; - case 22: + case EXT_CTRL_CODE_ENG: textPrinter->japanese = 0; return 2; } @@ -1810,12 +1810,12 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) case 0x14: ++strPos; break; - case 0x7: + case EXT_CTRL_CODE_UNKNOWN_7: case 0x9: case 0xA: case 0xF: - case 0x15: - case 0x16: + case EXT_CTRL_CODE_JPN: + case EXT_CTRL_CODE_ENG: default: break; } @@ -1970,13 +1970,13 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case 0x14: minGlyphWidth = *++str; break; - case 0x15: + case EXT_CTRL_CODE_JPN: isJapanese = 1; break; - case 0x16: + case EXT_CTRL_CODE_ENG: isJapanese = 0; break; - case 0x7: + case EXT_CTRL_CODE_UNKNOWN_7: case 0x9: case 0xA: case 0xF: @@ -2096,12 +2096,12 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) case 0x14: ++strPos; break; - case 0x7: + case EXT_CTRL_CODE_UNKNOWN_7: case 0x9: case 0xA: case 0xF: - case 0x15: - case 0x16: + case EXT_CTRL_CODE_JPN: + case EXT_CTRL_CODE_ENG: default: continue; } diff --git a/src/title_screen.c b/src/title_screen.c index 70a1a3449..d60e3fc0b 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -66,14 +66,14 @@ static const u32 sTitleScreenCloudsGfx[] = INCBIN_U32("graphics/title_screen/clo const u16 gUnknown_0853FF70[] = { - 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, + 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, }; static const struct OamData sVersionBannerLeftOamData = diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 18c02350f..f5354a1e8 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -1,7 +1,7 @@ #include "global.h" #include "sprite.h" #include "window.h" -#include "malloc.h" +#include "alloc.h" #include "constants/species.h" #include "palette.h" #include "decompress.h" @@ -404,9 +404,9 @@ u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass) switch (gender) { default: - return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_MAY]; + return gFacilityClassToPicIndex[FACILITY_CLASS_MAY]; case MALE: - return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_BRENDAN]; + return gFacilityClassToPicIndex[FACILITY_CLASS_BRENDAN]; } } return gender; diff --git a/src/trainer_see.c b/src/trainer_see.c index b74608d0b..eeebcb575 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -1,4 +1,5 @@ #include "global.h" +#include "constants/battle_setup.h" #include "battle_setup.h" #include "event_data.h" #include "event_object_movement.h" @@ -74,17 +75,17 @@ static u8 (*const sDirectionalApproachDistanceFuncs[])(struct EventObject *train static bool8 (*const sTrainerSeeFuncList[])(u8 taskId, struct Task *task, struct EventObject *trainerObj) = { sub_80B4178, - sub_80B417C, - sub_80B41C0, - sub_80B4200, - sub_80B425C, - sub_80B4318, - sub_80B435C, - sub_80B4390, - sub_80B43AC, - sub_80B43E0, - sub_80B4438, - sub_80B44AC + sub_80B417C, + sub_80B41C0, + sub_80B4200, + sub_80B425C, + sub_80B4318, + sub_80B435C, + sub_80B4390, + sub_80B43AC, + sub_80B43E0, + sub_80B4438, + sub_80B44AC }; static bool8 (*const sTrainerSeeFuncList2[])(u8 taskId, struct Task *task, struct EventObject *trainerObj) = @@ -629,26 +630,26 @@ static void Task_DestroyTrainerApproachTask(u8 taskId) EnableBothScriptContexts(); } -void sub_80B45D0(void) +void TryPrepareSecondApproachingTrainer(void) { if (gNoOfApproachingTrainers == 2) { if (gApproachingTrainerId == 0) { gApproachingTrainerId++; - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; UnfreezeEventObjects(); FreezeEventObjectsExceptOne(gApproachingTrainers[1].eventObjectId); } else { gApproachingTrainerId = 0; - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } } else { - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; } } @@ -30,7 +30,7 @@ #include "text.h" #include "script_menu.h" #include "naming_screen.h" -#include "malloc.h" +#include "alloc.h" #include "region_map.h" #include "constants/region_map_sections.h" #include "decoration.h" @@ -833,7 +833,7 @@ void UpdateTVScreensOnMap(int width, int height) { SetTVMetatilesOnMap(width, height, 0x3); } - else if (FlagGet(FLAG_SYS_TV_START) && (FindAnyTVShowOnTheAir() != 0xff || FindAnyTVNewsOnTheAir() != 0xff || IsTVShowInSearchOfTrainersAiring())) + else if (FlagGet(FLAG_SYS_TV_START) && (FindAnyTVShowOnTheAir() != 0xFF || FindAnyTVNewsOnTheAir() != 0xFF || IsTVShowInSearchOfTrainersAiring())) { FlagClear(FLAG_SYS_TV_WATCH); SetTVMetatilesOnMap(width, height, 0x3); @@ -2742,7 +2742,7 @@ u8 FindAnyTVNewsOnTheAir(void) return i; } } - return -1; + return 0xFF; } void DoPokeNews(void) @@ -3229,7 +3229,7 @@ u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies) species = (Random() % (NUM_SPECIES - 1)) + 1; initSpecies = species; - while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) != 1 || species == passedSpecies) + while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == passedSpecies) { if (species == 1) { @@ -4376,7 +4376,7 @@ void SetTvShowInactive(u8 showIdx) static void sub_80F0B24(u16 species, u8 showIdx) { - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0) + if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN)) { gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; } diff --git a/src/unk_pokedex_area_screen_helper.c b/src/unk_pokedex_area_screen_helper.c index 9e97321df..67fd52cb5 100644 --- a/src/unk_pokedex_area_screen_helper.c +++ b/src/unk_pokedex_area_screen_helper.c @@ -2,8 +2,9 @@ #include "main.h" #include "menu.h" #include "bg.h" -#include "malloc.h" +#include "alloc.h" #include "palette.h" +#include "unk_pokedex_area_screen_helper.h" EWRAM_DATA u8 *gUnknown_0203CF28 = NULL; @@ -13,15 +14,7 @@ static const u32 gUnknown_0861DEF4[] = INCBIN_U32("graphics/interface/region_map static const u32 gUnknown_0861E208[] = INCBIN_U32("graphics/interface/region_map_affine.8bpp.lz"); static const u32 gUnknown_0861EF64[] = INCBIN_U32("graphics/interface/region_map_affine.bin.lz"); -struct UnkStruct_1C4D70 -{ - u32 bg:2; - u32 unk2:8; - u32 unk10:2; - u32 unk12:20; -}; - -void sub_81C4D70(struct UnkStruct_1C4D70 *template) +void sub_81C4D70(const struct UnkStruct_1C4D70 *template) { u8 unk; gUnknown_0203CF28 = Alloc(4); diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 72c33100f..762019ecd 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -1,7 +1,7 @@ #include "global.h" #include "main.h" #include "pokeblock.h" -#include "malloc.h" +#include "alloc.h" #include "palette.h" #include "pokenav.h" #include "scanline_effect.h" diff --git a/src/wallclock.c b/src/wallclock.c index e2e03ecba..5c8d920e7 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -890,13 +890,13 @@ static u16 CalcNewMinHandAngle(u16 angle, u8 direction, u8 speed) { case MVMT_BACKWARD: if (angle) - angle -= delta ; + angle -= delta; else - angle = 360 - delta ; + angle = 360 - delta; break; case MVMT_FORWARD: - if (angle < 360 - delta ) - angle += delta ; + if (angle < 360 - delta) + angle += delta; else angle = 0; break; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 9b3c70ad7..3a8adaf15 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -43,4554 +43,4554 @@ EWRAM_DATA static u32 sFeebasRngValue = 0; // const rom data const struct WildPokemon gRoute101_LandMons[] = { - {2, 2, SPECIES_WURMPLE}, - {2, 2, SPECIES_POOCHYENA}, - {2, 2, SPECIES_WURMPLE}, - {3, 3, SPECIES_WURMPLE}, - {3, 3, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, - {3, 3, SPECIES_WURMPLE}, - {3, 3, SPECIES_POOCHYENA}, - {2, 2, SPECIES_ZIGZAGOON}, - {2, 2, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_WURMPLE}, + {2, 2, SPECIES_POOCHYENA}, + {2, 2, SPECIES_WURMPLE}, + {3, 3, SPECIES_WURMPLE}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_WURMPLE}, + {3, 3, SPECIES_POOCHYENA}, + {2, 2, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, }; const struct WildPokemonInfo gRoute101_LandMonsInfo = {20, gRoute101_LandMons}; const struct WildPokemon gRoute102_LandMons[] = { - {3, 3, SPECIES_POOCHYENA}, - {3, 3, SPECIES_WURMPLE}, - {4, 4, SPECIES_POOCHYENA}, - {4, 4, SPECIES_WURMPLE}, - {3, 3, SPECIES_LOTAD}, - {4, 4, SPECIES_LOTAD}, - {3, 3, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_ZIGZAGOON}, - {4, 4, SPECIES_ZIGZAGOON}, - {4, 4, SPECIES_RALTS}, - {4, 4, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_SEEDOT}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_WURMPLE}, + {4, 4, SPECIES_POOCHYENA}, + {4, 4, SPECIES_WURMPLE}, + {3, 3, SPECIES_LOTAD}, + {4, 4, SPECIES_LOTAD}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_RALTS}, + {4, 4, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_SEEDOT}, }; const struct WildPokemonInfo gRoute102_LandMonsInfo = {20, gRoute102_LandMons}; const struct WildPokemon gRoute102_WaterMons[] = { - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_GOLDEEN}, + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_GOLDEEN}, }; const struct WildPokemonInfo gRoute102_WaterMonsInfo = {4, gRoute102_WaterMons}; const struct WildPokemon gRoute102_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_CORPHISH}, - {25, 30, SPECIES_CORPHISH}, - {30, 35, SPECIES_CORPHISH}, - {20, 25, SPECIES_CORPHISH}, - {35, 40, SPECIES_CORPHISH}, - {40, 45, SPECIES_CORPHISH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, }; const struct WildPokemonInfo gRoute102_FishingMonsInfo = {30, gRoute102_FishingMons}; const struct WildPokemon gRoute103_LandMons[] = { - {2, 2, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, - {3, 3, SPECIES_POOCHYENA}, - {4, 4, SPECIES_POOCHYENA}, - {2, 2, SPECIES_WINGULL}, - {3, 3, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_ZIGZAGOON}, - {4, 4, SPECIES_ZIGZAGOON}, - {3, 3, SPECIES_WINGULL}, - {3, 3, SPECIES_WINGULL}, - {2, 2, SPECIES_WINGULL}, - {4, 4, SPECIES_WINGULL}, + {2, 2, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {4, 4, SPECIES_POOCHYENA}, + {2, 2, SPECIES_WINGULL}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_WINGULL}, + {3, 3, SPECIES_WINGULL}, + {2, 2, SPECIES_WINGULL}, + {4, 4, SPECIES_WINGULL}, }; const struct WildPokemonInfo gRoute103_LandMonsInfo = {20, gRoute103_LandMons}; const struct WildPokemon gRoute103_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute103_WaterMonsInfo = {4, gRoute103_WaterMons}; const struct WildPokemon gRoute103_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute103_FishingMonsInfo = {30, gRoute103_FishingMons}; const struct WildPokemon gRoute104_LandMons[] = { - {4, 4, SPECIES_POOCHYENA}, - {4, 4, SPECIES_WURMPLE}, - {5, 5, SPECIES_POOCHYENA}, - {5, 5, SPECIES_MARILL}, - {4, 4, SPECIES_MARILL}, - {5, 5, SPECIES_POOCHYENA}, - {4, 4, SPECIES_TAILLOW}, - {5, 5, SPECIES_TAILLOW}, - {4, 4, SPECIES_WINGULL}, - {4, 4, SPECIES_WINGULL}, - {3, 3, SPECIES_WINGULL}, - {5, 5, SPECIES_WINGULL}, + {4, 4, SPECIES_POOCHYENA}, + {4, 4, SPECIES_WURMPLE}, + {5, 5, SPECIES_POOCHYENA}, + {5, 5, SPECIES_MARILL}, + {4, 4, SPECIES_MARILL}, + {5, 5, SPECIES_POOCHYENA}, + {4, 4, SPECIES_TAILLOW}, + {5, 5, SPECIES_TAILLOW}, + {4, 4, SPECIES_WINGULL}, + {4, 4, SPECIES_WINGULL}, + {3, 3, SPECIES_WINGULL}, + {5, 5, SPECIES_WINGULL}, }; const struct WildPokemonInfo gRoute104_LandMonsInfo = {20, gRoute104_LandMons}; const struct WildPokemon gRoute104_WaterMons[] = { - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute104_WaterMonsInfo = {4, gRoute104_WaterMons}; const struct WildPokemon gRoute104_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {25, 30, SPECIES_MAGIKARP}, - {30, 35, SPECIES_MAGIKARP}, - {20, 25, SPECIES_MAGIKARP}, - {35, 40, SPECIES_MAGIKARP}, - {40, 45, SPECIES_MAGIKARP}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {20, 25, SPECIES_MAGIKARP}, + {35, 40, SPECIES_MAGIKARP}, + {40, 45, SPECIES_MAGIKARP}, }; const struct WildPokemonInfo gRoute104_FishingMonsInfo = {30, gRoute104_FishingMons}; const struct WildPokemon gRoute105_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute105_WaterMonsInfo = {4, gRoute105_WaterMons}; const struct WildPokemon gRoute105_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute105_FishingMonsInfo = {30, gRoute105_FishingMons}; const struct WildPokemon gRoute110_LandMons[] = { - {12, 12, SPECIES_POOCHYENA}, - {12, 12, SPECIES_ELECTRIKE}, - {12, 12, SPECIES_GULPIN}, - {13, 13, SPECIES_ELECTRIKE}, - {13, 13, SPECIES_MINUN}, - {13, 13, SPECIES_ODDISH}, - {13, 13, SPECIES_MINUN}, - {13, 13, SPECIES_GULPIN}, - {12, 12, SPECIES_WINGULL}, - {12, 12, SPECIES_WINGULL}, - {12, 12, SPECIES_PLUSLE}, - {13, 13, SPECIES_PLUSLE}, + {12, 12, SPECIES_POOCHYENA}, + {12, 12, SPECIES_ELECTRIKE}, + {12, 12, SPECIES_GULPIN}, + {13, 13, SPECIES_ELECTRIKE}, + {13, 13, SPECIES_MINUN}, + {13, 13, SPECIES_ODDISH}, + {13, 13, SPECIES_MINUN}, + {13, 13, SPECIES_GULPIN}, + {12, 12, SPECIES_WINGULL}, + {12, 12, SPECIES_WINGULL}, + {12, 12, SPECIES_PLUSLE}, + {13, 13, SPECIES_PLUSLE}, }; const struct WildPokemonInfo gRoute110_LandMonsInfo = {20, gRoute110_LandMons}; const struct WildPokemon gRoute110_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute110_WaterMonsInfo = {4, gRoute110_WaterMons}; const struct WildPokemon gRoute110_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute110_FishingMonsInfo = {30, gRoute110_FishingMons}; const struct WildPokemon gRoute111_LandMons[] = { - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {21, 21, SPECIES_SANDSHREW}, - {21, 21, SPECIES_TRAPINCH}, - {19, 19, SPECIES_BALTOY}, - {21, 21, SPECIES_BALTOY}, - {19, 19, SPECIES_SANDSHREW}, - {19, 19, SPECIES_TRAPINCH}, - {20, 20, SPECIES_BALTOY}, - {20, 20, SPECIES_CACNEA}, - {22, 22, SPECIES_CACNEA}, - {22, 22, SPECIES_CACNEA}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {21, 21, SPECIES_SANDSHREW}, + {21, 21, SPECIES_TRAPINCH}, + {19, 19, SPECIES_BALTOY}, + {21, 21, SPECIES_BALTOY}, + {19, 19, SPECIES_SANDSHREW}, + {19, 19, SPECIES_TRAPINCH}, + {20, 20, SPECIES_BALTOY}, + {20, 20, SPECIES_CACNEA}, + {22, 22, SPECIES_CACNEA}, + {22, 22, SPECIES_CACNEA}, }; const struct WildPokemonInfo gRoute111_LandMonsInfo = {10, gRoute111_LandMons}; const struct WildPokemon gRoute111_WaterMons[] = { - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_GOLDEEN}, + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_GOLDEEN}, }; const struct WildPokemonInfo gRoute111_WaterMonsInfo = {4, gRoute111_WaterMons}; const struct WildPokemon gRoute111_RockSmashMons[] = { - {10, 15, SPECIES_GEODUDE}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, }; const struct WildPokemonInfo gRoute111_RockSmashMonsInfo = {20, gRoute111_RockSmashMons}; const struct WildPokemon gRoute111_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, }; const struct WildPokemonInfo gRoute111_FishingMonsInfo = {30, gRoute111_FishingMons}; const struct WildPokemon gRoute112_LandMons[] = { - {15, 15, SPECIES_NUMEL}, - {15, 15, SPECIES_NUMEL}, - {15, 15, SPECIES_MARILL}, - {14, 14, SPECIES_NUMEL}, - {14, 14, SPECIES_NUMEL}, - {14, 14, SPECIES_MARILL}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_MARILL}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_NUMEL}, - {16, 16, SPECIES_NUMEL}, + {15, 15, SPECIES_NUMEL}, + {15, 15, SPECIES_NUMEL}, + {15, 15, SPECIES_MARILL}, + {14, 14, SPECIES_NUMEL}, + {14, 14, SPECIES_NUMEL}, + {14, 14, SPECIES_MARILL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_MARILL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, }; const struct WildPokemonInfo gRoute112_LandMonsInfo = {20, gRoute112_LandMons}; const struct WildPokemon gRoute113_LandMons[] = { - {15, 15, SPECIES_SPINDA}, - {15, 15, SPECIES_SPINDA}, - {15, 15, SPECIES_SLUGMA}, - {14, 14, SPECIES_SPINDA}, - {14, 14, SPECIES_SPINDA}, - {14, 14, SPECIES_SLUGMA}, - {16, 16, SPECIES_SPINDA}, - {16, 16, SPECIES_SLUGMA}, - {16, 16, SPECIES_SPINDA}, - {16, 16, SPECIES_SKARMORY}, - {16, 16, SPECIES_SPINDA}, - {16, 16, SPECIES_SKARMORY}, + {15, 15, SPECIES_SPINDA}, + {15, 15, SPECIES_SPINDA}, + {15, 15, SPECIES_SLUGMA}, + {14, 14, SPECIES_SPINDA}, + {14, 14, SPECIES_SPINDA}, + {14, 14, SPECIES_SLUGMA}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SLUGMA}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SKARMORY}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SKARMORY}, }; const struct WildPokemonInfo gRoute113_LandMonsInfo = {20, gRoute113_LandMons}; const struct WildPokemon gRoute114_LandMons[] = { - {16, 16, SPECIES_SWABLU}, - {16, 16, SPECIES_LOTAD}, - {17, 17, SPECIES_SWABLU}, - {15, 15, SPECIES_SWABLU}, - {15, 15, SPECIES_LOTAD}, - {16, 16, SPECIES_LOMBRE}, - {16, 16, SPECIES_LOMBRE}, - {18, 18, SPECIES_LOMBRE}, - {17, 17, SPECIES_SEVIPER}, - {15, 15, SPECIES_SEVIPER}, - {17, 17, SPECIES_SEVIPER}, - {15, 15, SPECIES_NUZLEAF}, + {16, 16, SPECIES_SWABLU}, + {16, 16, SPECIES_LOTAD}, + {17, 17, SPECIES_SWABLU}, + {15, 15, SPECIES_SWABLU}, + {15, 15, SPECIES_LOTAD}, + {16, 16, SPECIES_LOMBRE}, + {16, 16, SPECIES_LOMBRE}, + {18, 18, SPECIES_LOMBRE}, + {17, 17, SPECIES_SEVIPER}, + {15, 15, SPECIES_SEVIPER}, + {17, 17, SPECIES_SEVIPER}, + {15, 15, SPECIES_NUZLEAF}, }; const struct WildPokemonInfo gRoute114_LandMonsInfo = {20, gRoute114_LandMons}; const struct WildPokemon gRoute114_WaterMons[] = { - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_GOLDEEN}, + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_GOLDEEN}, }; const struct WildPokemonInfo gRoute114_WaterMonsInfo = {4, gRoute114_WaterMons}; const struct WildPokemon gRoute114_RockSmashMons[] = { - {10, 15, SPECIES_GEODUDE}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, }; const struct WildPokemonInfo gRoute114_RockSmashMonsInfo = {20, gRoute114_RockSmashMons}; const struct WildPokemon gRoute114_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, }; const struct WildPokemonInfo gRoute114_FishingMonsInfo = {30, gRoute114_FishingMons}; const struct WildPokemon gRoute116_LandMons[] = { - {6, 6, SPECIES_POOCHYENA}, - {6, 6, SPECIES_WHISMUR}, - {6, 6, SPECIES_NINCADA}, - {7, 7, SPECIES_ABRA}, - {7, 7, SPECIES_NINCADA}, - {6, 6, SPECIES_TAILLOW}, - {7, 7, SPECIES_TAILLOW}, - {8, 8, SPECIES_TAILLOW}, - {7, 7, SPECIES_POOCHYENA}, - {8, 8, SPECIES_POOCHYENA}, - {7, 7, SPECIES_SKITTY}, - {8, 8, SPECIES_SKITTY}, + {6, 6, SPECIES_POOCHYENA}, + {6, 6, SPECIES_WHISMUR}, + {6, 6, SPECIES_NINCADA}, + {7, 7, SPECIES_ABRA}, + {7, 7, SPECIES_NINCADA}, + {6, 6, SPECIES_TAILLOW}, + {7, 7, SPECIES_TAILLOW}, + {8, 8, SPECIES_TAILLOW}, + {7, 7, SPECIES_POOCHYENA}, + {8, 8, SPECIES_POOCHYENA}, + {7, 7, SPECIES_SKITTY}, + {8, 8, SPECIES_SKITTY}, }; const struct WildPokemonInfo gRoute116_LandMonsInfo = {20, gRoute116_LandMons}; const struct WildPokemon gRoute117_LandMons[] = { - {13, 13, SPECIES_POOCHYENA}, - {13, 13, SPECIES_ODDISH}, - {14, 14, SPECIES_POOCHYENA}, - {14, 14, SPECIES_ODDISH}, - {13, 13, SPECIES_MARILL}, - {13, 13, SPECIES_ODDISH}, - {13, 13, SPECIES_ILLUMISE}, - {13, 13, SPECIES_ILLUMISE}, - {14, 14, SPECIES_ILLUMISE}, - {14, 14, SPECIES_ILLUMISE}, - {13, 13, SPECIES_VOLBEAT}, - {13, 13, SPECIES_SEEDOT}, + {13, 13, SPECIES_POOCHYENA}, + {13, 13, SPECIES_ODDISH}, + {14, 14, SPECIES_POOCHYENA}, + {14, 14, SPECIES_ODDISH}, + {13, 13, SPECIES_MARILL}, + {13, 13, SPECIES_ODDISH}, + {13, 13, SPECIES_ILLUMISE}, + {13, 13, SPECIES_ILLUMISE}, + {14, 14, SPECIES_ILLUMISE}, + {14, 14, SPECIES_ILLUMISE}, + {13, 13, SPECIES_VOLBEAT}, + {13, 13, SPECIES_SEEDOT}, }; const struct WildPokemonInfo gRoute117_LandMonsInfo = {20, gRoute117_LandMons}; const struct WildPokemon gRoute117_WaterMons[] = { - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_GOLDEEN}, + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_GOLDEEN}, }; const struct WildPokemonInfo gRoute117_WaterMonsInfo = {4, gRoute117_WaterMons}; const struct WildPokemon gRoute117_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_CORPHISH}, - {25, 30, SPECIES_CORPHISH}, - {30, 35, SPECIES_CORPHISH}, - {20, 25, SPECIES_CORPHISH}, - {35, 40, SPECIES_CORPHISH}, - {40, 45, SPECIES_CORPHISH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, }; const struct WildPokemonInfo gRoute117_FishingMonsInfo = {30, gRoute117_FishingMons}; const struct WildPokemon gRoute118_LandMons[] = { - {24, 24, SPECIES_ZIGZAGOON}, - {24, 24, SPECIES_ELECTRIKE}, - {26, 26, SPECIES_ZIGZAGOON}, - {26, 26, SPECIES_ELECTRIKE}, - {26, 26, SPECIES_LINOONE}, - {26, 26, SPECIES_MANECTRIC}, - {25, 25, SPECIES_WINGULL}, - {25, 25, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {25, 25, SPECIES_KECLEON}, + {24, 24, SPECIES_ZIGZAGOON}, + {24, 24, SPECIES_ELECTRIKE}, + {26, 26, SPECIES_ZIGZAGOON}, + {26, 26, SPECIES_ELECTRIKE}, + {26, 26, SPECIES_LINOONE}, + {26, 26, SPECIES_MANECTRIC}, + {25, 25, SPECIES_WINGULL}, + {25, 25, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, }; const struct WildPokemonInfo gRoute118_LandMonsInfo = {20, gRoute118_LandMons}; const struct WildPokemon gRoute118_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute118_WaterMonsInfo = {4, gRoute118_WaterMons}; const struct WildPokemon gRoute118_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_CARVANHA}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_CARVANHA}, - {20, 25, SPECIES_CARVANHA}, - {35, 40, SPECIES_CARVANHA}, - {40, 45, SPECIES_CARVANHA}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_CARVANHA}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_CARVANHA}, + {20, 25, SPECIES_CARVANHA}, + {35, 40, SPECIES_CARVANHA}, + {40, 45, SPECIES_CARVANHA}, }; const struct WildPokemonInfo gRoute118_FishingMonsInfo = {30, gRoute118_FishingMons}; const struct WildPokemon gRoute124_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute124_WaterMonsInfo = {4, gRoute124_WaterMons}; const struct WildPokemon gRoute124_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute124_FishingMonsInfo = {30, gRoute124_FishingMons}; const struct WildPokemon gPetalburgWoods_LandMons[] = { - {5, 5, SPECIES_POOCHYENA}, - {5, 5, SPECIES_WURMPLE}, - {5, 5, SPECIES_SHROOMISH}, - {6, 6, SPECIES_POOCHYENA}, - {5, 5, SPECIES_SILCOON}, - {5, 5, SPECIES_CASCOON}, - {6, 6, SPECIES_WURMPLE}, - {6, 6, SPECIES_SHROOMISH}, - {5, 5, SPECIES_TAILLOW}, - {5, 5, SPECIES_SLAKOTH}, - {6, 6, SPECIES_TAILLOW}, - {6, 6, SPECIES_SLAKOTH}, + {5, 5, SPECIES_POOCHYENA}, + {5, 5, SPECIES_WURMPLE}, + {5, 5, SPECIES_SHROOMISH}, + {6, 6, SPECIES_POOCHYENA}, + {5, 5, SPECIES_SILCOON}, + {5, 5, SPECIES_CASCOON}, + {6, 6, SPECIES_WURMPLE}, + {6, 6, SPECIES_SHROOMISH}, + {5, 5, SPECIES_TAILLOW}, + {5, 5, SPECIES_SLAKOTH}, + {6, 6, SPECIES_TAILLOW}, + {6, 6, SPECIES_SLAKOTH}, }; const struct WildPokemonInfo gPetalburgWoods_LandMonsInfo = {20, gPetalburgWoods_LandMons}; const struct WildPokemon gRusturfTunnel_LandMons[] = { - {6, 6, SPECIES_WHISMUR}, - {7, 7, SPECIES_WHISMUR}, - {6, 6, SPECIES_WHISMUR}, - {6, 6, SPECIES_WHISMUR}, - {7, 7, SPECIES_WHISMUR}, - {7, 7, SPECIES_WHISMUR}, - {5, 5, SPECIES_WHISMUR}, - {8, 8, SPECIES_WHISMUR}, - {5, 5, SPECIES_WHISMUR}, - {8, 8, SPECIES_WHISMUR}, - {5, 5, SPECIES_WHISMUR}, - {8, 8, SPECIES_WHISMUR}, + {6, 6, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {6, 6, SPECIES_WHISMUR}, + {6, 6, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, }; const struct WildPokemonInfo gRusturfTunnel_LandMonsInfo = {10, gRusturfTunnel_LandMons}; const struct WildPokemon gGraniteCave_1F_LandMons[] = { - {7, 7, SPECIES_ZUBAT}, - {8, 8, SPECIES_MAKUHITA}, - {7, 7, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ZUBAT}, - {9, 9, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ABRA}, - {10, 10, SPECIES_MAKUHITA}, - {6, 6, SPECIES_MAKUHITA}, - {7, 7, SPECIES_GEODUDE}, - {8, 8, SPECIES_GEODUDE}, - {6, 6, SPECIES_GEODUDE}, - {9, 9, SPECIES_GEODUDE}, + {7, 7, SPECIES_ZUBAT}, + {8, 8, SPECIES_MAKUHITA}, + {7, 7, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ZUBAT}, + {9, 9, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {6, 6, SPECIES_MAKUHITA}, + {7, 7, SPECIES_GEODUDE}, + {8, 8, SPECIES_GEODUDE}, + {6, 6, SPECIES_GEODUDE}, + {9, 9, SPECIES_GEODUDE}, }; const struct WildPokemonInfo gGraniteCave_1F_LandMonsInfo = {10, gGraniteCave_1F_LandMons}; const struct WildPokemon gGraniteCave_B1F_LandMons[] = { - {9, 9, SPECIES_ZUBAT}, - {10, 10, SPECIES_ARON}, - {9, 9, SPECIES_ARON}, - {11, 11, SPECIES_ARON}, - {10, 10, SPECIES_ZUBAT}, - {9, 9, SPECIES_ABRA}, - {10, 10, SPECIES_MAKUHITA}, - {11, 11, SPECIES_MAKUHITA}, - {10, 10, SPECIES_SABLEYE}, - {10, 10, SPECIES_SABLEYE}, - {9, 9, SPECIES_SABLEYE}, - {11, 11, SPECIES_SABLEYE}, + {9, 9, SPECIES_ZUBAT}, + {10, 10, SPECIES_ARON}, + {9, 9, SPECIES_ARON}, + {11, 11, SPECIES_ARON}, + {10, 10, SPECIES_ZUBAT}, + {9, 9, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {11, 11, SPECIES_MAKUHITA}, + {10, 10, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, + {9, 9, SPECIES_SABLEYE}, + {11, 11, SPECIES_SABLEYE}, }; const struct WildPokemonInfo gGraniteCave_B1F_LandMonsInfo = {10, gGraniteCave_B1F_LandMons}; const struct WildPokemon gMtPyre_1F_LandMons[] = { - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, }; const struct WildPokemonInfo gMtPyre_1F_LandMonsInfo = {10, gMtPyre_1F_LandMons}; const struct WildPokemon gVictoryRoad_1F_LandMons[] = { - {40, 40, SPECIES_GOLBAT}, - {40, 40, SPECIES_HARIYAMA}, - {40, 40, SPECIES_LAIRON}, - {40, 40, SPECIES_LOUDRED}, - {36, 36, SPECIES_ZUBAT}, - {36, 36, SPECIES_MAKUHITA}, - {38, 38, SPECIES_GOLBAT}, - {38, 38, SPECIES_HARIYAMA}, - {36, 36, SPECIES_ARON}, - {36, 36, SPECIES_WHISMUR}, - {36, 36, SPECIES_ARON}, - {36, 36, SPECIES_WHISMUR}, + {40, 40, SPECIES_GOLBAT}, + {40, 40, SPECIES_HARIYAMA}, + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_LOUDRED}, + {36, 36, SPECIES_ZUBAT}, + {36, 36, SPECIES_MAKUHITA}, + {38, 38, SPECIES_GOLBAT}, + {38, 38, SPECIES_HARIYAMA}, + {36, 36, SPECIES_ARON}, + {36, 36, SPECIES_WHISMUR}, + {36, 36, SPECIES_ARON}, + {36, 36, SPECIES_WHISMUR}, }; const struct WildPokemonInfo gVictoryRoad_1F_LandMonsInfo = {10, gVictoryRoad_1F_LandMons}; const struct WildPokemon gSafariZone_South_LandMons[] = { - {25, 25, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {25, 25, SPECIES_GIRAFARIG}, - {27, 27, SPECIES_GIRAFARIG}, - {25, 25, SPECIES_NATU}, - {25, 25, SPECIES_DODUO}, - {25, 25, SPECIES_GLOOM}, - {27, 27, SPECIES_WOBBUFFET}, - {25, 25, SPECIES_PIKACHU}, - {27, 27, SPECIES_WOBBUFFET}, - {27, 27, SPECIES_PIKACHU}, - {29, 29, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {25, 25, SPECIES_GIRAFARIG}, + {27, 27, SPECIES_GIRAFARIG}, + {25, 25, SPECIES_NATU}, + {25, 25, SPECIES_DODUO}, + {25, 25, SPECIES_GLOOM}, + {27, 27, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_PIKACHU}, + {27, 27, SPECIES_WOBBUFFET}, + {27, 27, SPECIES_PIKACHU}, + {29, 29, SPECIES_WOBBUFFET}, }; const struct WildPokemonInfo gSafariZone_South_LandMonsInfo = {25, gSafariZone_South_LandMons}; const struct WildPokemon gUnderwater2_WaterMons[] = { - {20, 30, SPECIES_CLAMPERL}, - {20, 30, SPECIES_CHINCHOU}, - {30, 35, SPECIES_CLAMPERL}, - {30, 35, SPECIES_RELICANTH}, - {30, 35, SPECIES_RELICANTH}, + {20, 30, SPECIES_CLAMPERL}, + {20, 30, SPECIES_CHINCHOU}, + {30, 35, SPECIES_CLAMPERL}, + {30, 35, SPECIES_RELICANTH}, + {30, 35, SPECIES_RELICANTH}, }; const struct WildPokemonInfo gUnderwater2_WaterMonsInfo = {4, gUnderwater2_WaterMons}; const struct WildPokemon gAbandonedShip_Rooms_B1F_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, }; const struct WildPokemonInfo gAbandonedShip_Rooms_B1F_WaterMonsInfo = {4, gAbandonedShip_Rooms_B1F_WaterMons}; const struct WildPokemon gAbandonedShip_Rooms_B1F_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_TENTACOOL}, - {25, 30, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, - {25, 30, SPECIES_TENTACRUEL}, - {20, 25, SPECIES_TENTACRUEL}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_TENTACOOL}, + {25, 30, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, + {25, 30, SPECIES_TENTACRUEL}, + {20, 25, SPECIES_TENTACRUEL}, }; const struct WildPokemonInfo gAbandonedShip_Rooms_B1F_FishingMonsInfo = {20, gAbandonedShip_Rooms_B1F_FishingMons}; const struct WildPokemon gGraniteCave_B2F_LandMons[] = { - {10, 10, SPECIES_ZUBAT}, - {11, 11, SPECIES_ARON}, - {10, 10, SPECIES_ARON}, - {11, 11, SPECIES_ZUBAT}, - {12, 12, SPECIES_ARON}, - {10, 10, SPECIES_ABRA}, - {10, 10, SPECIES_SABLEYE}, - {11, 11, SPECIES_SABLEYE}, - {12, 12, SPECIES_SABLEYE}, - {10, 10, SPECIES_SABLEYE}, - {12, 12, SPECIES_SABLEYE}, - {10, 10, SPECIES_SABLEYE}, + {10, 10, SPECIES_ZUBAT}, + {11, 11, SPECIES_ARON}, + {10, 10, SPECIES_ARON}, + {11, 11, SPECIES_ZUBAT}, + {12, 12, SPECIES_ARON}, + {10, 10, SPECIES_ABRA}, + {10, 10, SPECIES_SABLEYE}, + {11, 11, SPECIES_SABLEYE}, + {12, 12, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, + {12, 12, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, }; const struct WildPokemonInfo gGraniteCave_B2F_LandMonsInfo = {10, gGraniteCave_B2F_LandMons}; const struct WildPokemon gGraniteCave_B2F_RockSmashMons[] = { - {10, 15, SPECIES_GEODUDE}, - {10, 20, SPECIES_NOSEPASS}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, + {10, 15, SPECIES_GEODUDE}, + {10, 20, SPECIES_NOSEPASS}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, }; const struct WildPokemonInfo gGraniteCave_B2F_RockSmashMonsInfo = {20, gGraniteCave_B2F_RockSmashMons}; const struct WildPokemon gFieryPath_LandMons[] = { - {15, 15, SPECIES_NUMEL}, - {15, 15, SPECIES_KOFFING}, - {16, 16, SPECIES_NUMEL}, - {15, 15, SPECIES_MACHOP}, - {15, 15, SPECIES_TORKOAL}, - {15, 15, SPECIES_SLUGMA}, - {16, 16, SPECIES_KOFFING}, - {16, 16, SPECIES_MACHOP}, - {14, 14, SPECIES_TORKOAL}, - {16, 16, SPECIES_TORKOAL}, - {14, 14, SPECIES_GRIMER}, - {14, 14, SPECIES_GRIMER}, + {15, 15, SPECIES_NUMEL}, + {15, 15, SPECIES_KOFFING}, + {16, 16, SPECIES_NUMEL}, + {15, 15, SPECIES_MACHOP}, + {15, 15, SPECIES_TORKOAL}, + {15, 15, SPECIES_SLUGMA}, + {16, 16, SPECIES_KOFFING}, + {16, 16, SPECIES_MACHOP}, + {14, 14, SPECIES_TORKOAL}, + {16, 16, SPECIES_TORKOAL}, + {14, 14, SPECIES_GRIMER}, + {14, 14, SPECIES_GRIMER}, }; const struct WildPokemonInfo gFieryPath_LandMonsInfo = {10, gFieryPath_LandMons}; const struct WildPokemon gMeteorFalls_B1F_2R_LandMons[] = { - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {30, 30, SPECIES_BAGON}, - {35, 35, SPECIES_SOLROCK}, - {35, 35, SPECIES_BAGON}, - {37, 37, SPECIES_SOLROCK}, - {25, 25, SPECIES_BAGON}, - {39, 39, SPECIES_SOLROCK}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {30, 30, SPECIES_BAGON}, + {35, 35, SPECIES_SOLROCK}, + {35, 35, SPECIES_BAGON}, + {37, 37, SPECIES_SOLROCK}, + {25, 25, SPECIES_BAGON}, + {39, 39, SPECIES_SOLROCK}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gMeteorFalls_B1F_2R_LandMonsInfo = {10, gMeteorFalls_B1F_2R_LandMons}; const struct WildPokemon gMeteorFalls_B1F_2R_WaterMons[] = { - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, }; const struct WildPokemonInfo gMeteorFalls_B1F_2R_WaterMonsInfo = {4, gMeteorFalls_B1F_2R_WaterMons}; const struct WildPokemon gMeteorFalls_B1F_2R_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, }; const struct WildPokemonInfo gMeteorFalls_B1F_2R_FishingMonsInfo = {30, gMeteorFalls_B1F_2R_FishingMons}; const struct WildPokemon gJaggedPass_LandMons[] = { - {21, 21, SPECIES_NUMEL}, - {21, 21, SPECIES_NUMEL}, - {21, 21, SPECIES_MACHOP}, - {20, 20, SPECIES_NUMEL}, - {20, 20, SPECIES_SPOINK}, - {20, 20, SPECIES_MACHOP}, - {21, 21, SPECIES_SPOINK}, - {22, 22, SPECIES_MACHOP}, - {22, 22, SPECIES_NUMEL}, - {22, 22, SPECIES_SPOINK}, - {22, 22, SPECIES_NUMEL}, - {22, 22, SPECIES_SPOINK}, + {21, 21, SPECIES_NUMEL}, + {21, 21, SPECIES_NUMEL}, + {21, 21, SPECIES_MACHOP}, + {20, 20, SPECIES_NUMEL}, + {20, 20, SPECIES_SPOINK}, + {20, 20, SPECIES_MACHOP}, + {21, 21, SPECIES_SPOINK}, + {22, 22, SPECIES_MACHOP}, + {22, 22, SPECIES_NUMEL}, + {22, 22, SPECIES_SPOINK}, + {22, 22, SPECIES_NUMEL}, + {22, 22, SPECIES_SPOINK}, }; const struct WildPokemonInfo gJaggedPass_LandMonsInfo = {20, gJaggedPass_LandMons}; const struct WildPokemon gRoute106_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute106_WaterMonsInfo = {4, gRoute106_WaterMons}; const struct WildPokemon gRoute106_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute106_FishingMonsInfo = {30, gRoute106_FishingMons}; const struct WildPokemon gRoute107_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute107_WaterMonsInfo = {4, gRoute107_WaterMons}; const struct WildPokemon gRoute107_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute107_FishingMonsInfo = {30, gRoute107_FishingMons}; const struct WildPokemon gRoute108_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute108_WaterMonsInfo = {4, gRoute108_WaterMons}; const struct WildPokemon gRoute108_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute108_FishingMonsInfo = {30, gRoute108_FishingMons}; const struct WildPokemon gRoute109_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute109_WaterMonsInfo = {4, gRoute109_WaterMons}; const struct WildPokemon gRoute109_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute109_FishingMonsInfo = {30, gRoute109_FishingMons}; const struct WildPokemon gRoute115_LandMons[] = { - {23, 23, SPECIES_SWABLU}, - {23, 23, SPECIES_TAILLOW}, - {25, 25, SPECIES_SWABLU}, - {24, 24, SPECIES_TAILLOW}, - {25, 25, SPECIES_TAILLOW}, - {25, 25, SPECIES_SWELLOW}, - {24, 24, SPECIES_JIGGLYPUFF}, - {25, 25, SPECIES_JIGGLYPUFF}, - {24, 24, SPECIES_WINGULL}, - {24, 24, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {25, 25, SPECIES_WINGULL}, + {23, 23, SPECIES_SWABLU}, + {23, 23, SPECIES_TAILLOW}, + {25, 25, SPECIES_SWABLU}, + {24, 24, SPECIES_TAILLOW}, + {25, 25, SPECIES_TAILLOW}, + {25, 25, SPECIES_SWELLOW}, + {24, 24, SPECIES_JIGGLYPUFF}, + {25, 25, SPECIES_JIGGLYPUFF}, + {24, 24, SPECIES_WINGULL}, + {24, 24, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {25, 25, SPECIES_WINGULL}, }; const struct WildPokemonInfo gRoute115_LandMonsInfo = {20, gRoute115_LandMons}; const struct WildPokemon gRoute115_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute115_WaterMonsInfo = {4, gRoute115_WaterMons}; const struct WildPokemon gRoute115_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute115_FishingMonsInfo = {30, gRoute115_FishingMons}; const struct WildPokemon gNewMauville_Inside_LandMons[] = { - {24, 24, SPECIES_VOLTORB}, - {24, 24, SPECIES_MAGNEMITE}, - {25, 25, SPECIES_VOLTORB}, - {25, 25, SPECIES_MAGNEMITE}, - {23, 23, SPECIES_VOLTORB}, - {23, 23, SPECIES_MAGNEMITE}, - {26, 26, SPECIES_VOLTORB}, - {26, 26, SPECIES_MAGNEMITE}, - {22, 22, SPECIES_VOLTORB}, - {22, 22, SPECIES_MAGNEMITE}, - {26, 26, SPECIES_ELECTRODE}, - {26, 26, SPECIES_MAGNETON}, + {24, 24, SPECIES_VOLTORB}, + {24, 24, SPECIES_MAGNEMITE}, + {25, 25, SPECIES_VOLTORB}, + {25, 25, SPECIES_MAGNEMITE}, + {23, 23, SPECIES_VOLTORB}, + {23, 23, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_VOLTORB}, + {26, 26, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_ELECTRODE}, + {26, 26, SPECIES_MAGNETON}, }; const struct WildPokemonInfo gNewMauville_Inside_LandMonsInfo = {10, gNewMauville_Inside_LandMons}; const struct WildPokemon gRoute119_LandMons[] = { - {25, 25, SPECIES_ZIGZAGOON}, - {25, 25, SPECIES_LINOONE}, - {27, 27, SPECIES_ZIGZAGOON}, - {25, 25, SPECIES_ODDISH}, - {27, 27, SPECIES_LINOONE}, - {26, 26, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {24, 24, SPECIES_ODDISH}, - {25, 25, SPECIES_TROPIUS}, - {26, 26, SPECIES_TROPIUS}, - {27, 27, SPECIES_TROPIUS}, - {25, 25, SPECIES_KECLEON}, + {25, 25, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_LINOONE}, + {27, 27, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_LINOONE}, + {26, 26, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {24, 24, SPECIES_ODDISH}, + {25, 25, SPECIES_TROPIUS}, + {26, 26, SPECIES_TROPIUS}, + {27, 27, SPECIES_TROPIUS}, + {25, 25, SPECIES_KECLEON}, }; const struct WildPokemonInfo gRoute119_LandMonsInfo = {15, gRoute119_LandMons}; const struct WildPokemon gRoute119_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute119_WaterMonsInfo = {4, gRoute119_WaterMons}; const struct WildPokemon gRoute119_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_CARVANHA}, - {25, 30, SPECIES_CARVANHA}, - {30, 35, SPECIES_CARVANHA}, - {20, 25, SPECIES_CARVANHA}, - {35, 40, SPECIES_CARVANHA}, - {40, 45, SPECIES_CARVANHA}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_CARVANHA}, + {25, 30, SPECIES_CARVANHA}, + {30, 35, SPECIES_CARVANHA}, + {20, 25, SPECIES_CARVANHA}, + {35, 40, SPECIES_CARVANHA}, + {40, 45, SPECIES_CARVANHA}, }; const struct WildPokemonInfo gRoute119_FishingMonsInfo = {30, gRoute119_FishingMons}; const struct WildPokemon gRoute120_LandMons[] = { - {25, 25, SPECIES_POOCHYENA}, - {25, 25, SPECIES_MIGHTYENA}, - {27, 27, SPECIES_MIGHTYENA}, - {25, 25, SPECIES_ODDISH}, - {25, 25, SPECIES_MARILL}, - {26, 26, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {27, 27, SPECIES_MARILL}, - {25, 25, SPECIES_ABSOL}, - {27, 27, SPECIES_ABSOL}, - {25, 25, SPECIES_KECLEON}, - {25, 25, SPECIES_SEEDOT}, + {25, 25, SPECIES_POOCHYENA}, + {25, 25, SPECIES_MIGHTYENA}, + {27, 27, SPECIES_MIGHTYENA}, + {25, 25, SPECIES_ODDISH}, + {25, 25, SPECIES_MARILL}, + {26, 26, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {27, 27, SPECIES_MARILL}, + {25, 25, SPECIES_ABSOL}, + {27, 27, SPECIES_ABSOL}, + {25, 25, SPECIES_KECLEON}, + {25, 25, SPECIES_SEEDOT}, }; const struct WildPokemonInfo gRoute120_LandMonsInfo = {20, gRoute120_LandMons}; const struct WildPokemon gRoute120_WaterMons[] = { - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {20, 30, SPECIES_GOLDEEN}, + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_GOLDEEN}, }; const struct WildPokemonInfo gRoute120_WaterMonsInfo = {4, gRoute120_WaterMons}; const struct WildPokemon gRoute120_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, }; const struct WildPokemonInfo gRoute120_FishingMonsInfo = {30, gRoute120_FishingMons}; const struct WildPokemon gRoute121_LandMons[] = { - {26, 26, SPECIES_POOCHYENA}, - {26, 26, SPECIES_SHUPPET}, - {26, 26, SPECIES_MIGHTYENA}, - {28, 28, SPECIES_SHUPPET}, - {28, 28, SPECIES_MIGHTYENA}, - {26, 26, SPECIES_ODDISH}, - {28, 28, SPECIES_ODDISH}, - {28, 28, SPECIES_GLOOM}, - {26, 26, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {28, 28, SPECIES_WINGULL}, - {25, 25, SPECIES_KECLEON}, + {26, 26, SPECIES_POOCHYENA}, + {26, 26, SPECIES_SHUPPET}, + {26, 26, SPECIES_MIGHTYENA}, + {28, 28, SPECIES_SHUPPET}, + {28, 28, SPECIES_MIGHTYENA}, + {26, 26, SPECIES_ODDISH}, + {28, 28, SPECIES_ODDISH}, + {28, 28, SPECIES_GLOOM}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, }; const struct WildPokemonInfo gRoute121_LandMonsInfo = {20, gRoute121_LandMons}; const struct WildPokemon gRoute121_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute121_WaterMonsInfo = {4, gRoute121_WaterMons}; const struct WildPokemon gRoute121_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute121_FishingMonsInfo = {30, gRoute121_FishingMons}; const struct WildPokemon gRoute122_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute122_WaterMonsInfo = {4, gRoute122_WaterMons}; const struct WildPokemon gRoute122_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute122_FishingMonsInfo = {30, gRoute122_FishingMons}; const struct WildPokemon gRoute123_LandMons[] = { - {26, 26, SPECIES_POOCHYENA}, - {26, 26, SPECIES_SHUPPET}, - {26, 26, SPECIES_MIGHTYENA}, - {28, 28, SPECIES_SHUPPET}, - {28, 28, SPECIES_MIGHTYENA}, - {26, 26, SPECIES_ODDISH}, - {28, 28, SPECIES_ODDISH}, - {28, 28, SPECIES_GLOOM}, - {26, 26, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {28, 28, SPECIES_WINGULL}, - {25, 25, SPECIES_KECLEON}, + {26, 26, SPECIES_POOCHYENA}, + {26, 26, SPECIES_SHUPPET}, + {26, 26, SPECIES_MIGHTYENA}, + {28, 28, SPECIES_SHUPPET}, + {28, 28, SPECIES_MIGHTYENA}, + {26, 26, SPECIES_ODDISH}, + {28, 28, SPECIES_ODDISH}, + {28, 28, SPECIES_GLOOM}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, }; const struct WildPokemonInfo gRoute123_LandMonsInfo = {20, gRoute123_LandMons}; const struct WildPokemon gRoute123_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute123_WaterMonsInfo = {4, gRoute123_WaterMons}; const struct WildPokemon gRoute123_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute123_FishingMonsInfo = {30, gRoute123_FishingMons}; const struct WildPokemon gMtPyre_2F_LandMons[] = { - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, }; const struct WildPokemonInfo gMtPyre_2F_LandMonsInfo = {10, gMtPyre_2F_LandMons}; const struct WildPokemon gMtPyre_3F_LandMons[] = { - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, }; const struct WildPokemonInfo gMtPyre_3F_LandMonsInfo = {10, gMtPyre_3F_LandMons}; const struct WildPokemon gMtPyre_4F_LandMons[] = { - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {27, 27, SPECIES_DUSKULL}, - {27, 27, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, }; const struct WildPokemonInfo gMtPyre_4F_LandMonsInfo = {10, gMtPyre_4F_LandMons}; const struct WildPokemon gMtPyre_5F_LandMons[] = { - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {27, 27, SPECIES_DUSKULL}, - {27, 27, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, }; const struct WildPokemonInfo gMtPyre_5F_LandMonsInfo = {10, gMtPyre_5F_LandMons}; const struct WildPokemon gMtPyre_6F_LandMons[] = { - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {23, 23, SPECIES_SHUPPET}, - {22, 22, SPECIES_SHUPPET}, - {27, 27, SPECIES_DUSKULL}, - {27, 27, SPECIES_DUSKULL}, - {25, 25, SPECIES_DUSKULL}, - {29, 29, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, }; const struct WildPokemonInfo gMtPyre_6F_LandMonsInfo = {10, gMtPyre_6F_LandMons}; const struct WildPokemon gMtPyre_Exterior_LandMons[] = { - {27, 27, SPECIES_SHUPPET}, - {27, 27, SPECIES_SHUPPET}, - {28, 28, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {29, 29, SPECIES_VULPIX}, - {27, 27, SPECIES_VULPIX}, - {29, 29, SPECIES_VULPIX}, - {25, 25, SPECIES_VULPIX}, - {27, 27, SPECIES_WINGULL}, - {27, 27, SPECIES_WINGULL}, - {26, 26, SPECIES_WINGULL}, - {28, 28, SPECIES_WINGULL}, + {27, 27, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {29, 29, SPECIES_VULPIX}, + {27, 27, SPECIES_VULPIX}, + {29, 29, SPECIES_VULPIX}, + {25, 25, SPECIES_VULPIX}, + {27, 27, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, }; const struct WildPokemonInfo gMtPyre_Exterior_LandMonsInfo = {10, gMtPyre_Exterior_LandMons}; const struct WildPokemon gMtPyre_Summit_LandMons[] = { - {28, 28, SPECIES_SHUPPET}, - {29, 29, SPECIES_SHUPPET}, - {27, 27, SPECIES_SHUPPET}, - {26, 26, SPECIES_SHUPPET}, - {30, 30, SPECIES_SHUPPET}, - {25, 25, SPECIES_SHUPPET}, - {24, 24, SPECIES_SHUPPET}, - {28, 28, SPECIES_DUSKULL}, - {26, 26, SPECIES_DUSKULL}, - {30, 30, SPECIES_DUSKULL}, - {28, 28, SPECIES_CHIMECHO}, - {28, 28, SPECIES_CHIMECHO}, + {28, 28, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {30, 30, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {30, 30, SPECIES_DUSKULL}, + {28, 28, SPECIES_CHIMECHO}, + {28, 28, SPECIES_CHIMECHO}, }; const struct WildPokemonInfo gMtPyre_Summit_LandMonsInfo = {10, gMtPyre_Summit_LandMons}; const struct WildPokemon gGraniteCave_StevensRoom_LandMons[] = { - {7, 7, SPECIES_ZUBAT}, - {8, 8, SPECIES_MAKUHITA}, - {7, 7, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ZUBAT}, - {9, 9, SPECIES_MAKUHITA}, - {8, 8, SPECIES_ABRA}, - {10, 10, SPECIES_MAKUHITA}, - {6, 6, SPECIES_MAKUHITA}, - {7, 7, SPECIES_ARON}, - {8, 8, SPECIES_ARON}, - {7, 7, SPECIES_ARON}, - {8, 8, SPECIES_ARON}, + {7, 7, SPECIES_ZUBAT}, + {8, 8, SPECIES_MAKUHITA}, + {7, 7, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ZUBAT}, + {9, 9, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {6, 6, SPECIES_MAKUHITA}, + {7, 7, SPECIES_ARON}, + {8, 8, SPECIES_ARON}, + {7, 7, SPECIES_ARON}, + {8, 8, SPECIES_ARON}, }; const struct WildPokemonInfo gGraniteCave_StevensRoom_LandMonsInfo = {10, gGraniteCave_StevensRoom_LandMons}; const struct WildPokemon gRoute125_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute125_WaterMonsInfo = {4, gRoute125_WaterMons}; const struct WildPokemon gRoute125_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute125_FishingMonsInfo = {30, gRoute125_FishingMons}; const struct WildPokemon gRoute126_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute126_WaterMonsInfo = {4, gRoute126_WaterMons}; const struct WildPokemon gRoute126_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute126_FishingMonsInfo = {30, gRoute126_FishingMons}; const struct WildPokemon gRoute127_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute127_WaterMonsInfo = {4, gRoute127_WaterMons}; const struct WildPokemon gRoute127_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute127_FishingMonsInfo = {30, gRoute127_FishingMons}; const struct WildPokemon gRoute128_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute128_WaterMonsInfo = {4, gRoute128_WaterMons}; const struct WildPokemon gRoute128_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_LUVDISC}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_LUVDISC}, - {30, 35, SPECIES_WAILMER}, - {30, 35, SPECIES_CORSOLA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_LUVDISC}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_LUVDISC}, + {30, 35, SPECIES_WAILMER}, + {30, 35, SPECIES_CORSOLA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute128_FishingMonsInfo = {30, gRoute128_FishingMons}; const struct WildPokemon gRoute129_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_WAILORD}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_WAILORD}, }; const struct WildPokemonInfo gRoute129_WaterMonsInfo = {4, gRoute129_WaterMons}; const struct WildPokemon gRoute129_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute129_FishingMonsInfo = {30, gRoute129_FishingMons}; const struct WildPokemon gRoute130_LandMons[] = { - {30, 30, SPECIES_WYNAUT}, - {35, 35, SPECIES_WYNAUT}, - {25, 25, SPECIES_WYNAUT}, - {40, 40, SPECIES_WYNAUT}, - {20, 20, SPECIES_WYNAUT}, - {45, 45, SPECIES_WYNAUT}, - {15, 15, SPECIES_WYNAUT}, - {50, 50, SPECIES_WYNAUT}, - {10, 10, SPECIES_WYNAUT}, - {5, 5, SPECIES_WYNAUT}, - {10, 10, SPECIES_WYNAUT}, - {5, 5, SPECIES_WYNAUT}, + {30, 30, SPECIES_WYNAUT}, + {35, 35, SPECIES_WYNAUT}, + {25, 25, SPECIES_WYNAUT}, + {40, 40, SPECIES_WYNAUT}, + {20, 20, SPECIES_WYNAUT}, + {45, 45, SPECIES_WYNAUT}, + {15, 15, SPECIES_WYNAUT}, + {50, 50, SPECIES_WYNAUT}, + {10, 10, SPECIES_WYNAUT}, + {5, 5, SPECIES_WYNAUT}, + {10, 10, SPECIES_WYNAUT}, + {5, 5, SPECIES_WYNAUT}, }; const struct WildPokemonInfo gRoute130_LandMonsInfo = {20, gRoute130_LandMons}; const struct WildPokemon gRoute130_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute130_WaterMonsInfo = {4, gRoute130_WaterMons}; const struct WildPokemon gRoute130_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute130_FishingMonsInfo = {30, gRoute130_FishingMons}; const struct WildPokemon gRoute131_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute131_WaterMonsInfo = {4, gRoute131_WaterMons}; const struct WildPokemon gRoute131_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute131_FishingMonsInfo = {30, gRoute131_FishingMons}; const struct WildPokemon gRoute132_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute132_WaterMonsInfo = {4, gRoute132_WaterMons}; const struct WildPokemon gRoute132_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_HORSEA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute132_FishingMonsInfo = {30, gRoute132_FishingMons}; const struct WildPokemon gRoute133_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute133_WaterMonsInfo = {4, gRoute133_WaterMons}; const struct WildPokemon gRoute133_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_HORSEA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute133_FishingMonsInfo = {30, gRoute133_FishingMons}; const struct WildPokemon gRoute134_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gRoute134_WaterMonsInfo = {4, gRoute134_WaterMons}; const struct WildPokemon gRoute134_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_HORSEA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gRoute134_FishingMonsInfo = {30, gRoute134_FishingMons}; const struct WildPokemon gAbandonedShip_HiddenFloorCorridors_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, }; const struct WildPokemonInfo gAbandonedShip_HiddenFloorCorridors_WaterMonsInfo = {4, gAbandonedShip_HiddenFloorCorridors_WaterMons}; const struct WildPokemon gAbandonedShip_HiddenFloorCorridors_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_TENTACOOL}, - {25, 30, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACOOL}, - {30, 35, SPECIES_TENTACRUEL}, - {25, 30, SPECIES_TENTACRUEL}, - {20, 25, SPECIES_TENTACRUEL}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_TENTACOOL}, + {25, 30, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, + {25, 30, SPECIES_TENTACRUEL}, + {20, 25, SPECIES_TENTACRUEL}, }; const struct WildPokemonInfo gAbandonedShip_HiddenFloorCorridors_FishingMonsInfo = {20, gAbandonedShip_HiddenFloorCorridors_FishingMons}; const struct WildPokemon gSeafloorCavern_Room1_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room1_LandMonsInfo = {4, gSeafloorCavern_Room1_LandMons}; const struct WildPokemon gSeafloorCavern_Room2_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room2_LandMonsInfo = {4, gSeafloorCavern_Room2_LandMons}; const struct WildPokemon gSeafloorCavern_Room3_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room3_LandMonsInfo = {4, gSeafloorCavern_Room3_LandMons}; const struct WildPokemon gSeafloorCavern_Room4_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room4_LandMonsInfo = {4, gSeafloorCavern_Room4_LandMons}; const struct WildPokemon gSeafloorCavern_Room5_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room5_LandMonsInfo = {4, gSeafloorCavern_Room5_LandMons}; const struct WildPokemon gSeafloorCavern_Room6_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room6_LandMonsInfo = {4, gSeafloorCavern_Room6_LandMons}; const struct WildPokemon gSeafloorCavern_Room6_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room6_WaterMonsInfo = {4, gSeafloorCavern_Room6_WaterMons}; const struct WildPokemon gSeafloorCavern_Room6_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gSeafloorCavern_Room6_FishingMonsInfo = {10, gSeafloorCavern_Room6_FishingMons}; const struct WildPokemon gSeafloorCavern_Room7_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room7_LandMonsInfo = {4, gSeafloorCavern_Room7_LandMons}; const struct WildPokemon gSeafloorCavern_Room7_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room7_WaterMonsInfo = {4, gSeafloorCavern_Room7_WaterMons}; const struct WildPokemon gSeafloorCavern_Room7_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gSeafloorCavern_Room7_FishingMonsInfo = {10, gSeafloorCavern_Room7_FishingMons}; const struct WildPokemon gSeafloorCavern_Room8_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Room8_LandMonsInfo = {4, gSeafloorCavern_Room8_LandMons}; const struct WildPokemon gSeafloorCavern_Entrance_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gSeafloorCavern_Entrance_WaterMonsInfo = {4, gSeafloorCavern_Entrance_WaterMons}; const struct WildPokemon gSeafloorCavern_Entrance_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gSeafloorCavern_Entrance_FishingMonsInfo = {10, gSeafloorCavern_Entrance_FishingMons}; const struct WildPokemon gCaveOfOrigin_Entrance_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {33, 33, SPECIES_ZUBAT}, - {28, 28, SPECIES_ZUBAT}, - {29, 29, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {35, 35, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gCaveOfOrigin_Entrance_LandMonsInfo = {4, gCaveOfOrigin_Entrance_LandMons}; const struct WildPokemon gCaveOfOrigin_1F_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gCaveOfOrigin_1F_LandMonsInfo = {4, gCaveOfOrigin_1F_LandMons}; const struct WildPokemon gCaveOfOrigin_UnusedRubySapphireMap1_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gCaveOfOrigin_UnusedRubySapphireMap1_LandMonsInfo = {4, gCaveOfOrigin_UnusedRubySapphireMap1_LandMons}; const struct WildPokemon gCaveOfOrigin_UnusedRubySapphireMap2_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gCaveOfOrigin_UnusedRubySapphireMap2_LandMonsInfo = {4, gCaveOfOrigin_UnusedRubySapphireMap2_LandMons}; const struct WildPokemon gCaveOfOrigin_UnusedRubySapphireMap3_LandMons[] = { - {30, 30, SPECIES_ZUBAT}, - {31, 31, SPECIES_ZUBAT}, - {32, 32, SPECIES_ZUBAT}, - {30, 30, SPECIES_SABLEYE}, - {32, 32, SPECIES_SABLEYE}, - {34, 34, SPECIES_SABLEYE}, - {33, 33, SPECIES_ZUBAT}, - {34, 34, SPECIES_ZUBAT}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {36, 36, SPECIES_GOLBAT}, + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gCaveOfOrigin_UnusedRubySapphireMap3_LandMonsInfo = {4, gCaveOfOrigin_UnusedRubySapphireMap3_LandMons}; const struct WildPokemon gNewMauville_Entrance_LandMons[] = { - {24, 24, SPECIES_VOLTORB}, - {24, 24, SPECIES_MAGNEMITE}, - {25, 25, SPECIES_VOLTORB}, - {25, 25, SPECIES_MAGNEMITE}, - {23, 23, SPECIES_VOLTORB}, - {23, 23, SPECIES_MAGNEMITE}, - {26, 26, SPECIES_VOLTORB}, - {26, 26, SPECIES_MAGNEMITE}, - {22, 22, SPECIES_VOLTORB}, - {22, 22, SPECIES_MAGNEMITE}, - {22, 22, SPECIES_VOLTORB}, - {22, 22, SPECIES_MAGNEMITE}, + {24, 24, SPECIES_VOLTORB}, + {24, 24, SPECIES_MAGNEMITE}, + {25, 25, SPECIES_VOLTORB}, + {25, 25, SPECIES_MAGNEMITE}, + {23, 23, SPECIES_VOLTORB}, + {23, 23, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_VOLTORB}, + {26, 26, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, }; const struct WildPokemonInfo gNewMauville_Entrance_LandMonsInfo = {10, gNewMauville_Entrance_LandMons}; const struct WildPokemon gSafariZone_Southwest_LandMons[] = { - {25, 25, SPECIES_ODDISH}, - {27, 27, SPECIES_ODDISH}, - {25, 25, SPECIES_GIRAFARIG}, - {27, 27, SPECIES_GIRAFARIG}, - {25, 25, SPECIES_NATU}, - {27, 27, SPECIES_DODUO}, - {25, 25, SPECIES_GLOOM}, - {27, 27, SPECIES_WOBBUFFET}, - {25, 25, SPECIES_PIKACHU}, - {27, 27, SPECIES_WOBBUFFET}, - {27, 27, SPECIES_PIKACHU}, - {29, 29, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {25, 25, SPECIES_GIRAFARIG}, + {27, 27, SPECIES_GIRAFARIG}, + {25, 25, SPECIES_NATU}, + {27, 27, SPECIES_DODUO}, + {25, 25, SPECIES_GLOOM}, + {27, 27, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_PIKACHU}, + {27, 27, SPECIES_WOBBUFFET}, + {27, 27, SPECIES_PIKACHU}, + {29, 29, SPECIES_WOBBUFFET}, }; const struct WildPokemonInfo gSafariZone_Southwest_LandMonsInfo = {25, gSafariZone_Southwest_LandMons}; const struct WildPokemon gSafariZone_Southwest_WaterMons[] = { - {20, 30, SPECIES_PSYDUCK}, - {20, 30, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, }; const struct WildPokemonInfo gSafariZone_Southwest_WaterMonsInfo = {9, gSafariZone_Southwest_WaterMons}; const struct WildPokemon gSafariZone_Southwest_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 25, SPECIES_GOLDEEN}, - {10, 30, SPECIES_GOLDEEN}, - {25, 30, SPECIES_GOLDEEN}, - {30, 35, SPECIES_GOLDEEN}, - {30, 35, SPECIES_SEAKING}, - {35, 40, SPECIES_SEAKING}, - {25, 30, SPECIES_SEAKING}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 25, SPECIES_GOLDEEN}, + {10, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_GOLDEEN}, + {30, 35, SPECIES_GOLDEEN}, + {30, 35, SPECIES_SEAKING}, + {35, 40, SPECIES_SEAKING}, + {25, 30, SPECIES_SEAKING}, }; const struct WildPokemonInfo gSafariZone_Southwest_FishingMonsInfo = {35, gSafariZone_Southwest_FishingMons}; const struct WildPokemon gSafariZone_North_LandMons[] = { - {27, 27, SPECIES_PHANPY}, - {27, 27, SPECIES_ODDISH}, - {29, 29, SPECIES_PHANPY}, - {29, 29, SPECIES_ODDISH}, - {27, 27, SPECIES_NATU}, - {29, 29, SPECIES_GLOOM}, - {31, 31, SPECIES_GLOOM}, - {29, 29, SPECIES_NATU}, - {29, 29, SPECIES_XATU}, - {27, 27, SPECIES_HERACROSS}, - {31, 31, SPECIES_XATU}, - {29, 29, SPECIES_HERACROSS}, + {27, 27, SPECIES_PHANPY}, + {27, 27, SPECIES_ODDISH}, + {29, 29, SPECIES_PHANPY}, + {29, 29, SPECIES_ODDISH}, + {27, 27, SPECIES_NATU}, + {29, 29, SPECIES_GLOOM}, + {31, 31, SPECIES_GLOOM}, + {29, 29, SPECIES_NATU}, + {29, 29, SPECIES_XATU}, + {27, 27, SPECIES_HERACROSS}, + {31, 31, SPECIES_XATU}, + {29, 29, SPECIES_HERACROSS}, }; const struct WildPokemonInfo gSafariZone_North_LandMonsInfo = {25, gSafariZone_North_LandMons}; const struct WildPokemon gSafariZone_North_RockSmashMons[] = { - {10, 15, SPECIES_GEODUDE}, - {5, 10, SPECIES_GEODUDE}, - {15, 20, SPECIES_GEODUDE}, - {20, 25, SPECIES_GEODUDE}, - {25, 30, SPECIES_GEODUDE}, + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {20, 25, SPECIES_GEODUDE}, + {25, 30, SPECIES_GEODUDE}, }; const struct WildPokemonInfo gSafariZone_North_RockSmashMonsInfo = {25, gSafariZone_North_RockSmashMons}; const struct WildPokemon gSafariZone_Northwest_LandMons[] = { - {27, 27, SPECIES_RHYHORN}, - {27, 27, SPECIES_ODDISH}, - {29, 29, SPECIES_RHYHORN}, - {29, 29, SPECIES_ODDISH}, - {27, 27, SPECIES_DODUO}, - {29, 29, SPECIES_GLOOM}, - {31, 31, SPECIES_GLOOM}, - {29, 29, SPECIES_DODUO}, - {29, 29, SPECIES_DODRIO}, - {27, 27, SPECIES_PINSIR}, - {31, 31, SPECIES_DODRIO}, - {29, 29, SPECIES_PINSIR}, + {27, 27, SPECIES_RHYHORN}, + {27, 27, SPECIES_ODDISH}, + {29, 29, SPECIES_RHYHORN}, + {29, 29, SPECIES_ODDISH}, + {27, 27, SPECIES_DODUO}, + {29, 29, SPECIES_GLOOM}, + {31, 31, SPECIES_GLOOM}, + {29, 29, SPECIES_DODUO}, + {29, 29, SPECIES_DODRIO}, + {27, 27, SPECIES_PINSIR}, + {31, 31, SPECIES_DODRIO}, + {29, 29, SPECIES_PINSIR}, }; const struct WildPokemonInfo gSafariZone_Northwest_LandMonsInfo = {25, gSafariZone_Northwest_LandMons}; const struct WildPokemon gSafariZone_Northwest_WaterMons[] = { - {20, 30, SPECIES_PSYDUCK}, - {20, 30, SPECIES_PSYDUCK}, - {30, 35, SPECIES_PSYDUCK}, - {30, 35, SPECIES_GOLDUCK}, - {25, 40, SPECIES_GOLDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_GOLDUCK}, + {25, 40, SPECIES_GOLDUCK}, }; const struct WildPokemonInfo gSafariZone_Northwest_WaterMonsInfo = {9, gSafariZone_Northwest_WaterMons}; const struct WildPokemon gSafariZone_Northwest_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 25, SPECIES_GOLDEEN}, - {10, 30, SPECIES_GOLDEEN}, - {25, 30, SPECIES_GOLDEEN}, - {30, 35, SPECIES_GOLDEEN}, - {30, 35, SPECIES_SEAKING}, - {35, 40, SPECIES_SEAKING}, - {25, 30, SPECIES_SEAKING}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 25, SPECIES_GOLDEEN}, + {10, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_GOLDEEN}, + {30, 35, SPECIES_GOLDEEN}, + {30, 35, SPECIES_SEAKING}, + {35, 40, SPECIES_SEAKING}, + {25, 30, SPECIES_SEAKING}, }; const struct WildPokemonInfo gSafariZone_Northwest_FishingMonsInfo = {35, gSafariZone_Northwest_FishingMons}; const struct WildPokemon gVictoryRoad_B1F_LandMons[] = { - {40, 40, SPECIES_GOLBAT}, - {40, 40, SPECIES_HARIYAMA}, - {40, 40, SPECIES_LAIRON}, - {40, 40, SPECIES_LAIRON}, - {38, 38, SPECIES_GOLBAT}, - {38, 38, SPECIES_HARIYAMA}, - {42, 42, SPECIES_GOLBAT}, - {42, 42, SPECIES_HARIYAMA}, - {42, 42, SPECIES_LAIRON}, - {38, 38, SPECIES_MAWILE}, - {42, 42, SPECIES_LAIRON}, - {38, 38, SPECIES_MAWILE}, + {40, 40, SPECIES_GOLBAT}, + {40, 40, SPECIES_HARIYAMA}, + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_LAIRON}, + {38, 38, SPECIES_GOLBAT}, + {38, 38, SPECIES_HARIYAMA}, + {42, 42, SPECIES_GOLBAT}, + {42, 42, SPECIES_HARIYAMA}, + {42, 42, SPECIES_LAIRON}, + {38, 38, SPECIES_MAWILE}, + {42, 42, SPECIES_LAIRON}, + {38, 38, SPECIES_MAWILE}, }; const struct WildPokemonInfo gVictoryRoad_B1F_LandMonsInfo = {10, gVictoryRoad_B1F_LandMons}; const struct WildPokemon gVictoryRoad_B1F_RockSmashMons[] = { - {30, 40, SPECIES_GRAVELER}, - {30, 40, SPECIES_GEODUDE}, - {35, 40, SPECIES_GRAVELER}, - {35, 40, SPECIES_GRAVELER}, - {35, 40, SPECIES_GRAVELER}, + {30, 40, SPECIES_GRAVELER}, + {30, 40, SPECIES_GEODUDE}, + {35, 40, SPECIES_GRAVELER}, + {35, 40, SPECIES_GRAVELER}, + {35, 40, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gVictoryRoad_B1F_RockSmashMonsInfo = {20, gVictoryRoad_B1F_RockSmashMons}; const struct WildPokemon gVictoryRoad_B2F_LandMons[] = { - {40, 40, SPECIES_GOLBAT}, - {40, 40, SPECIES_SABLEYE}, - {40, 40, SPECIES_LAIRON}, - {40, 40, SPECIES_LAIRON}, - {42, 42, SPECIES_GOLBAT}, - {42, 42, SPECIES_SABLEYE}, - {44, 44, SPECIES_GOLBAT}, - {44, 44, SPECIES_SABLEYE}, - {42, 42, SPECIES_LAIRON}, - {42, 42, SPECIES_MAWILE}, - {44, 44, SPECIES_LAIRON}, - {44, 44, SPECIES_MAWILE}, + {40, 40, SPECIES_GOLBAT}, + {40, 40, SPECIES_SABLEYE}, + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_LAIRON}, + {42, 42, SPECIES_GOLBAT}, + {42, 42, SPECIES_SABLEYE}, + {44, 44, SPECIES_GOLBAT}, + {44, 44, SPECIES_SABLEYE}, + {42, 42, SPECIES_LAIRON}, + {42, 42, SPECIES_MAWILE}, + {44, 44, SPECIES_LAIRON}, + {44, 44, SPECIES_MAWILE}, }; const struct WildPokemonInfo gVictoryRoad_B2F_LandMonsInfo = {10, gVictoryRoad_B2F_LandMons}; const struct WildPokemon gVictoryRoad_B2F_WaterMons[] = { - {30, 35, SPECIES_GOLBAT}, - {25, 30, SPECIES_GOLBAT}, - {35, 40, SPECIES_GOLBAT}, - {35, 40, SPECIES_GOLBAT}, - {35, 40, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, + {25, 30, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gVictoryRoad_B2F_WaterMonsInfo = {4, gVictoryRoad_B2F_WaterMons}; const struct WildPokemon gVictoryRoad_B2F_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, }; const struct WildPokemonInfo gVictoryRoad_B2F_FishingMonsInfo = {30, gVictoryRoad_B2F_FishingMons}; const struct WildPokemon gMeteorFalls_1F_1R_LandMons[] = { - {16, 16, SPECIES_ZUBAT}, - {17, 17, SPECIES_ZUBAT}, - {18, 18, SPECIES_ZUBAT}, - {15, 15, SPECIES_ZUBAT}, - {14, 14, SPECIES_ZUBAT}, - {16, 16, SPECIES_SOLROCK}, - {18, 18, SPECIES_SOLROCK}, - {14, 14, SPECIES_SOLROCK}, - {19, 19, SPECIES_ZUBAT}, - {20, 20, SPECIES_ZUBAT}, - {19, 19, SPECIES_ZUBAT}, - {20, 20, SPECIES_ZUBAT}, + {16, 16, SPECIES_ZUBAT}, + {17, 17, SPECIES_ZUBAT}, + {18, 18, SPECIES_ZUBAT}, + {15, 15, SPECIES_ZUBAT}, + {14, 14, SPECIES_ZUBAT}, + {16, 16, SPECIES_SOLROCK}, + {18, 18, SPECIES_SOLROCK}, + {14, 14, SPECIES_SOLROCK}, + {19, 19, SPECIES_ZUBAT}, + {20, 20, SPECIES_ZUBAT}, + {19, 19, SPECIES_ZUBAT}, + {20, 20, SPECIES_ZUBAT}, }; const struct WildPokemonInfo gMeteorFalls_1F_1R_LandMonsInfo = {10, gMeteorFalls_1F_1R_LandMons}; const struct WildPokemon gMeteorFalls_1F_1R_WaterMons[] = { - {5, 35, SPECIES_ZUBAT}, - {30, 35, SPECIES_ZUBAT}, - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, }; const struct WildPokemonInfo gMeteorFalls_1F_1R_WaterMonsInfo = {4, gMeteorFalls_1F_1R_WaterMons}; const struct WildPokemon gMeteorFalls_1F_1R_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {20, 25, SPECIES_BARBOACH}, - {35, 40, SPECIES_BARBOACH}, - {40, 45, SPECIES_BARBOACH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, }; const struct WildPokemonInfo gMeteorFalls_1F_1R_FishingMonsInfo = {30, gMeteorFalls_1F_1R_FishingMons}; const struct WildPokemon gMeteorFalls_1F_2R_LandMons[] = { - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_SOLROCK}, - {33, 33, SPECIES_SOLROCK}, - {37, 37, SPECIES_SOLROCK}, - {35, 35, SPECIES_GOLBAT}, - {39, 39, SPECIES_SOLROCK}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_SOLROCK}, + {33, 33, SPECIES_SOLROCK}, + {37, 37, SPECIES_SOLROCK}, + {35, 35, SPECIES_GOLBAT}, + {39, 39, SPECIES_SOLROCK}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gMeteorFalls_1F_2R_LandMonsInfo = {10, gMeteorFalls_1F_2R_LandMons}; const struct WildPokemon gMeteorFalls_1F_2R_WaterMons[] = { - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, }; const struct WildPokemonInfo gMeteorFalls_1F_2R_WaterMonsInfo = {4, gMeteorFalls_1F_2R_WaterMons}; const struct WildPokemon gMeteorFalls_1F_2R_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, }; const struct WildPokemonInfo gMeteorFalls_1F_2R_FishingMonsInfo = {30, gMeteorFalls_1F_2R_FishingMons}; const struct WildPokemon gMeteorFalls_B1F_1R_LandMons[] = { - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_SOLROCK}, - {33, 33, SPECIES_SOLROCK}, - {37, 37, SPECIES_SOLROCK}, - {35, 35, SPECIES_GOLBAT}, - {39, 39, SPECIES_SOLROCK}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_SOLROCK}, + {33, 33, SPECIES_SOLROCK}, + {37, 37, SPECIES_SOLROCK}, + {35, 35, SPECIES_GOLBAT}, + {39, 39, SPECIES_SOLROCK}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gMeteorFalls_B1F_1R_LandMonsInfo = {10, gMeteorFalls_B1F_1R_LandMons}; const struct WildPokemon gMeteorFalls_B1F_1R_WaterMons[] = { - {30, 35, SPECIES_GOLBAT}, - {30, 35, SPECIES_GOLBAT}, - {25, 35, SPECIES_SOLROCK}, - {15, 25, SPECIES_SOLROCK}, - {5, 15, SPECIES_SOLROCK}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, }; const struct WildPokemonInfo gMeteorFalls_B1F_1R_WaterMonsInfo = {4, gMeteorFalls_B1F_1R_WaterMons}; const struct WildPokemon gMeteorFalls_B1F_1R_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_BARBOACH}, - {25, 30, SPECIES_BARBOACH}, - {30, 35, SPECIES_BARBOACH}, - {30, 35, SPECIES_WHISCASH}, - {35, 40, SPECIES_WHISCASH}, - {40, 45, SPECIES_WHISCASH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, }; const struct WildPokemonInfo gMeteorFalls_B1F_1R_FishingMonsInfo = {30, gMeteorFalls_B1F_1R_FishingMons}; const struct WildPokemon gShoalCave_LowTideStairsRoom_LandMons[] = { - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, }; const struct WildPokemonInfo gShoalCave_LowTideStairsRoom_LandMonsInfo = {10, gShoalCave_LowTideStairsRoom_LandMons}; const struct WildPokemon gShoalCave_LowTideLowerRoom_LandMons[] = { - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, }; const struct WildPokemonInfo gShoalCave_LowTideLowerRoom_LandMonsInfo = {10, gShoalCave_LowTideLowerRoom_LandMons}; const struct WildPokemon gShoalCave_LowTideInnerRoom_LandMons[] = { - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, }; const struct WildPokemonInfo gShoalCave_LowTideInnerRoom_LandMonsInfo = {10, gShoalCave_LowTideInnerRoom_LandMons}; const struct WildPokemon gShoalCave_LowTideInnerRoom_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {25, 30, SPECIES_SPHEAL}, - {25, 30, SPECIES_SPHEAL}, - {25, 35, SPECIES_SPHEAL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {25, 30, SPECIES_SPHEAL}, + {25, 30, SPECIES_SPHEAL}, + {25, 35, SPECIES_SPHEAL}, }; const struct WildPokemonInfo gShoalCave_LowTideInnerRoom_WaterMonsInfo = {4, gShoalCave_LowTideInnerRoom_WaterMons}; const struct WildPokemon gShoalCave_LowTideInnerRoom_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gShoalCave_LowTideInnerRoom_FishingMonsInfo = {10, gShoalCave_LowTideInnerRoom_FishingMons}; const struct WildPokemon gShoalCave_LowTideEntranceRoom_LandMons[] = { - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {32, 32, SPECIES_ZUBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, - {32, 32, SPECIES_GOLBAT}, - {32, 32, SPECIES_SPHEAL}, + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, }; const struct WildPokemonInfo gShoalCave_LowTideEntranceRoom_LandMonsInfo = {10, gShoalCave_LowTideEntranceRoom_LandMons}; const struct WildPokemon gShoalCave_LowTideEntranceRoom_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {5, 35, SPECIES_ZUBAT}, - {25, 30, SPECIES_SPHEAL}, - {25, 30, SPECIES_SPHEAL}, - {25, 35, SPECIES_SPHEAL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {25, 30, SPECIES_SPHEAL}, + {25, 30, SPECIES_SPHEAL}, + {25, 35, SPECIES_SPHEAL}, }; const struct WildPokemonInfo gShoalCave_LowTideEntranceRoom_WaterMonsInfo = {4, gShoalCave_LowTideEntranceRoom_WaterMons}; const struct WildPokemon gShoalCave_LowTideEntranceRoom_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gShoalCave_LowTideEntranceRoom_FishingMonsInfo = {10, gShoalCave_LowTideEntranceRoom_FishingMons}; const struct WildPokemon gLilycoveCity_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gLilycoveCity_WaterMonsInfo = {4, gLilycoveCity_WaterMons}; const struct WildPokemon gLilycoveCity_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_STARYU}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_STARYU}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gLilycoveCity_FishingMonsInfo = {10, gLilycoveCity_FishingMons}; const struct WildPokemon gDewfordTown_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gDewfordTown_WaterMonsInfo = {4, gDewfordTown_WaterMons}; const struct WildPokemon gDewfordTown_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gDewfordTown_FishingMonsInfo = {10, gDewfordTown_FishingMons}; const struct WildPokemon gSlateportCity_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gSlateportCity_WaterMonsInfo = {4, gSlateportCity_WaterMons}; const struct WildPokemon gSlateportCity_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_WAILMER}, - {20, 25, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gSlateportCity_FishingMonsInfo = {10, gSlateportCity_FishingMons}; const struct WildPokemon gMossdeepCity_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gMossdeepCity_WaterMonsInfo = {4, gMossdeepCity_WaterMons}; const struct WildPokemon gMossdeepCity_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gMossdeepCity_FishingMonsInfo = {10, gMossdeepCity_FishingMons}; const struct WildPokemon gPacifidlogTown_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gPacifidlogTown_WaterMonsInfo = {4, gPacifidlogTown_WaterMons}; const struct WildPokemon gPacifidlogTown_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_SHARPEDO}, - {30, 35, SPECIES_WAILMER}, - {25, 30, SPECIES_WAILMER}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gPacifidlogTown_FishingMonsInfo = {10, gPacifidlogTown_FishingMons}; const struct WildPokemon gEverGrandeCity_WaterMons[] = { - {5, 35, SPECIES_TENTACOOL}, - {10, 30, SPECIES_WINGULL}, - {15, 25, SPECIES_WINGULL}, - {25, 30, SPECIES_PELIPPER}, - {25, 30, SPECIES_PELIPPER}, + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, }; const struct WildPokemonInfo gEverGrandeCity_WaterMonsInfo = {4, gEverGrandeCity_WaterMons}; const struct WildPokemon gEverGrandeCity_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_LUVDISC}, - {10, 30, SPECIES_WAILMER}, - {30, 35, SPECIES_LUVDISC}, - {30, 35, SPECIES_WAILMER}, - {30, 35, SPECIES_CORSOLA}, - {35, 40, SPECIES_WAILMER}, - {40, 45, SPECIES_WAILMER}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_LUVDISC}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_LUVDISC}, + {30, 35, SPECIES_WAILMER}, + {30, 35, SPECIES_CORSOLA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, }; const struct WildPokemonInfo gEverGrandeCity_FishingMonsInfo = {10, gEverGrandeCity_FishingMons}; const struct WildPokemon gPetalburgCity_WaterMons[] = { - {20, 30, SPECIES_MARILL}, - {10, 20, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, - {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, }; const struct WildPokemonInfo gPetalburgCity_WaterMonsInfo = {1, gPetalburgCity_WaterMons}; const struct WildPokemon gPetalburgCity_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_GOLDEEN}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_GOLDEEN}, - {10, 30, SPECIES_CORPHISH}, - {25, 30, SPECIES_CORPHISH}, - {30, 35, SPECIES_CORPHISH}, - {20, 25, SPECIES_CORPHISH}, - {35, 40, SPECIES_CORPHISH}, - {40, 45, SPECIES_CORPHISH}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, }; const struct WildPokemonInfo gPetalburgCity_FishingMonsInfo = {10, gPetalburgCity_FishingMons}; const struct WildPokemon gUnderwater1_WaterMons[] = { - {20, 30, SPECIES_CLAMPERL}, - {20, 30, SPECIES_CHINCHOU}, - {30, 35, SPECIES_CLAMPERL}, - {30, 35, SPECIES_RELICANTH}, - {30, 35, SPECIES_RELICANTH}, + {20, 30, SPECIES_CLAMPERL}, + {20, 30, SPECIES_CHINCHOU}, + {30, 35, SPECIES_CLAMPERL}, + {30, 35, SPECIES_RELICANTH}, + {30, 35, SPECIES_RELICANTH}, }; const struct WildPokemonInfo gUnderwater1_WaterMonsInfo = {4, gUnderwater1_WaterMons}; const struct WildPokemon gShoalCave_LowTideIceRoom_LandMons[] = { - {26, 26, SPECIES_ZUBAT}, - {26, 26, SPECIES_SPHEAL}, - {28, 28, SPECIES_ZUBAT}, - {28, 28, SPECIES_SPHEAL}, - {30, 30, SPECIES_ZUBAT}, - {30, 30, SPECIES_SPHEAL}, - {26, 26, SPECIES_SNORUNT}, - {32, 32, SPECIES_SPHEAL}, - {30, 30, SPECIES_GOLBAT}, - {28, 28, SPECIES_SNORUNT}, - {32, 32, SPECIES_GOLBAT}, - {30, 30, SPECIES_SNORUNT}, + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {26, 26, SPECIES_SNORUNT}, + {32, 32, SPECIES_SPHEAL}, + {30, 30, SPECIES_GOLBAT}, + {28, 28, SPECIES_SNORUNT}, + {32, 32, SPECIES_GOLBAT}, + {30, 30, SPECIES_SNORUNT}, }; const struct WildPokemonInfo gShoalCave_LowTideIceRoom_LandMonsInfo = {10, gShoalCave_LowTideIceRoom_LandMons}; const struct WildPokemon gSkyPillar_1F_LandMons[] = { - {33, 33, SPECIES_SABLEYE}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {34, 34, SPECIES_SABLEYE}, - {36, 36, SPECIES_CLAYDOL}, - {37, 37, SPECIES_BANETTE}, - {38, 38, SPECIES_BANETTE}, - {36, 36, SPECIES_CLAYDOL}, - {37, 37, SPECIES_CLAYDOL}, - {38, 38, SPECIES_CLAYDOL}, - {37, 37, SPECIES_CLAYDOL}, - {38, 38, SPECIES_CLAYDOL}, + {33, 33, SPECIES_SABLEYE}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {34, 34, SPECIES_SABLEYE}, + {36, 36, SPECIES_CLAYDOL}, + {37, 37, SPECIES_BANETTE}, + {38, 38, SPECIES_BANETTE}, + {36, 36, SPECIES_CLAYDOL}, + {37, 37, SPECIES_CLAYDOL}, + {38, 38, SPECIES_CLAYDOL}, + {37, 37, SPECIES_CLAYDOL}, + {38, 38, SPECIES_CLAYDOL}, }; const struct WildPokemonInfo gSkyPillar_1F_LandMonsInfo = {10, gSkyPillar_1F_LandMons}; const struct WildPokemon gSootopolisCity_WaterMons[] = { - {5, 35, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {15, 25, SPECIES_MAGIKARP}, - {25, 30, SPECIES_MAGIKARP}, - {25, 30, SPECIES_MAGIKARP}, + {5, 35, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {15, 25, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, }; const struct WildPokemonInfo gSootopolisCity_WaterMonsInfo = {1, gSootopolisCity_WaterMons}; const struct WildPokemon gSootopolisCity_FishingMons[] = { - {5, 10, SPECIES_MAGIKARP}, - {5, 10, SPECIES_TENTACOOL}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {10, 30, SPECIES_MAGIKARP}, - {30, 35, SPECIES_MAGIKARP}, - {30, 35, SPECIES_MAGIKARP}, - {35, 40, SPECIES_GYARADOS}, - {35, 45, SPECIES_GYARADOS}, - {5, 45, SPECIES_GYARADOS}, + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {35, 40, SPECIES_GYARADOS}, + {35, 45, SPECIES_GYARADOS}, + {5, 45, SPECIES_GYARADOS}, }; const struct WildPokemonInfo gSootopolisCity_FishingMonsInfo = {10, gSootopolisCity_FishingMons}; const struct WildPokemon gSkyPillar_3F_LandMons[] = { - {33, 33, SPECIES_SABLEYE}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {34, 34, SPECIES_SABLEYE}, - {36, 36, SPECIES_CLAYDOL}, - {37, 37, SPECIES_BANETTE}, - {38, 38, SPECIES_BANETTE}, - {36, 36, SPECIES_CLAYDOL}, - {37, 37, SPECIES_CLAYDOL}, - {38, 38, SPECIES_CLAYDOL}, - {37, 37, SPECIES_CLAYDOL}, - {38, 38, SPECIES_CLAYDOL}, + {33, 33, SPECIES_SABLEYE}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {34, 34, SPECIES_SABLEYE}, + {36, 36, SPECIES_CLAYDOL}, + {37, 37, SPECIES_BANETTE}, + {38, 38, SPECIES_BANETTE}, + {36, 36, SPECIES_CLAYDOL}, + {37, 37, SPECIES_CLAYDOL}, + {38, 38, SPECIES_CLAYDOL}, + {37, 37, SPECIES_CLAYDOL}, + {38, 38, SPECIES_CLAYDOL}, }; const struct WildPokemonInfo gSkyPillar_3F_LandMonsInfo = {10, gSkyPillar_3F_LandMons}; const struct WildPokemon gSkyPillar_5F_LandMons[] = { - {33, 33, SPECIES_SABLEYE}, - {34, 34, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {34, 34, SPECIES_SABLEYE}, - {36, 36, SPECIES_CLAYDOL}, - {37, 37, SPECIES_BANETTE}, - {38, 38, SPECIES_BANETTE}, - {36, 36, SPECIES_CLAYDOL}, - {37, 37, SPECIES_CLAYDOL}, - {38, 38, SPECIES_ALTARIA}, - {39, 39, SPECIES_ALTARIA}, - {39, 39, SPECIES_ALTARIA}, + {33, 33, SPECIES_SABLEYE}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {34, 34, SPECIES_SABLEYE}, + {36, 36, SPECIES_CLAYDOL}, + {37, 37, SPECIES_BANETTE}, + {38, 38, SPECIES_BANETTE}, + {36, 36, SPECIES_CLAYDOL}, + {37, 37, SPECIES_CLAYDOL}, + {38, 38, SPECIES_ALTARIA}, + {39, 39, SPECIES_ALTARIA}, + {39, 39, SPECIES_ALTARIA}, }; const struct WildPokemonInfo gSkyPillar_5F_LandMonsInfo = {10, gSkyPillar_5F_LandMons}; const struct WildPokemon gSafariZone_Southeast_LandMons[] = { - {33, 33, SPECIES_SUNKERN}, - {34, 34, SPECIES_MAREEP}, - {35, 35, SPECIES_SUNKERN}, - {36, 36, SPECIES_MAREEP}, - {34, 34, SPECIES_AIPOM}, - {33, 33, SPECIES_SPINARAK}, - {35, 35, SPECIES_HOOTHOOT}, - {34, 34, SPECIES_SNUBBULL}, - {36, 36, SPECIES_STANTLER}, - {37, 37, SPECIES_GLIGAR}, - {39, 39, SPECIES_STANTLER}, - {40, 40, SPECIES_GLIGAR}, + {33, 33, SPECIES_SUNKERN}, + {34, 34, SPECIES_MAREEP}, + {35, 35, SPECIES_SUNKERN}, + {36, 36, SPECIES_MAREEP}, + {34, 34, SPECIES_AIPOM}, + {33, 33, SPECIES_SPINARAK}, + {35, 35, SPECIES_HOOTHOOT}, + {34, 34, SPECIES_SNUBBULL}, + {36, 36, SPECIES_STANTLER}, + {37, 37, SPECIES_GLIGAR}, + {39, 39, SPECIES_STANTLER}, + {40, 40, SPECIES_GLIGAR}, }; const struct WildPokemonInfo gSafariZone_Southeast_LandMonsInfo = {25, gSafariZone_Southeast_LandMons}; const struct WildPokemon gSafariZone_Southeast_WaterMons[] = { - {25, 30, SPECIES_WOOPER}, - {25, 30, SPECIES_MARILL}, - {25, 30, SPECIES_MARILL}, - {30, 35, SPECIES_MARILL}, - {35, 40, SPECIES_QUAGSIRE}, + {25, 30, SPECIES_WOOPER}, + {25, 30, SPECIES_MARILL}, + {25, 30, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {35, 40, SPECIES_QUAGSIRE}, }; const struct WildPokemonInfo gSafariZone_Southeast_WaterMonsInfo = {9, gSafariZone_Southeast_WaterMons}; const struct WildPokemon gSafariZone_Southeast_FishingMons[] = { - {25, 30, SPECIES_MAGIKARP}, - {25, 30, SPECIES_GOLDEEN}, - {25, 30, SPECIES_MAGIKARP}, - {25, 30, SPECIES_GOLDEEN}, - {30, 35, SPECIES_REMORAID}, - {25, 30, SPECIES_GOLDEEN}, - {25, 30, SPECIES_REMORAID}, - {30, 35, SPECIES_REMORAID}, - {30, 35, SPECIES_REMORAID}, - {35, 40, SPECIES_OCTILLERY}, + {25, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_GOLDEEN}, + {30, 35, SPECIES_REMORAID}, + {25, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_REMORAID}, + {30, 35, SPECIES_REMORAID}, + {30, 35, SPECIES_REMORAID}, + {35, 40, SPECIES_OCTILLERY}, }; const struct WildPokemonInfo gSafariZone_Southeast_FishingMonsInfo = {35, gSafariZone_Southeast_FishingMons}; const struct WildPokemon gSafariZone_Northeast_LandMons[] = { - {33, 33, SPECIES_AIPOM}, - {34, 34, SPECIES_TEDDIURSA}, - {35, 35, SPECIES_AIPOM}, - {36, 36, SPECIES_TEDDIURSA}, - {34, 34, SPECIES_SUNKERN}, - {33, 33, SPECIES_LEDYBA}, - {35, 35, SPECIES_HOOTHOOT}, - {34, 34, SPECIES_PINECO}, - {36, 36, SPECIES_HOUNDOUR}, - {37, 37, SPECIES_MILTANK}, - {39, 39, SPECIES_HOUNDOUR}, - {40, 40, SPECIES_MILTANK}, + {33, 33, SPECIES_AIPOM}, + {34, 34, SPECIES_TEDDIURSA}, + {35, 35, SPECIES_AIPOM}, + {36, 36, SPECIES_TEDDIURSA}, + {34, 34, SPECIES_SUNKERN}, + {33, 33, SPECIES_LEDYBA}, + {35, 35, SPECIES_HOOTHOOT}, + {34, 34, SPECIES_PINECO}, + {36, 36, SPECIES_HOUNDOUR}, + {37, 37, SPECIES_MILTANK}, + {39, 39, SPECIES_HOUNDOUR}, + {40, 40, SPECIES_MILTANK}, }; const struct WildPokemonInfo gSafariZone_Northeast_LandMonsInfo = {25, gSafariZone_Northeast_LandMons}; const struct WildPokemon gSafariZone_Northeast_RockSmashMons[] = { - {25, 30, SPECIES_SHUCKLE}, - {20, 25, SPECIES_SHUCKLE}, - {30, 35, SPECIES_SHUCKLE}, - {30, 35, SPECIES_SHUCKLE}, - {35, 40, SPECIES_SHUCKLE}, + {25, 30, SPECIES_SHUCKLE}, + {20, 25, SPECIES_SHUCKLE}, + {30, 35, SPECIES_SHUCKLE}, + {30, 35, SPECIES_SHUCKLE}, + {35, 40, SPECIES_SHUCKLE}, }; const struct WildPokemonInfo gSafariZone_Northeast_RockSmashMonsInfo = {25, gSafariZone_Northeast_RockSmashMons}; const struct WildPokemon gMagmaHideout_1F_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_1F_LandMonsInfo = {10, gMagmaHideout_1F_LandMons}; const struct WildPokemon gMagmaHideout_2F_1R_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_2F_1R_LandMonsInfo = {10, gMagmaHideout_2F_1R_LandMons}; const struct WildPokemon gMagmaHideout_2F_2R_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_2F_2R_LandMonsInfo = {10, gMagmaHideout_2F_2R_LandMons}; const struct WildPokemon gMagmaHideout_3F_1R_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_3F_1R_LandMonsInfo = {10, gMagmaHideout_3F_1R_LandMons}; const struct WildPokemon gMagmaHideout_3F_2R_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_3F_2R_LandMonsInfo = {10, gMagmaHideout_3F_2R_LandMons}; const struct WildPokemon gMagmaHideout_4F_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_4F_LandMonsInfo = {10, gMagmaHideout_4F_LandMons}; const struct WildPokemon gMagmaHideout_3F_3R_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_3F_3R_LandMonsInfo = {10, gMagmaHideout_3F_3R_LandMons}; const struct WildPokemon gMagmaHideout_2F_3R_LandMons[] = { - {27, 27, SPECIES_GEODUDE}, - {28, 28, SPECIES_TORKOAL}, - {28, 28, SPECIES_GEODUDE}, - {30, 30, SPECIES_TORKOAL}, - {29, 29, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GEODUDE}, - {30, 30, SPECIES_GRAVELER}, - {30, 30, SPECIES_GRAVELER}, - {31, 31, SPECIES_GRAVELER}, - {32, 32, SPECIES_GRAVELER}, - {33, 33, SPECIES_GRAVELER}, + {27, 27, SPECIES_GEODUDE}, + {28, 28, SPECIES_TORKOAL}, + {28, 28, SPECIES_GEODUDE}, + {30, 30, SPECIES_TORKOAL}, + {29, 29, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GEODUDE}, + {30, 30, SPECIES_GRAVELER}, + {30, 30, SPECIES_GRAVELER}, + {31, 31, SPECIES_GRAVELER}, + {32, 32, SPECIES_GRAVELER}, + {33, 33, SPECIES_GRAVELER}, }; const struct WildPokemonInfo gMagmaHideout_2F_3R_LandMonsInfo = {10, gMagmaHideout_2F_3R_LandMons}; const struct WildPokemon gMirageTower_1F_LandMons[] = { - {21, 21, SPECIES_SANDSHREW}, - {21, 21, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {22, 22, SPECIES_SANDSHREW}, - {22, 22, SPECIES_TRAPINCH}, - {23, 23, SPECIES_SANDSHREW}, - {23, 23, SPECIES_TRAPINCH}, - {24, 24, SPECIES_SANDSHREW}, - {24, 24, SPECIES_TRAPINCH}, + {21, 21, SPECIES_SANDSHREW}, + {21, 21, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {22, 22, SPECIES_SANDSHREW}, + {22, 22, SPECIES_TRAPINCH}, + {23, 23, SPECIES_SANDSHREW}, + {23, 23, SPECIES_TRAPINCH}, + {24, 24, SPECIES_SANDSHREW}, + {24, 24, SPECIES_TRAPINCH}, }; const struct WildPokemonInfo gMirageTower_1F_LandMonsInfo = {10, gMirageTower_1F_LandMons}; const struct WildPokemon gMirageTower_2F_LandMons[] = { - {21, 21, SPECIES_SANDSHREW}, - {21, 21, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {22, 22, SPECIES_SANDSHREW}, - {22, 22, SPECIES_TRAPINCH}, - {23, 23, SPECIES_SANDSHREW}, - {23, 23, SPECIES_TRAPINCH}, - {24, 24, SPECIES_SANDSHREW}, - {24, 24, SPECIES_TRAPINCH}, + {21, 21, SPECIES_SANDSHREW}, + {21, 21, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {22, 22, SPECIES_SANDSHREW}, + {22, 22, SPECIES_TRAPINCH}, + {23, 23, SPECIES_SANDSHREW}, + {23, 23, SPECIES_TRAPINCH}, + {24, 24, SPECIES_SANDSHREW}, + {24, 24, SPECIES_TRAPINCH}, }; const struct WildPokemonInfo gMirageTower_2F_LandMonsInfo = {10, gMirageTower_2F_LandMons}; const struct WildPokemon gMirageTower_3F_LandMons[] = { - {21, 21, SPECIES_SANDSHREW}, - {21, 21, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {22, 22, SPECIES_SANDSHREW}, - {22, 22, SPECIES_TRAPINCH}, - {23, 23, SPECIES_SANDSHREW}, - {23, 23, SPECIES_TRAPINCH}, - {24, 24, SPECIES_SANDSHREW}, - {24, 24, SPECIES_TRAPINCH}, + {21, 21, SPECIES_SANDSHREW}, + {21, 21, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {22, 22, SPECIES_SANDSHREW}, + {22, 22, SPECIES_TRAPINCH}, + {23, 23, SPECIES_SANDSHREW}, + {23, 23, SPECIES_TRAPINCH}, + {24, 24, SPECIES_SANDSHREW}, + {24, 24, SPECIES_TRAPINCH}, }; const struct WildPokemonInfo gMirageTower_3F_LandMonsInfo = {10, gMirageTower_3F_LandMons}; const struct WildPokemon gMirageTower_4F_LandMons[] = { - {21, 21, SPECIES_SANDSHREW}, - {21, 21, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {20, 20, SPECIES_SANDSHREW}, - {20, 20, SPECIES_TRAPINCH}, - {22, 22, SPECIES_SANDSHREW}, - {22, 22, SPECIES_TRAPINCH}, - {23, 23, SPECIES_SANDSHREW}, - {23, 23, SPECIES_TRAPINCH}, - {24, 24, SPECIES_SANDSHREW}, - {24, 24, SPECIES_TRAPINCH}, + {21, 21, SPECIES_SANDSHREW}, + {21, 21, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {22, 22, SPECIES_SANDSHREW}, + {22, 22, SPECIES_TRAPINCH}, + {23, 23, SPECIES_SANDSHREW}, + {23, 23, SPECIES_TRAPINCH}, + {24, 24, SPECIES_SANDSHREW}, + {24, 24, SPECIES_TRAPINCH}, }; const struct WildPokemonInfo gMirageTower_4F_LandMonsInfo = {10, gMirageTower_4F_LandMons}; const struct WildPokemon gDesertUnderpass_LandMons[] = { - {38, 38, SPECIES_DITTO}, - {35, 35, SPECIES_WHISMUR}, - {40, 40, SPECIES_DITTO}, - {40, 40, SPECIES_LOUDRED}, - {41, 41, SPECIES_DITTO}, - {36, 36, SPECIES_WHISMUR}, - {38, 38, SPECIES_LOUDRED}, - {42, 42, SPECIES_DITTO}, - {38, 38, SPECIES_WHISMUR}, - {43, 43, SPECIES_DITTO}, - {44, 44, SPECIES_LOUDRED}, - {45, 45, SPECIES_DITTO}, + {38, 38, SPECIES_DITTO}, + {35, 35, SPECIES_WHISMUR}, + {40, 40, SPECIES_DITTO}, + {40, 40, SPECIES_LOUDRED}, + {41, 41, SPECIES_DITTO}, + {36, 36, SPECIES_WHISMUR}, + {38, 38, SPECIES_LOUDRED}, + {42, 42, SPECIES_DITTO}, + {38, 38, SPECIES_WHISMUR}, + {43, 43, SPECIES_DITTO}, + {44, 44, SPECIES_LOUDRED}, + {45, 45, SPECIES_DITTO}, }; const struct WildPokemonInfo gDesertUnderpass_LandMonsInfo = {10, gDesertUnderpass_LandMons}; const struct WildPokemon gArtisanCave_B1F_LandMons[] = { - {40, 40, SPECIES_SMEARGLE}, - {41, 41, SPECIES_SMEARGLE}, - {42, 42, SPECIES_SMEARGLE}, - {43, 43, SPECIES_SMEARGLE}, - {44, 44, SPECIES_SMEARGLE}, - {45, 45, SPECIES_SMEARGLE}, - {46, 46, SPECIES_SMEARGLE}, - {47, 47, SPECIES_SMEARGLE}, - {48, 48, SPECIES_SMEARGLE}, - {49, 49, SPECIES_SMEARGLE}, - {50, 50, SPECIES_SMEARGLE}, - {50, 50, SPECIES_SMEARGLE}, + {40, 40, SPECIES_SMEARGLE}, + {41, 41, SPECIES_SMEARGLE}, + {42, 42, SPECIES_SMEARGLE}, + {43, 43, SPECIES_SMEARGLE}, + {44, 44, SPECIES_SMEARGLE}, + {45, 45, SPECIES_SMEARGLE}, + {46, 46, SPECIES_SMEARGLE}, + {47, 47, SPECIES_SMEARGLE}, + {48, 48, SPECIES_SMEARGLE}, + {49, 49, SPECIES_SMEARGLE}, + {50, 50, SPECIES_SMEARGLE}, + {50, 50, SPECIES_SMEARGLE}, }; const struct WildPokemonInfo gArtisanCave_B1F_LandMonsInfo = {10, gArtisanCave_B1F_LandMons}; const struct WildPokemon gArtisanCave_1F_LandMons[] = { - {40, 40, SPECIES_SMEARGLE}, - {41, 41, SPECIES_SMEARGLE}, - {42, 42, SPECIES_SMEARGLE}, - {43, 43, SPECIES_SMEARGLE}, - {44, 44, SPECIES_SMEARGLE}, - {45, 45, SPECIES_SMEARGLE}, - {46, 46, SPECIES_SMEARGLE}, - {47, 47, SPECIES_SMEARGLE}, - {48, 48, SPECIES_SMEARGLE}, - {49, 49, SPECIES_SMEARGLE}, - {50, 50, SPECIES_SMEARGLE}, - {50, 50, SPECIES_SMEARGLE}, + {40, 40, SPECIES_SMEARGLE}, + {41, 41, SPECIES_SMEARGLE}, + {42, 42, SPECIES_SMEARGLE}, + {43, 43, SPECIES_SMEARGLE}, + {44, 44, SPECIES_SMEARGLE}, + {45, 45, SPECIES_SMEARGLE}, + {46, 46, SPECIES_SMEARGLE}, + {47, 47, SPECIES_SMEARGLE}, + {48, 48, SPECIES_SMEARGLE}, + {49, 49, SPECIES_SMEARGLE}, + {50, 50, SPECIES_SMEARGLE}, + {50, 50, SPECIES_SMEARGLE}, }; const struct WildPokemonInfo gArtisanCave_1F_LandMonsInfo = {10, gArtisanCave_1F_LandMons}; const struct WildPokemon gAlteringCave1_LandMons[] = { - {10, 10, SPECIES_ZUBAT}, - {12, 12, SPECIES_ZUBAT}, - {8, 8, SPECIES_ZUBAT}, - {14, 14, SPECIES_ZUBAT}, - {10, 10, SPECIES_ZUBAT}, - {12, 12, SPECIES_ZUBAT}, - {16, 16, SPECIES_ZUBAT}, - {6, 6, SPECIES_ZUBAT}, - {8, 8, SPECIES_ZUBAT}, - {14, 14, SPECIES_ZUBAT}, - {8, 8, SPECIES_ZUBAT}, - {14, 14, SPECIES_ZUBAT}, + {10, 10, SPECIES_ZUBAT}, + {12, 12, SPECIES_ZUBAT}, + {8, 8, SPECIES_ZUBAT}, + {14, 14, SPECIES_ZUBAT}, + {10, 10, SPECIES_ZUBAT}, + {12, 12, SPECIES_ZUBAT}, + {16, 16, SPECIES_ZUBAT}, + {6, 6, SPECIES_ZUBAT}, + {8, 8, SPECIES_ZUBAT}, + {14, 14, SPECIES_ZUBAT}, + {8, 8, SPECIES_ZUBAT}, + {14, 14, SPECIES_ZUBAT}, }; const struct WildPokemonInfo gAlteringCave1_LandMonsInfo = {7, gAlteringCave1_LandMons}; const struct WildPokemon gAlteringCave2_LandMons[] = { - {7, 7, SPECIES_MAREEP}, - {9, 9, SPECIES_MAREEP}, - {5, 5, SPECIES_MAREEP}, - {11, 11, SPECIES_MAREEP}, - {7, 7, SPECIES_MAREEP}, - {9, 9, SPECIES_MAREEP}, - {13, 13, SPECIES_MAREEP}, - {3, 3, SPECIES_MAREEP}, - {5, 5, SPECIES_MAREEP}, - {11, 11, SPECIES_MAREEP}, - {5, 5, SPECIES_MAREEP}, - {11, 11, SPECIES_MAREEP}, + {7, 7, SPECIES_MAREEP}, + {9, 9, SPECIES_MAREEP}, + {5, 5, SPECIES_MAREEP}, + {11, 11, SPECIES_MAREEP}, + {7, 7, SPECIES_MAREEP}, + {9, 9, SPECIES_MAREEP}, + {13, 13, SPECIES_MAREEP}, + {3, 3, SPECIES_MAREEP}, + {5, 5, SPECIES_MAREEP}, + {11, 11, SPECIES_MAREEP}, + {5, 5, SPECIES_MAREEP}, + {11, 11, SPECIES_MAREEP}, }; const struct WildPokemonInfo gAlteringCave2_LandMonsInfo = {7, gAlteringCave2_LandMons}; const struct WildPokemon gAlteringCave3_LandMons[] = { - {23, 23, SPECIES_PINECO}, - {25, 25, SPECIES_PINECO}, - {22, 22, SPECIES_PINECO}, - {27, 27, SPECIES_PINECO}, - {23, 23, SPECIES_PINECO}, - {25, 25, SPECIES_PINECO}, - {29, 29, SPECIES_PINECO}, - {19, 19, SPECIES_PINECO}, - {21, 21, SPECIES_PINECO}, - {27, 27, SPECIES_PINECO}, - {21, 21, SPECIES_PINECO}, - {27, 27, SPECIES_PINECO}, + {23, 23, SPECIES_PINECO}, + {25, 25, SPECIES_PINECO}, + {22, 22, SPECIES_PINECO}, + {27, 27, SPECIES_PINECO}, + {23, 23, SPECIES_PINECO}, + {25, 25, SPECIES_PINECO}, + {29, 29, SPECIES_PINECO}, + {19, 19, SPECIES_PINECO}, + {21, 21, SPECIES_PINECO}, + {27, 27, SPECIES_PINECO}, + {21, 21, SPECIES_PINECO}, + {27, 27, SPECIES_PINECO}, }; const struct WildPokemonInfo gAlteringCave3_LandMonsInfo = {7, gAlteringCave3_LandMons}; const struct WildPokemon gAlteringCave4_LandMons[] = { - {16, 16, SPECIES_HOUNDOUR}, - {18, 18, SPECIES_HOUNDOUR}, - {14, 14, SPECIES_HOUNDOUR}, - {20, 20, SPECIES_HOUNDOUR}, - {16, 16, SPECIES_HOUNDOUR}, - {18, 18, SPECIES_HOUNDOUR}, - {22, 22, SPECIES_HOUNDOUR}, - {12, 12, SPECIES_HOUNDOUR}, - {14, 14, SPECIES_HOUNDOUR}, - {20, 20, SPECIES_HOUNDOUR}, - {14, 14, SPECIES_HOUNDOUR}, - {20, 20, SPECIES_HOUNDOUR}, + {16, 16, SPECIES_HOUNDOUR}, + {18, 18, SPECIES_HOUNDOUR}, + {14, 14, SPECIES_HOUNDOUR}, + {20, 20, SPECIES_HOUNDOUR}, + {16, 16, SPECIES_HOUNDOUR}, + {18, 18, SPECIES_HOUNDOUR}, + {22, 22, SPECIES_HOUNDOUR}, + {12, 12, SPECIES_HOUNDOUR}, + {14, 14, SPECIES_HOUNDOUR}, + {20, 20, SPECIES_HOUNDOUR}, + {14, 14, SPECIES_HOUNDOUR}, + {20, 20, SPECIES_HOUNDOUR}, }; const struct WildPokemonInfo gAlteringCave4_LandMonsInfo = {7, gAlteringCave4_LandMons}; const struct WildPokemon gAlteringCave5_LandMons[] = { - {10, 10, SPECIES_TEDDIURSA}, - {12, 12, SPECIES_TEDDIURSA}, - {8, 8, SPECIES_TEDDIURSA}, - {14, 14, SPECIES_TEDDIURSA}, - {10, 10, SPECIES_TEDDIURSA}, - {12, 12, SPECIES_TEDDIURSA}, - {16, 16, SPECIES_TEDDIURSA}, - {6, 6, SPECIES_TEDDIURSA}, - {8, 8, SPECIES_TEDDIURSA}, - {14, 14, SPECIES_TEDDIURSA}, - {8, 8, SPECIES_TEDDIURSA}, - {14, 14, SPECIES_TEDDIURSA}, + {10, 10, SPECIES_TEDDIURSA}, + {12, 12, SPECIES_TEDDIURSA}, + {8, 8, SPECIES_TEDDIURSA}, + {14, 14, SPECIES_TEDDIURSA}, + {10, 10, SPECIES_TEDDIURSA}, + {12, 12, SPECIES_TEDDIURSA}, + {16, 16, SPECIES_TEDDIURSA}, + {6, 6, SPECIES_TEDDIURSA}, + {8, 8, SPECIES_TEDDIURSA}, + {14, 14, SPECIES_TEDDIURSA}, + {8, 8, SPECIES_TEDDIURSA}, + {14, 14, SPECIES_TEDDIURSA}, }; const struct WildPokemonInfo gAlteringCave5_LandMonsInfo = {7, gAlteringCave5_LandMons}; const struct WildPokemon gAlteringCave6_LandMons[] = { - {22, 22, SPECIES_AIPOM}, - {24, 24, SPECIES_AIPOM}, - {20, 20, SPECIES_AIPOM}, - {26, 26, SPECIES_AIPOM}, - {22, 22, SPECIES_AIPOM}, - {24, 24, SPECIES_AIPOM}, - {28, 28, SPECIES_AIPOM}, - {18, 18, SPECIES_AIPOM}, - {20, 20, SPECIES_AIPOM}, - {26, 26, SPECIES_AIPOM}, - {20, 20, SPECIES_AIPOM}, - {26, 26, SPECIES_AIPOM}, + {22, 22, SPECIES_AIPOM}, + {24, 24, SPECIES_AIPOM}, + {20, 20, SPECIES_AIPOM}, + {26, 26, SPECIES_AIPOM}, + {22, 22, SPECIES_AIPOM}, + {24, 24, SPECIES_AIPOM}, + {28, 28, SPECIES_AIPOM}, + {18, 18, SPECIES_AIPOM}, + {20, 20, SPECIES_AIPOM}, + {26, 26, SPECIES_AIPOM}, + {20, 20, SPECIES_AIPOM}, + {26, 26, SPECIES_AIPOM}, }; const struct WildPokemonInfo gAlteringCave6_LandMonsInfo = {7, gAlteringCave6_LandMons}; const struct WildPokemon gAlteringCave7_LandMons[] = { - {22, 22, SPECIES_SHUCKLE}, - {24, 24, SPECIES_SHUCKLE}, - {20, 20, SPECIES_SHUCKLE}, - {26, 26, SPECIES_SHUCKLE}, - {22, 22, SPECIES_SHUCKLE}, - {24, 24, SPECIES_SHUCKLE}, - {28, 28, SPECIES_SHUCKLE}, - {18, 18, SPECIES_SHUCKLE}, - {20, 20, SPECIES_SHUCKLE}, - {26, 26, SPECIES_SHUCKLE}, - {20, 20, SPECIES_SHUCKLE}, - {26, 26, SPECIES_SHUCKLE}, + {22, 22, SPECIES_SHUCKLE}, + {24, 24, SPECIES_SHUCKLE}, + {20, 20, SPECIES_SHUCKLE}, + {26, 26, SPECIES_SHUCKLE}, + {22, 22, SPECIES_SHUCKLE}, + {24, 24, SPECIES_SHUCKLE}, + {28, 28, SPECIES_SHUCKLE}, + {18, 18, SPECIES_SHUCKLE}, + {20, 20, SPECIES_SHUCKLE}, + {26, 26, SPECIES_SHUCKLE}, + {20, 20, SPECIES_SHUCKLE}, + {26, 26, SPECIES_SHUCKLE}, }; const struct WildPokemonInfo gAlteringCave7_LandMonsInfo = {7, gAlteringCave7_LandMons}; const struct WildPokemon gAlteringCave8_LandMons[] = { - {22, 22, SPECIES_STANTLER}, - {24, 24, SPECIES_STANTLER}, - {20, 20, SPECIES_STANTLER}, - {26, 26, SPECIES_STANTLER}, - {22, 22, SPECIES_STANTLER}, - {24, 24, SPECIES_STANTLER}, - {28, 28, SPECIES_STANTLER}, - {18, 18, SPECIES_STANTLER}, - {20, 20, SPECIES_STANTLER}, - {26, 26, SPECIES_STANTLER}, - {20, 20, SPECIES_STANTLER}, - {26, 26, SPECIES_STANTLER}, + {22, 22, SPECIES_STANTLER}, + {24, 24, SPECIES_STANTLER}, + {20, 20, SPECIES_STANTLER}, + {26, 26, SPECIES_STANTLER}, + {22, 22, SPECIES_STANTLER}, + {24, 24, SPECIES_STANTLER}, + {28, 28, SPECIES_STANTLER}, + {18, 18, SPECIES_STANTLER}, + {20, 20, SPECIES_STANTLER}, + {26, 26, SPECIES_STANTLER}, + {20, 20, SPECIES_STANTLER}, + {26, 26, SPECIES_STANTLER}, }; const struct WildPokemonInfo gAlteringCave8_LandMonsInfo = {7, gAlteringCave8_LandMons}; const struct WildPokemon gAlteringCave9_LandMons[] = { - {22, 22, SPECIES_SMEARGLE}, - {24, 24, SPECIES_SMEARGLE}, - {20, 20, SPECIES_SMEARGLE}, - {26, 26, SPECIES_SMEARGLE}, - {22, 22, SPECIES_SMEARGLE}, - {24, 24, SPECIES_SMEARGLE}, - {28, 28, SPECIES_SMEARGLE}, - {18, 18, SPECIES_SMEARGLE}, - {20, 20, SPECIES_SMEARGLE}, - {26, 26, SPECIES_SMEARGLE}, - {20, 20, SPECIES_SMEARGLE}, - {26, 26, SPECIES_SMEARGLE}, + {22, 22, SPECIES_SMEARGLE}, + {24, 24, SPECIES_SMEARGLE}, + {20, 20, SPECIES_SMEARGLE}, + {26, 26, SPECIES_SMEARGLE}, + {22, 22, SPECIES_SMEARGLE}, + {24, 24, SPECIES_SMEARGLE}, + {28, 28, SPECIES_SMEARGLE}, + {18, 18, SPECIES_SMEARGLE}, + {20, 20, SPECIES_SMEARGLE}, + {26, 26, SPECIES_SMEARGLE}, + {20, 20, SPECIES_SMEARGLE}, + {26, 26, SPECIES_SMEARGLE}, }; const struct WildPokemonInfo gAlteringCave9_LandMonsInfo = {7, gAlteringCave9_LandMons}; const struct WildPokemon gMeteorFalls_StevensCave_LandMons[] = { - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_GOLBAT}, - {33, 33, SPECIES_GOLBAT}, - {35, 35, SPECIES_SOLROCK}, - {33, 33, SPECIES_SOLROCK}, - {37, 37, SPECIES_SOLROCK}, - {35, 35, SPECIES_GOLBAT}, - {39, 39, SPECIES_SOLROCK}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, - {38, 38, SPECIES_GOLBAT}, - {40, 40, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_SOLROCK}, + {33, 33, SPECIES_SOLROCK}, + {37, 37, SPECIES_SOLROCK}, + {35, 35, SPECIES_GOLBAT}, + {39, 39, SPECIES_SOLROCK}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, }; const struct WildPokemonInfo gMeteorFalls_StevensCave_LandMonsInfo = {10, gMeteorFalls_StevensCave_LandMons}; const struct WildPokemonHeader gWildMonHeaders[] = { - { - .mapGroup = MAP_GROUP(ROUTE101), - .mapNum = MAP_NUM(ROUTE101), - .landMonsInfo = &gRoute101_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE102), - .mapNum = MAP_NUM(ROUTE102), - .landMonsInfo = &gRoute102_LandMonsInfo, - .waterMonsInfo = &gRoute102_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute102_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE103), - .mapNum = MAP_NUM(ROUTE103), - .landMonsInfo = &gRoute103_LandMonsInfo, - .waterMonsInfo = &gRoute103_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute103_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE104), - .mapNum = MAP_NUM(ROUTE104), - .landMonsInfo = &gRoute104_LandMonsInfo, - .waterMonsInfo = &gRoute104_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute104_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE105), - .mapNum = MAP_NUM(ROUTE105), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute105_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute105_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE110), - .mapNum = MAP_NUM(ROUTE110), - .landMonsInfo = &gRoute110_LandMonsInfo, - .waterMonsInfo = &gRoute110_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute110_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE111), - .mapNum = MAP_NUM(ROUTE111), - .landMonsInfo = &gRoute111_LandMonsInfo, - .waterMonsInfo = &gRoute111_WaterMonsInfo, - .rockSmashMonsInfo = &gRoute111_RockSmashMonsInfo, - .fishingMonsInfo = &gRoute111_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE112), - .mapNum = MAP_NUM(ROUTE112), - .landMonsInfo = &gRoute112_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE113), - .mapNum = MAP_NUM(ROUTE113), - .landMonsInfo = &gRoute113_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE114), - .mapNum = MAP_NUM(ROUTE114), - .landMonsInfo = &gRoute114_LandMonsInfo, - .waterMonsInfo = &gRoute114_WaterMonsInfo, - .rockSmashMonsInfo = &gRoute114_RockSmashMonsInfo, - .fishingMonsInfo = &gRoute114_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE116), - .mapNum = MAP_NUM(ROUTE116), - .landMonsInfo = &gRoute116_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE117), - .mapNum = MAP_NUM(ROUTE117), - .landMonsInfo = &gRoute117_LandMonsInfo, - .waterMonsInfo = &gRoute117_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute117_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE118), - .mapNum = MAP_NUM(ROUTE118), - .landMonsInfo = &gRoute118_LandMonsInfo, - .waterMonsInfo = &gRoute118_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute118_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE124), - .mapNum = MAP_NUM(ROUTE124), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute124_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute124_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(PETALBURG_WOODS), - .mapNum = MAP_NUM(PETALBURG_WOODS), - .landMonsInfo = &gPetalburgWoods_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(RUSTURF_TUNNEL), - .mapNum = MAP_NUM(RUSTURF_TUNNEL), - .landMonsInfo = &gRusturfTunnel_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_1F), - .mapNum = MAP_NUM(GRANITE_CAVE_1F), - .landMonsInfo = &gGraniteCave_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_B1F), - .mapNum = MAP_NUM(GRANITE_CAVE_B1F), - .landMonsInfo = &gGraniteCave_B1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_1F), - .mapNum = MAP_NUM(MT_PYRE_1F), - .landMonsInfo = &gMtPyre_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(VICTORY_ROAD_1F), - .mapNum = MAP_NUM(VICTORY_ROAD_1F), - .landMonsInfo = &gVictoryRoad_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTH), - .mapNum = MAP_NUM(SAFARI_ZONE_SOUTH), - .landMonsInfo = &gSafariZone_South_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(UNDERWATER2), - .mapNum = MAP_NUM(UNDERWATER2), - .landMonsInfo = NULL, - .waterMonsInfo = &gUnderwater2_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ABANDONED_SHIP_ROOMS_B1F), - .mapNum = MAP_NUM(ABANDONED_SHIP_ROOMS_B1F), - .landMonsInfo = NULL, - .waterMonsInfo = &gAbandonedShip_Rooms_B1F_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gAbandonedShip_Rooms_B1F_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_B2F), - .mapNum = MAP_NUM(GRANITE_CAVE_B2F), - .landMonsInfo = &gGraniteCave_B2F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = &gGraniteCave_B2F_RockSmashMonsInfo, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(FIERY_PATH), - .mapNum = MAP_NUM(FIERY_PATH), - .landMonsInfo = &gFieryPath_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_2R), - .mapNum = MAP_NUM(METEOR_FALLS_B1F_2R), - .landMonsInfo = &gMeteorFalls_B1F_2R_LandMonsInfo, - .waterMonsInfo = &gMeteorFalls_B1F_2R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gMeteorFalls_B1F_2R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(JAGGED_PASS), - .mapNum = MAP_NUM(JAGGED_PASS), - .landMonsInfo = &gJaggedPass_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE106), - .mapNum = MAP_NUM(ROUTE106), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute106_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute106_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE107), - .mapNum = MAP_NUM(ROUTE107), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute107_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute107_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE108), - .mapNum = MAP_NUM(ROUTE108), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute108_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute108_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE109), - .mapNum = MAP_NUM(ROUTE109), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute109_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute109_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE115), - .mapNum = MAP_NUM(ROUTE115), - .landMonsInfo = &gRoute115_LandMonsInfo, - .waterMonsInfo = &gRoute115_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute115_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(NEW_MAUVILLE_INSIDE), - .mapNum = MAP_NUM(NEW_MAUVILLE_INSIDE), - .landMonsInfo = &gNewMauville_Inside_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE119), - .mapNum = MAP_NUM(ROUTE119), - .landMonsInfo = &gRoute119_LandMonsInfo, - .waterMonsInfo = &gRoute119_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute119_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE120), - .mapNum = MAP_NUM(ROUTE120), - .landMonsInfo = &gRoute120_LandMonsInfo, - .waterMonsInfo = &gRoute120_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute120_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE121), - .mapNum = MAP_NUM(ROUTE121), - .landMonsInfo = &gRoute121_LandMonsInfo, - .waterMonsInfo = &gRoute121_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute121_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE122), - .mapNum = MAP_NUM(ROUTE122), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute122_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute122_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE123), - .mapNum = MAP_NUM(ROUTE123), - .landMonsInfo = &gRoute123_LandMonsInfo, - .waterMonsInfo = &gRoute123_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute123_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_2F), - .mapNum = MAP_NUM(MT_PYRE_2F), - .landMonsInfo = &gMtPyre_2F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_3F), - .mapNum = MAP_NUM(MT_PYRE_3F), - .landMonsInfo = &gMtPyre_3F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_4F), - .mapNum = MAP_NUM(MT_PYRE_4F), - .landMonsInfo = &gMtPyre_4F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_5F), - .mapNum = MAP_NUM(MT_PYRE_5F), - .landMonsInfo = &gMtPyre_5F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_6F), - .mapNum = MAP_NUM(MT_PYRE_6F), - .landMonsInfo = &gMtPyre_6F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_EXTERIOR), - .mapNum = MAP_NUM(MT_PYRE_EXTERIOR), - .landMonsInfo = &gMtPyre_Exterior_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MT_PYRE_SUMMIT), - .mapNum = MAP_NUM(MT_PYRE_SUMMIT), - .landMonsInfo = &gMtPyre_Summit_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(GRANITE_CAVE_STEVENS_ROOM), - .mapNum = MAP_NUM(GRANITE_CAVE_STEVENS_ROOM), - .landMonsInfo = &gGraniteCave_StevensRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ROUTE125), - .mapNum = MAP_NUM(ROUTE125), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute125_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute125_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE126), - .mapNum = MAP_NUM(ROUTE126), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute126_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute126_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE127), - .mapNum = MAP_NUM(ROUTE127), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute127_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute127_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE128), - .mapNum = MAP_NUM(ROUTE128), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute128_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute128_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE129), - .mapNum = MAP_NUM(ROUTE129), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute129_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute129_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE130), - .mapNum = MAP_NUM(ROUTE130), - .landMonsInfo = &gRoute130_LandMonsInfo, - .waterMonsInfo = &gRoute130_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute130_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE131), - .mapNum = MAP_NUM(ROUTE131), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute131_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute131_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE132), - .mapNum = MAP_NUM(ROUTE132), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute132_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute132_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE133), - .mapNum = MAP_NUM(ROUTE133), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute133_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute133_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ROUTE134), - .mapNum = MAP_NUM(ROUTE134), - .landMonsInfo = NULL, - .waterMonsInfo = &gRoute134_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gRoute134_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS), - .mapNum = MAP_NUM(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS), - .landMonsInfo = NULL, - .waterMonsInfo = &gAbandonedShip_HiddenFloorCorridors_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gAbandonedShip_HiddenFloorCorridors_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM1), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM1), - .landMonsInfo = &gSeafloorCavern_Room1_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM2), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM2), - .landMonsInfo = &gSeafloorCavern_Room2_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM3), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM3), - .landMonsInfo = &gSeafloorCavern_Room3_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM4), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM4), - .landMonsInfo = &gSeafloorCavern_Room4_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM5), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM5), - .landMonsInfo = &gSeafloorCavern_Room5_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM6), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM6), - .landMonsInfo = &gSeafloorCavern_Room6_LandMonsInfo, - .waterMonsInfo = &gSeafloorCavern_Room6_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSeafloorCavern_Room6_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM7), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM7), - .landMonsInfo = &gSeafloorCavern_Room7_LandMonsInfo, - .waterMonsInfo = &gSeafloorCavern_Room7_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSeafloorCavern_Room7_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM8), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM8), - .landMonsInfo = &gSeafloorCavern_Room8_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ENTRANCE), - .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ENTRANCE), - .landMonsInfo = NULL, - .waterMonsInfo = &gSeafloorCavern_Entrance_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSeafloorCavern_Entrance_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_ENTRANCE), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_ENTRANCE), - .landMonsInfo = &gCaveOfOrigin_Entrance_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_1F), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_1F), - .landMonsInfo = &gCaveOfOrigin_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1), - .landMonsInfo = &gCaveOfOrigin_UnusedRubySapphireMap1_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2), - .landMonsInfo = &gCaveOfOrigin_UnusedRubySapphireMap2_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3), - .mapNum = MAP_NUM(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3), - .landMonsInfo = &gCaveOfOrigin_UnusedRubySapphireMap3_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(NEW_MAUVILLE_ENTRANCE), - .mapNum = MAP_NUM(NEW_MAUVILLE_ENTRANCE), - .landMonsInfo = &gNewMauville_Entrance_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHWEST), - .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHWEST), - .landMonsInfo = &gSafariZone_Southwest_LandMonsInfo, - .waterMonsInfo = &gSafariZone_Southwest_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSafariZone_Southwest_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTH), - .mapNum = MAP_NUM(SAFARI_ZONE_NORTH), - .landMonsInfo = &gSafariZone_North_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = &gSafariZone_North_RockSmashMonsInfo, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHWEST), - .mapNum = MAP_NUM(SAFARI_ZONE_NORTHWEST), - .landMonsInfo = &gSafariZone_Northwest_LandMonsInfo, - .waterMonsInfo = &gSafariZone_Northwest_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSafariZone_Northwest_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(VICTORY_ROAD_B1F), - .mapNum = MAP_NUM(VICTORY_ROAD_B1F), - .landMonsInfo = &gVictoryRoad_B1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = &gVictoryRoad_B1F_RockSmashMonsInfo, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(VICTORY_ROAD_B2F), - .mapNum = MAP_NUM(VICTORY_ROAD_B2F), - .landMonsInfo = &gVictoryRoad_B2F_LandMonsInfo, - .waterMonsInfo = &gVictoryRoad_B2F_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gVictoryRoad_B2F_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_1F_1R), - .mapNum = MAP_NUM(METEOR_FALLS_1F_1R), - .landMonsInfo = &gMeteorFalls_1F_1R_LandMonsInfo, - .waterMonsInfo = &gMeteorFalls_1F_1R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gMeteorFalls_1F_1R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_1F_2R), - .mapNum = MAP_NUM(METEOR_FALLS_1F_2R), - .landMonsInfo = &gMeteorFalls_1F_2R_LandMonsInfo, - .waterMonsInfo = &gMeteorFalls_1F_2R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gMeteorFalls_1F_2R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_1R), - .mapNum = MAP_NUM(METEOR_FALLS_B1F_1R), - .landMonsInfo = &gMeteorFalls_B1F_1R_LandMonsInfo, - .waterMonsInfo = &gMeteorFalls_B1F_1R_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gMeteorFalls_B1F_1R_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM), - .landMonsInfo = &gShoalCave_LowTideStairsRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM), - .landMonsInfo = &gShoalCave_LowTideLowerRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_INNER_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_INNER_ROOM), - .landMonsInfo = &gShoalCave_LowTideInnerRoom_LandMonsInfo, - .waterMonsInfo = &gShoalCave_LowTideInnerRoom_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gShoalCave_LowTideInnerRoom_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM), - .landMonsInfo = &gShoalCave_LowTideEntranceRoom_LandMonsInfo, - .waterMonsInfo = &gShoalCave_LowTideEntranceRoom_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gShoalCave_LowTideEntranceRoom_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(LILYCOVE_CITY), - .mapNum = MAP_NUM(LILYCOVE_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &gLilycoveCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gLilycoveCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(DEWFORD_TOWN), - .mapNum = MAP_NUM(DEWFORD_TOWN), - .landMonsInfo = NULL, - .waterMonsInfo = &gDewfordTown_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gDewfordTown_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SLATEPORT_CITY), - .mapNum = MAP_NUM(SLATEPORT_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &gSlateportCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSlateportCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(MOSSDEEP_CITY), - .mapNum = MAP_NUM(MOSSDEEP_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &gMossdeepCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gMossdeepCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(PACIFIDLOG_TOWN), - .mapNum = MAP_NUM(PACIFIDLOG_TOWN), - .landMonsInfo = NULL, - .waterMonsInfo = &gPacifidlogTown_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gPacifidlogTown_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(EVER_GRANDE_CITY), - .mapNum = MAP_NUM(EVER_GRANDE_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &gEverGrandeCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gEverGrandeCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(PETALBURG_CITY), - .mapNum = MAP_NUM(PETALBURG_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &gPetalburgCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gPetalburgCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(UNDERWATER1), - .mapNum = MAP_NUM(UNDERWATER1), - .landMonsInfo = NULL, - .waterMonsInfo = &gUnderwater1_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ICE_ROOM), - .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ICE_ROOM), - .landMonsInfo = &gShoalCave_LowTideIceRoom_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SKY_PILLAR_1F), - .mapNum = MAP_NUM(SKY_PILLAR_1F), - .landMonsInfo = &gSkyPillar_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SOOTOPOLIS_CITY), - .mapNum = MAP_NUM(SOOTOPOLIS_CITY), - .landMonsInfo = NULL, - .waterMonsInfo = &gSootopolisCity_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSootopolisCity_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SKY_PILLAR_3F), - .mapNum = MAP_NUM(SKY_PILLAR_3F), - .landMonsInfo = &gSkyPillar_3F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SKY_PILLAR_5F), - .mapNum = MAP_NUM(SKY_PILLAR_5F), - .landMonsInfo = &gSkyPillar_5F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHEAST), - .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHEAST), - .landMonsInfo = &gSafariZone_Southeast_LandMonsInfo, - .waterMonsInfo = &gSafariZone_Southeast_WaterMonsInfo, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = &gSafariZone_Southeast_FishingMonsInfo, - }, - { - .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHEAST), - .mapNum = MAP_NUM(SAFARI_ZONE_NORTHEAST), - .landMonsInfo = &gSafariZone_Northeast_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = &gSafariZone_Northeast_RockSmashMonsInfo, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_1F), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_1F), - .landMonsInfo = &gMagmaHideout_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_2F_1R), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_2F_1R), - .landMonsInfo = &gMagmaHideout_2F_1R_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_2F_2R), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_2F_2R), - .landMonsInfo = &gMagmaHideout_2F_2R_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_3F_1R), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_3F_1R), - .landMonsInfo = &gMagmaHideout_3F_1R_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_3F_2R), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_3F_2R), - .landMonsInfo = &gMagmaHideout_3F_2R_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_4F), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_4F), - .landMonsInfo = &gMagmaHideout_4F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_3F_3R), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_3F_3R), - .landMonsInfo = &gMagmaHideout_3F_3R_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_2F_3R), - .mapNum = MAP_NUM(MAGMA_HIDEOUT_2F_3R), - .landMonsInfo = &gMagmaHideout_2F_3R_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MIRAGE_TOWER_1F), - .mapNum = MAP_NUM(MIRAGE_TOWER_1F), - .landMonsInfo = &gMirageTower_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MIRAGE_TOWER_2F), - .mapNum = MAP_NUM(MIRAGE_TOWER_2F), - .landMonsInfo = &gMirageTower_2F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MIRAGE_TOWER_3F), - .mapNum = MAP_NUM(MIRAGE_TOWER_3F), - .landMonsInfo = &gMirageTower_3F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(MIRAGE_TOWER_4F), - .mapNum = MAP_NUM(MIRAGE_TOWER_4F), - .landMonsInfo = &gMirageTower_4F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(DESERT_UNDERPASS), - .mapNum = MAP_NUM(DESERT_UNDERPASS), - .landMonsInfo = &gDesertUnderpass_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ARTISAN_CAVE_B1F), - .mapNum = MAP_NUM(ARTISAN_CAVE_B1F), - .landMonsInfo = &gArtisanCave_B1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ARTISAN_CAVE_1F), - .mapNum = MAP_NUM(ARTISAN_CAVE_1F), - .landMonsInfo = &gArtisanCave_1F_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave1_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave2_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave3_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave4_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave5_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave6_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave7_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave8_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(ALTERING_CAVE), - .mapNum = MAP_NUM(ALTERING_CAVE), - .landMonsInfo = &gAlteringCave9_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(METEOR_FALLS_STEVENS_CAVE), - .mapNum = MAP_NUM(METEOR_FALLS_STEVENS_CAVE), - .landMonsInfo = &gMeteorFalls_StevensCave_LandMonsInfo, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = MAP_GROUP(UNDEFINED), - .mapNum = MAP_NUM(UNDEFINED), - .landMonsInfo = NULL, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, + { + .mapGroup = MAP_GROUP(ROUTE101), + .mapNum = MAP_NUM(ROUTE101), + .landMonsInfo = &gRoute101_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ROUTE102), + .mapNum = MAP_NUM(ROUTE102), + .landMonsInfo = &gRoute102_LandMonsInfo, + .waterMonsInfo = &gRoute102_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute102_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE103), + .mapNum = MAP_NUM(ROUTE103), + .landMonsInfo = &gRoute103_LandMonsInfo, + .waterMonsInfo = &gRoute103_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute103_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE104), + .mapNum = MAP_NUM(ROUTE104), + .landMonsInfo = &gRoute104_LandMonsInfo, + .waterMonsInfo = &gRoute104_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute104_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE105), + .mapNum = MAP_NUM(ROUTE105), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute105_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute105_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE110), + .mapNum = MAP_NUM(ROUTE110), + .landMonsInfo = &gRoute110_LandMonsInfo, + .waterMonsInfo = &gRoute110_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute110_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE111), + .mapNum = MAP_NUM(ROUTE111), + .landMonsInfo = &gRoute111_LandMonsInfo, + .waterMonsInfo = &gRoute111_WaterMonsInfo, + .rockSmashMonsInfo = &gRoute111_RockSmashMonsInfo, + .fishingMonsInfo = &gRoute111_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE112), + .mapNum = MAP_NUM(ROUTE112), + .landMonsInfo = &gRoute112_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ROUTE113), + .mapNum = MAP_NUM(ROUTE113), + .landMonsInfo = &gRoute113_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ROUTE114), + .mapNum = MAP_NUM(ROUTE114), + .landMonsInfo = &gRoute114_LandMonsInfo, + .waterMonsInfo = &gRoute114_WaterMonsInfo, + .rockSmashMonsInfo = &gRoute114_RockSmashMonsInfo, + .fishingMonsInfo = &gRoute114_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE116), + .mapNum = MAP_NUM(ROUTE116), + .landMonsInfo = &gRoute116_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ROUTE117), + .mapNum = MAP_NUM(ROUTE117), + .landMonsInfo = &gRoute117_LandMonsInfo, + .waterMonsInfo = &gRoute117_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute117_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE118), + .mapNum = MAP_NUM(ROUTE118), + .landMonsInfo = &gRoute118_LandMonsInfo, + .waterMonsInfo = &gRoute118_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute118_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE124), + .mapNum = MAP_NUM(ROUTE124), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute124_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute124_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(PETALBURG_WOODS), + .mapNum = MAP_NUM(PETALBURG_WOODS), + .landMonsInfo = &gPetalburgWoods_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(RUSTURF_TUNNEL), + .mapNum = MAP_NUM(RUSTURF_TUNNEL), + .landMonsInfo = &gRusturfTunnel_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(GRANITE_CAVE_1F), + .mapNum = MAP_NUM(GRANITE_CAVE_1F), + .landMonsInfo = &gGraniteCave_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(GRANITE_CAVE_B1F), + .mapNum = MAP_NUM(GRANITE_CAVE_B1F), + .landMonsInfo = &gGraniteCave_B1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_1F), + .mapNum = MAP_NUM(MT_PYRE_1F), + .landMonsInfo = &gMtPyre_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(VICTORY_ROAD_1F), + .mapNum = MAP_NUM(VICTORY_ROAD_1F), + .landMonsInfo = &gVictoryRoad_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTH), + .mapNum = MAP_NUM(SAFARI_ZONE_SOUTH), + .landMonsInfo = &gSafariZone_South_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(UNDERWATER2), + .mapNum = MAP_NUM(UNDERWATER2), + .landMonsInfo = NULL, + .waterMonsInfo = &gUnderwater2_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ABANDONED_SHIP_ROOMS_B1F), + .mapNum = MAP_NUM(ABANDONED_SHIP_ROOMS_B1F), + .landMonsInfo = NULL, + .waterMonsInfo = &gAbandonedShip_Rooms_B1F_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gAbandonedShip_Rooms_B1F_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(GRANITE_CAVE_B2F), + .mapNum = MAP_NUM(GRANITE_CAVE_B2F), + .landMonsInfo = &gGraniteCave_B2F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = &gGraniteCave_B2F_RockSmashMonsInfo, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(FIERY_PATH), + .mapNum = MAP_NUM(FIERY_PATH), + .landMonsInfo = &gFieryPath_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_2R), + .mapNum = MAP_NUM(METEOR_FALLS_B1F_2R), + .landMonsInfo = &gMeteorFalls_B1F_2R_LandMonsInfo, + .waterMonsInfo = &gMeteorFalls_B1F_2R_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gMeteorFalls_B1F_2R_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(JAGGED_PASS), + .mapNum = MAP_NUM(JAGGED_PASS), + .landMonsInfo = &gJaggedPass_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ROUTE106), + .mapNum = MAP_NUM(ROUTE106), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute106_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute106_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE107), + .mapNum = MAP_NUM(ROUTE107), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute107_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute107_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE108), + .mapNum = MAP_NUM(ROUTE108), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute108_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute108_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE109), + .mapNum = MAP_NUM(ROUTE109), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute109_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute109_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE115), + .mapNum = MAP_NUM(ROUTE115), + .landMonsInfo = &gRoute115_LandMonsInfo, + .waterMonsInfo = &gRoute115_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute115_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(NEW_MAUVILLE_INSIDE), + .mapNum = MAP_NUM(NEW_MAUVILLE_INSIDE), + .landMonsInfo = &gNewMauville_Inside_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ROUTE119), + .mapNum = MAP_NUM(ROUTE119), + .landMonsInfo = &gRoute119_LandMonsInfo, + .waterMonsInfo = &gRoute119_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute119_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE120), + .mapNum = MAP_NUM(ROUTE120), + .landMonsInfo = &gRoute120_LandMonsInfo, + .waterMonsInfo = &gRoute120_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute120_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE121), + .mapNum = MAP_NUM(ROUTE121), + .landMonsInfo = &gRoute121_LandMonsInfo, + .waterMonsInfo = &gRoute121_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute121_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE122), + .mapNum = MAP_NUM(ROUTE122), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute122_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute122_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE123), + .mapNum = MAP_NUM(ROUTE123), + .landMonsInfo = &gRoute123_LandMonsInfo, + .waterMonsInfo = &gRoute123_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute123_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_2F), + .mapNum = MAP_NUM(MT_PYRE_2F), + .landMonsInfo = &gMtPyre_2F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_3F), + .mapNum = MAP_NUM(MT_PYRE_3F), + .landMonsInfo = &gMtPyre_3F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_4F), + .mapNum = MAP_NUM(MT_PYRE_4F), + .landMonsInfo = &gMtPyre_4F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_5F), + .mapNum = MAP_NUM(MT_PYRE_5F), + .landMonsInfo = &gMtPyre_5F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_6F), + .mapNum = MAP_NUM(MT_PYRE_6F), + .landMonsInfo = &gMtPyre_6F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_EXTERIOR), + .mapNum = MAP_NUM(MT_PYRE_EXTERIOR), + .landMonsInfo = &gMtPyre_Exterior_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MT_PYRE_SUMMIT), + .mapNum = MAP_NUM(MT_PYRE_SUMMIT), + .landMonsInfo = &gMtPyre_Summit_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(GRANITE_CAVE_STEVENS_ROOM), + .mapNum = MAP_NUM(GRANITE_CAVE_STEVENS_ROOM), + .landMonsInfo = &gGraniteCave_StevensRoom_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ROUTE125), + .mapNum = MAP_NUM(ROUTE125), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute125_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute125_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE126), + .mapNum = MAP_NUM(ROUTE126), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute126_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute126_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE127), + .mapNum = MAP_NUM(ROUTE127), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute127_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute127_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE128), + .mapNum = MAP_NUM(ROUTE128), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute128_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute128_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE129), + .mapNum = MAP_NUM(ROUTE129), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute129_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute129_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE130), + .mapNum = MAP_NUM(ROUTE130), + .landMonsInfo = &gRoute130_LandMonsInfo, + .waterMonsInfo = &gRoute130_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute130_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE131), + .mapNum = MAP_NUM(ROUTE131), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute131_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute131_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE132), + .mapNum = MAP_NUM(ROUTE132), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute132_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute132_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE133), + .mapNum = MAP_NUM(ROUTE133), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute133_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute133_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ROUTE134), + .mapNum = MAP_NUM(ROUTE134), + .landMonsInfo = NULL, + .waterMonsInfo = &gRoute134_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gRoute134_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS), + .mapNum = MAP_NUM(ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS), + .landMonsInfo = NULL, + .waterMonsInfo = &gAbandonedShip_HiddenFloorCorridors_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gAbandonedShip_HiddenFloorCorridors_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM1), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM1), + .landMonsInfo = &gSeafloorCavern_Room1_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM2), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM2), + .landMonsInfo = &gSeafloorCavern_Room2_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM3), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM3), + .landMonsInfo = &gSeafloorCavern_Room3_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM4), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM4), + .landMonsInfo = &gSeafloorCavern_Room4_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM5), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM5), + .landMonsInfo = &gSeafloorCavern_Room5_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM6), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM6), + .landMonsInfo = &gSeafloorCavern_Room6_LandMonsInfo, + .waterMonsInfo = &gSeafloorCavern_Room6_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSeafloorCavern_Room6_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM7), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM7), + .landMonsInfo = &gSeafloorCavern_Room7_LandMonsInfo, + .waterMonsInfo = &gSeafloorCavern_Room7_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSeafloorCavern_Room7_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ROOM8), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ROOM8), + .landMonsInfo = &gSeafloorCavern_Room8_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SEAFLOOR_CAVERN_ENTRANCE), + .mapNum = MAP_NUM(SEAFLOOR_CAVERN_ENTRANCE), + .landMonsInfo = NULL, + .waterMonsInfo = &gSeafloorCavern_Entrance_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSeafloorCavern_Entrance_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_ENTRANCE), + .mapNum = MAP_NUM(CAVE_OF_ORIGIN_ENTRANCE), + .landMonsInfo = &gCaveOfOrigin_Entrance_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_1F), + .mapNum = MAP_NUM(CAVE_OF_ORIGIN_1F), + .landMonsInfo = &gCaveOfOrigin_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1), + .mapNum = MAP_NUM(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1), + .landMonsInfo = &gCaveOfOrigin_UnusedRubySapphireMap1_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2), + .mapNum = MAP_NUM(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2), + .landMonsInfo = &gCaveOfOrigin_UnusedRubySapphireMap2_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3), + .mapNum = MAP_NUM(CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3), + .landMonsInfo = &gCaveOfOrigin_UnusedRubySapphireMap3_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(NEW_MAUVILLE_ENTRANCE), + .mapNum = MAP_NUM(NEW_MAUVILLE_ENTRANCE), + .landMonsInfo = &gNewMauville_Entrance_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHWEST), + .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHWEST), + .landMonsInfo = &gSafariZone_Southwest_LandMonsInfo, + .waterMonsInfo = &gSafariZone_Southwest_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSafariZone_Southwest_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTH), + .mapNum = MAP_NUM(SAFARI_ZONE_NORTH), + .landMonsInfo = &gSafariZone_North_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = &gSafariZone_North_RockSmashMonsInfo, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHWEST), + .mapNum = MAP_NUM(SAFARI_ZONE_NORTHWEST), + .landMonsInfo = &gSafariZone_Northwest_LandMonsInfo, + .waterMonsInfo = &gSafariZone_Northwest_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSafariZone_Northwest_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(VICTORY_ROAD_B1F), + .mapNum = MAP_NUM(VICTORY_ROAD_B1F), + .landMonsInfo = &gVictoryRoad_B1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = &gVictoryRoad_B1F_RockSmashMonsInfo, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(VICTORY_ROAD_B2F), + .mapNum = MAP_NUM(VICTORY_ROAD_B2F), + .landMonsInfo = &gVictoryRoad_B2F_LandMonsInfo, + .waterMonsInfo = &gVictoryRoad_B2F_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gVictoryRoad_B2F_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(METEOR_FALLS_1F_1R), + .mapNum = MAP_NUM(METEOR_FALLS_1F_1R), + .landMonsInfo = &gMeteorFalls_1F_1R_LandMonsInfo, + .waterMonsInfo = &gMeteorFalls_1F_1R_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gMeteorFalls_1F_1R_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(METEOR_FALLS_1F_2R), + .mapNum = MAP_NUM(METEOR_FALLS_1F_2R), + .landMonsInfo = &gMeteorFalls_1F_2R_LandMonsInfo, + .waterMonsInfo = &gMeteorFalls_1F_2R_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gMeteorFalls_1F_2R_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(METEOR_FALLS_B1F_1R), + .mapNum = MAP_NUM(METEOR_FALLS_B1F_1R), + .landMonsInfo = &gMeteorFalls_B1F_1R_LandMonsInfo, + .waterMonsInfo = &gMeteorFalls_B1F_1R_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gMeteorFalls_B1F_1R_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM), + .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM), + .landMonsInfo = &gShoalCave_LowTideStairsRoom_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM), + .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_LOWER_ROOM), + .landMonsInfo = &gShoalCave_LowTideLowerRoom_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_INNER_ROOM), + .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_INNER_ROOM), + .landMonsInfo = &gShoalCave_LowTideInnerRoom_LandMonsInfo, + .waterMonsInfo = &gShoalCave_LowTideInnerRoom_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gShoalCave_LowTideInnerRoom_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM), + .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM), + .landMonsInfo = &gShoalCave_LowTideEntranceRoom_LandMonsInfo, + .waterMonsInfo = &gShoalCave_LowTideEntranceRoom_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gShoalCave_LowTideEntranceRoom_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(LILYCOVE_CITY), + .mapNum = MAP_NUM(LILYCOVE_CITY), + .landMonsInfo = NULL, + .waterMonsInfo = &gLilycoveCity_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gLilycoveCity_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(DEWFORD_TOWN), + .mapNum = MAP_NUM(DEWFORD_TOWN), + .landMonsInfo = NULL, + .waterMonsInfo = &gDewfordTown_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gDewfordTown_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SLATEPORT_CITY), + .mapNum = MAP_NUM(SLATEPORT_CITY), + .landMonsInfo = NULL, + .waterMonsInfo = &gSlateportCity_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSlateportCity_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(MOSSDEEP_CITY), + .mapNum = MAP_NUM(MOSSDEEP_CITY), + .landMonsInfo = NULL, + .waterMonsInfo = &gMossdeepCity_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gMossdeepCity_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(PACIFIDLOG_TOWN), + .mapNum = MAP_NUM(PACIFIDLOG_TOWN), + .landMonsInfo = NULL, + .waterMonsInfo = &gPacifidlogTown_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gPacifidlogTown_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(EVER_GRANDE_CITY), + .mapNum = MAP_NUM(EVER_GRANDE_CITY), + .landMonsInfo = NULL, + .waterMonsInfo = &gEverGrandeCity_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gEverGrandeCity_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(PETALBURG_CITY), + .mapNum = MAP_NUM(PETALBURG_CITY), + .landMonsInfo = NULL, + .waterMonsInfo = &gPetalburgCity_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gPetalburgCity_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(UNDERWATER1), + .mapNum = MAP_NUM(UNDERWATER1), + .landMonsInfo = NULL, + .waterMonsInfo = &gUnderwater1_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SHOAL_CAVE_LOW_TIDE_ICE_ROOM), + .mapNum = MAP_NUM(SHOAL_CAVE_LOW_TIDE_ICE_ROOM), + .landMonsInfo = &gShoalCave_LowTideIceRoom_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SKY_PILLAR_1F), + .mapNum = MAP_NUM(SKY_PILLAR_1F), + .landMonsInfo = &gSkyPillar_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SOOTOPOLIS_CITY), + .mapNum = MAP_NUM(SOOTOPOLIS_CITY), + .landMonsInfo = NULL, + .waterMonsInfo = &gSootopolisCity_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSootopolisCity_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SKY_PILLAR_3F), + .mapNum = MAP_NUM(SKY_PILLAR_3F), + .landMonsInfo = &gSkyPillar_3F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SKY_PILLAR_5F), + .mapNum = MAP_NUM(SKY_PILLAR_5F), + .landMonsInfo = &gSkyPillar_5F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(SAFARI_ZONE_SOUTHEAST), + .mapNum = MAP_NUM(SAFARI_ZONE_SOUTHEAST), + .landMonsInfo = &gSafariZone_Southeast_LandMonsInfo, + .waterMonsInfo = &gSafariZone_Southeast_WaterMonsInfo, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = &gSafariZone_Southeast_FishingMonsInfo, + }, + { + .mapGroup = MAP_GROUP(SAFARI_ZONE_NORTHEAST), + .mapNum = MAP_NUM(SAFARI_ZONE_NORTHEAST), + .landMonsInfo = &gSafariZone_Northeast_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = &gSafariZone_Northeast_RockSmashMonsInfo, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_1F), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_1F), + .landMonsInfo = &gMagmaHideout_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_2F_1R), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_2F_1R), + .landMonsInfo = &gMagmaHideout_2F_1R_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_2F_2R), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_2F_2R), + .landMonsInfo = &gMagmaHideout_2F_2R_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_3F_1R), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_3F_1R), + .landMonsInfo = &gMagmaHideout_3F_1R_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_3F_2R), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_3F_2R), + .landMonsInfo = &gMagmaHideout_3F_2R_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_4F), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_4F), + .landMonsInfo = &gMagmaHideout_4F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_3F_3R), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_3F_3R), + .landMonsInfo = &gMagmaHideout_3F_3R_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MAGMA_HIDEOUT_2F_3R), + .mapNum = MAP_NUM(MAGMA_HIDEOUT_2F_3R), + .landMonsInfo = &gMagmaHideout_2F_3R_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MIRAGE_TOWER_1F), + .mapNum = MAP_NUM(MIRAGE_TOWER_1F), + .landMonsInfo = &gMirageTower_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MIRAGE_TOWER_2F), + .mapNum = MAP_NUM(MIRAGE_TOWER_2F), + .landMonsInfo = &gMirageTower_2F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MIRAGE_TOWER_3F), + .mapNum = MAP_NUM(MIRAGE_TOWER_3F), + .landMonsInfo = &gMirageTower_3F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(MIRAGE_TOWER_4F), + .mapNum = MAP_NUM(MIRAGE_TOWER_4F), + .landMonsInfo = &gMirageTower_4F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(DESERT_UNDERPASS), + .mapNum = MAP_NUM(DESERT_UNDERPASS), + .landMonsInfo = &gDesertUnderpass_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ARTISAN_CAVE_B1F), + .mapNum = MAP_NUM(ARTISAN_CAVE_B1F), + .landMonsInfo = &gArtisanCave_B1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ARTISAN_CAVE_1F), + .mapNum = MAP_NUM(ARTISAN_CAVE_1F), + .landMonsInfo = &gArtisanCave_1F_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave1_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave2_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave3_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave4_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave5_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave6_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave7_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave8_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(ALTERING_CAVE), + .mapNum = MAP_NUM(ALTERING_CAVE), + .landMonsInfo = &gAlteringCave9_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(METEOR_FALLS_STEVENS_CAVE), + .mapNum = MAP_NUM(METEOR_FALLS_STEVENS_CAVE), + .landMonsInfo = &gMeteorFalls_StevensCave_LandMonsInfo, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = MAP_GROUP(UNDEFINED), + .mapNum = MAP_NUM(UNDEFINED), + .landMonsInfo = NULL, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, }; const struct WildPokemon gBattlePyramidPlaceholders_1[] = { - {5, 5, SPECIES_BULBASAUR}, - {5, 5, SPECIES_BULBASAUR}, - {5, 5, SPECIES_BULBASAUR}, - {5, 5, SPECIES_BULBASAUR}, - {5, 5, SPECIES_IVYSAUR}, - {5, 5, SPECIES_IVYSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_BULBASAUR}, + {5, 5, SPECIES_BULBASAUR}, + {5, 5, SPECIES_BULBASAUR}, + {5, 5, SPECIES_BULBASAUR}, + {5, 5, SPECIES_IVYSAUR}, + {5, 5, SPECIES_IVYSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_CHARMANDER}, }; const struct WildPokemonInfo gBattlePyramidPlaceholders_1Info = {4, gBattlePyramidPlaceholders_1}; const struct WildPokemon gBattlePyramidPlaceholders_2[] = { - {5, 5, SPECIES_IVYSAUR}, - {5, 5, SPECIES_IVYSAUR}, - {5, 5, SPECIES_IVYSAUR}, - {5, 5, SPECIES_IVYSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_IVYSAUR}, + {5, 5, SPECIES_IVYSAUR}, + {5, 5, SPECIES_IVYSAUR}, + {5, 5, SPECIES_IVYSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMANDER}, }; const struct WildPokemonInfo gBattlePyramidPlaceholders_2Info = {4, gBattlePyramidPlaceholders_2}; const struct WildPokemon gBattlePyramidPlaceholders_3[] = { - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_VENUSAUR}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_VENUSAUR}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARIZARD}, }; const struct WildPokemonInfo gBattlePyramidPlaceholders_3Info = {4, gBattlePyramidPlaceholders_3}; const struct WildPokemon gBattlePyramidPlaceholders_4[] = { - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMANDER}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMANDER}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_SQUIRTLE}, }; const struct WildPokemonInfo gBattlePyramidPlaceholders_4Info = {4, gBattlePyramidPlaceholders_4}; const struct WildPokemon gBattlePyramidPlaceholders_5[] = { - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_WARTORTLE}, }; const struct WildPokemonInfo gBattlePyramidPlaceholders_5Info = {4, gBattlePyramidPlaceholders_5}; const struct WildPokemon gBattlePyramidPlaceholders_6[] = { - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_WARTORTLE}, }; const struct WildPokemonInfo gBattlePyramidPlaceholders_6Info = {4, gBattlePyramidPlaceholders_6}; const struct WildPokemon gBattlePyramidPlaceholders_7[] = { - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_WARTORTLE}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_SQUIRTLE}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARIZARD}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, - {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_WARTORTLE}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_SQUIRTLE}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARIZARD}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, + {5, 5, SPECIES_CHARMELEON}, }; const struct WildPokemonInfo gBattlePyramidPlaceholders_7Info = {8, gBattlePyramidPlaceholders_7}; const struct WildPokemonHeader gBattlePyramidWildMonHeaders[] = { - { - .mapGroup = 0, - .mapNum = 1, - .landMonsInfo = &gBattlePyramidPlaceholders_1Info, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 2, - .landMonsInfo = &gBattlePyramidPlaceholders_2Info, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 3, - .landMonsInfo = &gBattlePyramidPlaceholders_3Info, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 4, - .landMonsInfo = &gBattlePyramidPlaceholders_4Info, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 5, - .landMonsInfo = &gBattlePyramidPlaceholders_5Info, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 6, - .landMonsInfo = &gBattlePyramidPlaceholders_6Info, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 7, - .landMonsInfo = &gBattlePyramidPlaceholders_7Info, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 255, - .mapNum = 255, - .landMonsInfo = NULL, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, + { + .mapGroup = 0, + .mapNum = 1, + .landMonsInfo = &gBattlePyramidPlaceholders_1Info, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 2, + .landMonsInfo = &gBattlePyramidPlaceholders_2Info, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 3, + .landMonsInfo = &gBattlePyramidPlaceholders_3Info, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 4, + .landMonsInfo = &gBattlePyramidPlaceholders_4Info, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 5, + .landMonsInfo = &gBattlePyramidPlaceholders_5Info, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 6, + .landMonsInfo = &gBattlePyramidPlaceholders_6Info, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 7, + .landMonsInfo = &gBattlePyramidPlaceholders_7Info, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 255, + .mapNum = 255, + .landMonsInfo = NULL, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, }; const struct WildPokemon gBattlePikeMons_1[] = { - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_DUSCLOPS}, - {5, 5, SPECIES_DUSCLOPS}, - {5, 5, SPECIES_DUSCLOPS}, - {5, 5, SPECIES_DUSCLOPS}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_DUSCLOPS}, - {5, 5, SPECIES_DUSCLOPS}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_DUSCLOPS}, + {5, 5, SPECIES_DUSCLOPS}, + {5, 5, SPECIES_DUSCLOPS}, + {5, 5, SPECIES_DUSCLOPS}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_DUSCLOPS}, + {5, 5, SPECIES_DUSCLOPS}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, }; const struct WildPokemonInfo gBattlePikeMonsInfo_1 = {10, gBattlePikeMons_1}; const struct WildPokemon gBattlePikeMons_2[] = { - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_ELECTRODE}, - {5, 5, SPECIES_ELECTRODE}, - {5, 5, SPECIES_ELECTRODE}, - {5, 5, SPECIES_ELECTRODE}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_ELECTRODE}, - {5, 5, SPECIES_ELECTRODE}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_ELECTRODE}, + {5, 5, SPECIES_ELECTRODE}, + {5, 5, SPECIES_ELECTRODE}, + {5, 5, SPECIES_ELECTRODE}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_ELECTRODE}, + {5, 5, SPECIES_ELECTRODE}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, }; const struct WildPokemonInfo gBattlePikeMonsInfo_2 = {10, gBattlePikeMons_2}; const struct WildPokemon gBattlePikeMons_3[] = { - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_BRELOOM}, - {5, 5, SPECIES_BRELOOM}, - {5, 5, SPECIES_BRELOOM}, - {5, 5, SPECIES_BRELOOM}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_BRELOOM}, - {5, 5, SPECIES_BRELOOM}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_BRELOOM}, + {5, 5, SPECIES_BRELOOM}, + {5, 5, SPECIES_BRELOOM}, + {5, 5, SPECIES_BRELOOM}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_BRELOOM}, + {5, 5, SPECIES_BRELOOM}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, }; const struct WildPokemonInfo gBattlePikeMonsInfo_3 = {10, gBattlePikeMons_3}; const struct WildPokemon gBattlePikeMons_4[] = { - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_WOBBUFFET}, - {5, 5, SPECIES_WOBBUFFET}, - {5, 5, SPECIES_WOBBUFFET}, - {5, 5, SPECIES_WOBBUFFET}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, - {5, 5, SPECIES_WOBBUFFET}, - {5, 5, SPECIES_WOBBUFFET}, - {5, 5, SPECIES_SEVIPER}, - {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_WOBBUFFET}, + {5, 5, SPECIES_WOBBUFFET}, + {5, 5, SPECIES_WOBBUFFET}, + {5, 5, SPECIES_WOBBUFFET}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, + {5, 5, SPECIES_WOBBUFFET}, + {5, 5, SPECIES_WOBBUFFET}, + {5, 5, SPECIES_SEVIPER}, + {5, 5, SPECIES_MILOTIC}, }; const struct WildPokemonInfo gBattlePikeMonsInfo_4 = {10, gBattlePikeMons_4}; const struct WildPokemonHeader gBattlePikeWildMonHeaders[] = { - { - .mapGroup = 0, - .mapNum = 1, - .landMonsInfo = &gBattlePikeMonsInfo_1, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 2, - .landMonsInfo = &gBattlePikeMonsInfo_2, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 3, - .landMonsInfo = &gBattlePikeMonsInfo_3, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 0, - .mapNum = 4, - .landMonsInfo = &gBattlePikeMonsInfo_4, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, - { - .mapGroup = 255, - .mapNum = 255, - .landMonsInfo = NULL, - .waterMonsInfo = NULL, - .rockSmashMonsInfo = NULL, - .fishingMonsInfo = NULL, - }, + { + .mapGroup = 0, + .mapNum = 1, + .landMonsInfo = &gBattlePikeMonsInfo_1, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 2, + .landMonsInfo = &gBattlePikeMonsInfo_2, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 3, + .landMonsInfo = &gBattlePikeMonsInfo_3, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 0, + .mapNum = 4, + .landMonsInfo = &gBattlePikeMonsInfo_4, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, + { + .mapGroup = 255, + .mapNum = 255, + .landMonsInfo = NULL, + .waterMonsInfo = NULL, + .rockSmashMonsInfo = NULL, + .fishingMonsInfo = NULL, + }, }; const struct WildPokemon gWildFeebasRoute119Data = {20, 25, SPECIES_FEEBAS}; const u16 gRoute119WaterTileData[] = { - 0, 0x2D, 0, - 0x2E, 0x5B, 0x83, - 0x5C, 0x8B, 0x12A, + 0, 0x2D, 0, + 0x2E, 0x5B, 0x83, + 0x5C, 0x8B, 0x12A, }; // code @@ -5079,7 +5079,7 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi return FALSE; headerId = GetCurrentMapWildMonHeaderId(); - if (headerId == 0xFFFF) // invalid + if (headerId == 0xFFFF) { if (gMapHeader.mapLayoutId == 0x166) { @@ -5222,7 +5222,7 @@ bool8 SweetScentWildEncounter(void) PlayerGetDestCoords(&x, &y); headerId = GetCurrentMapWildMonHeaderId(); - if (headerId == 0xFFFF) // invalid + if (headerId == 0xFFFF) { if (gMapHeader.mapLayoutId == 0x166) { diff --git a/src/window.c b/src/window.c index 8efd1c281..4e1a38eff 100644 --- a/src/window.c +++ b/src/window.c @@ -1,6 +1,6 @@ #include "global.h" #include "window.h" -#include "malloc.h" +#include "alloc.h" #include "bg.h" #include "blit.h" |